기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
튜토리얼: AWS IoT Device Client 튜토리얼 실행 후 정리
이 튜토리얼의 절차는 이 학습 경로의 튜토리얼을 완료하는 동안 생성한 파일과 리소스를 제거하는 과정을 안내합니다.
이 튜토리얼의 절차
1단계: AWS IoT Device Client로 데모를 빌드한 후 디바이스 정리
이 튜토리얼에서는 이 학습 경로에서 데모를 빌드한 후 microSD 카드를 정리하는 방법에 대한 두 가지 옵션을 설명합니다. 필요한 보안 수준을 제공하는 옵션을 선택합니다.
디바이스의 microSD 카드를 지워도 생성한 AWS IoT 리소스는 제거되지 않습니다. 디바이스의 microSD 카드를 지운 후 AWS IoT 리소스를 정리하려면 2단계: AWS IoT Device Client로 데모를 빌드한 후 AWS 계정 정리에 대한 튜토리얼을 검토해야 합니다.
옵션 1: microSD 카드를 다시 써서 정리
이 학습 경로의 튜토리얼을 완료한 후 microSD 카드를 지우는 가장 쉽고 철저한 방법은 디바이스를 처음 준비할 때 생성한 저장된 이미지 파일로 microSD 카드를 덮어쓰는 것입니다.
이 절차에서는 로컬 호스트 컴퓨터를 사용하여 저장된 microSD 카드 이미지를 microSD 카드에 씁니다.
참고
디바이스에서 운영 체제에 이동식 저장 매체를 사용하지 않는 경우 해당 디바이스에 대한 절차를 참조하세요.
microSD 카드에 새 이미지를 쓰려면
-
로컬 호스트 컴퓨터에서 microSD 카드에 쓸 저장된 microSD 카드 이미지를 찾습니다.
-
microSD 카드를 로컬 호스트 컴퓨터에 삽입합니다.
-
SD 카드 이미징 도구를 사용하여 선택한 이미지 파일을 microSD 카드에 씁니다.
-
Raspberry Pi OS 이미지를 microSD 카드에 쓴 후 microSD 카드를 꺼내 로컬 호스트 컴퓨터에서 안전하게 제거합니다.
microSD 카드를 사용할 준비가 되었습니다.
옵션 2: 사용자 디렉터리를 삭제하여 정리
튜토리얼을 완료한 후 microSD 카드 이미지를 다시 쓰지 않고 microSD 카드를 지우려면 사용자 디렉터리를 개별적으로 삭제합니다. 이 방법은 설치되었을 수 있는 시스템 파일을 제거하지 않기 때문에 저장된 이미지에서 microSD 카드를 다시 쓰는 것만큼 철저하지 않습니다.
사용자 디렉터리 제거만으로도 충분하다면 이 절차를 따를 수 있습니다.
디바이스에서 이 학습 경로의 사용자 디렉터리를 삭제하려면
-
이 명령을 실행하여 디바이스에 연결된 터미널 창에서 이 학습 경로에 생성된 사용자 디렉터리, 하위 디렉터리 및 모든 파일을 삭제합니다.
참고
이러한 디렉터리와 파일을 삭제하면 튜토리얼을 다시 완료하지 않고 데모를 실행할 수 없게 됩니다.
rm -Rf ~/dc-configs rm -Rf ~/policies rm -Rf ~/messages rm -Rf ~/certs rm -Rf ~/.aws-iot-device-client
-
이 명령을 실행하여 디바이스에 연결된 터미널 창에서 애플리케이션 소스 디렉터리 및 파일을 삭제합니다.
참고
이 명령은 프로그램을 제거하지 않습니다. 프로그램 빌드 및 설치에 사용된 소스 파일만 제거합니다. 이러한 파일을 삭제한 후 AWS CLI 및 AWS IoT Device Client가 작동하지 않을 수 있습니다.
rm -Rf ~/aws-cli rm -Rf ~/aws rm -Rf ~/aws-iot-device-client
2단계: AWS IoT Device Client로 데모를 빌드한 후 AWS 계정 정리
이러한 절차는 이 학습 경로의 튜토리얼을 완료하는 동안 생성한 AWS 리소스를 식별하고 제거하는 데 도움이 됩니다.
AWS IoT 리소스 정리
이 절차는 이 학습 경로의 자습서를 완료하는 동안 생성한 AWS IoT 리소스를 식별하고 제거하는 데 도움이 됩니다.
이 학습 경로에서 생성된 AWS IoT 리소스 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
자습서 | 사물 리소스 | 정책 리소스 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DevCliTestThing |
DevCliTestThingPolicy | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PubSubTestThing |
PubSubTestThingPolicy | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
사용자 정의(여러 개 있을 수 있음) |
사용자 정의(여러 개 있을 수 있음) |
AWS IoT 리소스를 삭제하려면 생성한 각 사물 리소스에 대해 이 절차를 따르세요.
-
을 삭제하려는 사물 리소스의 이름으로 바꾼 다음 이 명령을 실행하여 로컬 호스트 컴퓨터에서 사물 리소스에 연결된 인증서를 나열합니다.thing_name
aws iot list-thing-principals --thing-name
thing_name
이 명령은 연결된 인증서를 나열하는 이와 같은 응답을 반환합니다.
대부분의 경우 목록에 인증서가 하나만 있습니다.thing_name
{ "principals": [ "arn:aws:iot:us-west-2:57EXAMPLE833:cert/23853eea3cf0edc7f8a69c74abeafa27b2b52823cab5b3e156295e94b26ae8ac" ] }
-
이전 명령으로 나열된 각 인증서에 대해
-
를 이전 명령의 인증서 ID로 바꿉니다. 인증서 ID는 이전 명령에서 반환된 ARN에서certificate_ID
cert/
뒤에 오는 영숫자 문자입니다. 그런 다음 이 명령을 실행하여 인증서를 비활성화합니다.aws iot update-certificate --new-status INACTIVE --certificate-id
certificate_ID
성공한 경우 이 명령은 아무 것도 반환하지 않습니다.
-
을 이전에 반환된 인증서 목록의 인증서 ARN으로 바꾼 다음 이 명령을 실행하여 이 인증서에 연결된 정책을 나열합니다.certificate_ARN
aws iot list-attached-policies --target
certificate_ARN
이 명령은 인증서에 연결된 정책을 나열하는 이와 같은 응답을 반환합니다. 대부분의 경우 목록에 정책이 하나만 있습니다.
{ "policies": [ { "policyName": "DevCliTestThingPolicy", "policyArn": "arn:aws:iot:us-west-2:57EXAMPLE833:policy/DevCliTestThingPolicy" } ] }
-
인증서에 연결된 각 정책에 대해:
-
을 이전 명령의policy_name
policyName
값으로 바꾸고
을 인증서 ARN으로 바꾼 다음 이 명령을 실행하여 인증서에서 정책을 분리합니다.certificate_ARN
aws iot detach-policy --policy-name
policy_name
--targetcertificate_ARN
성공한 경우 이 명령은 아무 것도 반환하지 않습니다.
-
을policy_name
policyName
값으로 바꾼 다음 이 명령을 실행하여 정책이 추가 인증서에 연결되어 있는지 확인합니다.aws iot list-targets-for-policy --policy-name
policy_name
명령이 이와 같은 빈 목록을 반환하는 경우 정책은 인증서에 연결되지 않은 것입니다. 계속해서 정책 버전을 나열합니다. 정책에 연결된 인증서가 여전히 있는 경우 detach-thing-principal 단계를 계속합니다.
{ "targets": [] }
-
을policy_name
policyName
값으로 바꾼 다음 이 명령을 실행하여 정책 버전을 확인합니다. 정책을 삭제하려면 버전이 하나만 있어야 합니다.aws iot list-policy-versions --policy-name
policy_name
이 예와 같이 정책에 버전이 하나만 있는 경우 지금 delete-policy 단계로 건너뛰고 정책을 삭제할 수 있습니다.
{ "policyVersions": [ { "versionId": "1", "isDefaultVersion": true, "createDate": "2021-11-18T01:02:46.778000+00:00" } ] }
이 예와 같이 정책에 여러 버전이 있는 경우
isDefaultVersion
값이false
인 정책 버전을 삭제해야 정책을 삭제할 수 있습니다.{ "policyVersions": [ { "versionId": "2", "isDefaultVersion": true, "createDate": "2021-11-18T01:52:04.423000+00:00" }, { "versionId": "1", "isDefaultVersion": false, "createDate": "2021-11-18T01:30:18.083000+00:00" } ] }
정책 버전을 삭제해야 하는 경우
을policy_name
policyName
값으로 바꾸고
를 이전 명령의version_ID
versionId
값으로 바꾼 다음 이 명령을 실행하여 정책 버전을 삭제합니다.aws iot delete-policy-version --policy-name
policy_name
--policy-version-idversion_ID
성공한 경우 이 명령은 아무 것도 반환하지 않습니다.
정책 버전을 삭제한 후 정책에 정책 버전이 하나만 있을 때까지 이 단계를 반복합니다.
-
을policy_name
policyName
값으로 바꾼 다음 이 명령을 실행하여 정책을 삭제합니다.aws iot delete-policy --policy-name
policy_name
-
-
을 사물의 이름으로 바꾸고thing_name
을 인증서의 ARN으로 바꾼 다음 이 명령을 실행하여 사물 리소스에서 인증서를 분리합니다.certificate_ARN
aws iot detach-thing-principal --thing-name
thing_name
--principalcertificate_ARN
성공한 경우 이 명령은 아무 것도 반환하지 않습니다.
-
를 이전 명령의 인증서 ID로 바꿉니다. 인증서 ID는 이전 명령에서 반환된 ARN에서certificate_ID
cert/
뒤에 오는 영숫자 문자입니다. 그런 다음 이 명령을 실행하여 인증서 리소스를 삭제합니다.aws iot delete-certificate --certificate-id
certificate_ID
성공한 경우 이 명령은 아무 것도 반환하지 않습니다.
-
-
를 사물의 이름으로 바꾼 다음 이 명령을 실행하여 사물을 삭제합니다.thing_name
aws iot delete-thing --thing-name
thing_name
성공한 경우 이 명령은 아무 것도 반환하지 않습니다.
AWS 리소스 정리
이 절차는 이 학습 경로의 자습서를 완료하는 동안 생성한 다른 AWS 리소스를 식별하고 제거하는 데 도움이 됩니다.
이 학습 경로에서 생성된 다른 AWS 리소스 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
자습서 | 리소스 유형 | 리소스 이름 또는 ID | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Amazon S3 객체 | hello-world-job.json | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AWS IoT 작업 리소스 |
사용자 정의 |
이 학습 경로에서 생성된 AWS 리소스를 삭제하려면
-
이 학습 경로에서 생성된 작업을 삭제하려면
-
이 명령을 실행하여 AWS 계정의 작업을 나열합니다.
aws iot list-jobs
이 명령은 AWS 계정과 AWS 리전에 있는 AWS IoT 작업의 목록을 다음과 같이 반환합니다.
{ "jobs": [ { "jobArn": "arn:aws:iot:us-west-2:57EXAMPLE833:job/hello-world-job-2", "jobId": "hello-world-job-2", "targetSelection": "SNAPSHOT", "status": "COMPLETED", "createdAt": "2021-11-16T23:40:36.825000+00:00", "lastUpdatedAt": "2021-11-16T23:40:41.375000+00:00", "completedAt": "2021-11-16T23:40:41.375000+00:00" }, { "jobArn": "arn:aws:iot:us-west-2:57EXAMPLE833:job/hello-world-job-1", "jobId": "hello-world-job-1", "targetSelection": "SNAPSHOT", "status": "COMPLETED", "createdAt": "2021-11-16T23:35:26.381000+00:00", "lastUpdatedAt": "2021-11-16T23:35:29.239000+00:00", "completedAt": "2021-11-16T23:35:29.239000+00:00" } ] }
-
목록에서 이 학습 경로에서 생성한 작업으로 인식하는 각 작업에 대해
를 삭제할 작업의jobId
jobId
값으로 바꾼 다음 이 명령을 실행하여 AWS IoT 작업을 삭제합니다.aws iot delete-job --job-id
jobId
명령이 성공하면 아무 것도 반환하지 않습니다.
-
-
이 학습 경로의 Amazon S3 버킷에 저장한 작업 문서를 삭제하려면
-
을 사용한 버킷의 이름으로 바꾼 다음 이 명령을 실행하여 사용한 Amazon S3 버킷의 객체를 나열합니다.bucket
aws s3api list-objects --bucket
bucket
이 명령은 다음과 같은 버킷의 Amazon S3 객체 목록을 반환합니다.
{ "Contents": [ { "Key": "hello-world-job.json", "LastModified": "2021-11-18T03:02:12+00:00", "ETag": "\"868c8bc3f56b5787964764d4b18ed5ef\"", "Size": 54, "StorageClass": "STANDARD", "Owner": { "DisplayName": "EXAMPLE", "ID": "e9e3d6ec1EXAMPLEf5bfb5e6bd0a2b6ed03884d1ed392a82ad011c144736a4ee" } }, { "Key": "iot_job_firmware_update.json", "LastModified": "2021-04-13T21:57:07+00:00", "ETag": "\"7c68c591949391791ecf625253658c61\"", "Size": 66, "StorageClass": "STANDARD", "Owner": { "DisplayName": "EXAMPLE", "ID": "e9e3d6ec1EXAMPLEf5bfb5e6bd0a2b6ed03884d1ed392a82ad011c144736a4ee" } }, { "Key": "order66.json", "LastModified": "2021-04-13T21:57:07+00:00", "ETag": "\"bca60d5380b88e1a70cc27d321caba72\"", "Size": 29, "StorageClass": "STANDARD", "Owner": { "DisplayName": "EXAMPLE", "ID": "e9e3d6ec1EXAMPLEf5bfb5e6bd0a2b6ed03884d1ed392a82ad011c144736a4ee" } } ] }
-
목록에서 이 학습 경로에서 생성한 객체로 인식한 각 객체에 대해
을 버킷 이름으로 바꾸고,bucket
를 삭제할 객체의 키 값으로 바꾼 다음 이 명령을 실행하여 Amazon S3 객체를 삭제합니다.key
aws s3api delete-object --bucket
bucket
--keykey
명령이 성공하면 아무 것도 반환하지 않습니다.
-
이 학습 경로를 완료하는 동안 생성한 모든 AWS 리소스와 객체를 삭제한 후 처음부터 다시 시작하여 튜토리얼을 반복할 수 있습니다.