튜토리얼: AWS IoT Device Client 튜토리얼 실행 후 정리 - AWS IoT Core

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

튜토리얼: 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 카드에 새 이미지를 쓰려면
  1. 로컬 호스트 컴퓨터에서 microSD 카드에 쓸 저장된 microSD 카드 이미지를 찾습니다.

  2. microSD 카드를 로컬 호스트 컴퓨터에 삽입합니다.

  3. SD 카드 이미징 도구를 사용하여 선택한 이미지 파일을 microSD 카드에 씁니다.

  4. Raspberry Pi OS 이미지를 microSD 카드에 쓴 후 microSD 카드를 꺼내 로컬 호스트 컴퓨터에서 안전하게 제거합니다.

microSD 카드를 사용할 준비가 되었습니다.

옵션 2: 사용자 디렉터리를 삭제하여 정리

튜토리얼을 완료한 후 microSD 카드 이미지를 다시 쓰지 않고 microSD 카드를 지우려면 사용자 디렉터리를 개별적으로 삭제합니다. 이 방법은 설치되었을 수 있는 시스템 파일을 제거하지 않기 때문에 저장된 이미지에서 microSD 카드를 다시 쓰는 것만큼 철저하지 않습니다.

사용자 디렉터리 제거만으로도 충분하다면 이 절차를 따를 수 있습니다.

디바이스에서 이 학습 경로의 사용자 디렉터리를 삭제하려면
  1. 이 명령을 실행하여 디바이스에 연결된 터미널 창에서 이 학습 경로에 생성된 사용자 디렉터리, 하위 디렉터리 및 모든 파일을 삭제합니다.

    참고

    이러한 디렉터리와 파일을 삭제하면 튜토리얼을 다시 완료하지 않고 데모를 실행할 수 없게 됩니다.

    rm -Rf ~/dc-configs rm -Rf ~/policies rm -Rf ~/messages rm -Rf ~/certs rm -Rf ~/.aws-iot-device-client
  2. 이 명령을 실행하여 디바이스에 연결된 터미널 창에서 애플리케이션 소스 디렉터리 및 파일을 삭제합니다.

    참고

    이 명령은 프로그램을 제거하지 않습니다. 프로그램 빌드 및 설치에 사용된 소스 파일만 제거합니다. 이러한 파일을 삭제한 후 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 리소스
자습서 사물 리소스 정책 리소스

튜토리얼: AWS IoT Device Client 설치 및 구성

DevCliTestThing

DevCliTestThingPolicy

자습서: AWS IoT Device Client와의 MQTT 메시지 통신 시연

PubSubTestThing

PubSubTestThingPolicy

튜토리얼: AWS IoT Device Client를 사용한 원격 작업 시연

사용자 정의(여러 개 있을 수 있음)

사용자 정의(여러 개 있을 수 있음)

AWS IoT 리소스를 삭제하려면 생성한 각 사물 리소스에 대해 이 절차를 따르세요.
  1. thing_name을 삭제하려는 사물 리소스의 이름으로 바꾼 다음 이 명령을 실행하여 로컬 호스트 컴퓨터에서 사물 리소스에 연결된 인증서를 나열합니다.

    aws iot list-thing-principals --thing-name thing_name

    이 명령은 연결된 인증서를 나열하는 이와 같은 응답을 반환합니다.thing_name 대부분의 경우 목록에 인증서가 하나만 있습니다.

    { "principals": [ "arn:aws:iot:us-west-2:57EXAMPLE833:cert/23853eea3cf0edc7f8a69c74abeafa27b2b52823cab5b3e156295e94b26ae8ac" ] }
  2. 이전 명령으로 나열된 각 인증서에 대해

    1. certificate_ID를 이전 명령의 인증서 ID로 바꿉니다. 인증서 ID는 이전 명령에서 반환된 ARN에서 cert/ 뒤에 오는 영숫자 문자입니다. 그런 다음 이 명령을 실행하여 인증서를 비활성화합니다.

      aws iot update-certificate --new-status INACTIVE --certificate-id certificate_ID

      성공한 경우 이 명령은 아무 것도 반환하지 않습니다.

    2. certificate_ARN을 이전에 반환된 인증서 목록의 인증서 ARN으로 바꾼 다음 이 명령을 실행하여 이 인증서에 연결된 정책을 나열합니다.

      aws iot list-attached-policies --target certificate_ARN

      이 명령은 인증서에 연결된 정책을 나열하는 이와 같은 응답을 반환합니다. 대부분의 경우 목록에 정책이 하나만 있습니다.

      { "policies": [ { "policyName": "DevCliTestThingPolicy", "policyArn": "arn:aws:iot:us-west-2:57EXAMPLE833:policy/DevCliTestThingPolicy" } ] }
    3. 인증서에 연결된 각 정책에 대해:

      1. policy_name을 이전 명령의 policyName 값으로 바꾸고 certificate_ARN을 인증서 ARN으로 바꾼 다음 이 명령을 실행하여 인증서에서 정책을 분리합니다.

        aws iot detach-policy --policy-name policy_name --target certificate_ARN

        성공한 경우 이 명령은 아무 것도 반환하지 않습니다.

      2. policy_namepolicyName 값으로 바꾼 다음 이 명령을 실행하여 정책이 추가 인증서에 연결되어 있는지 확인합니다.

        aws iot list-targets-for-policy --policy-name policy_name

        명령이 이와 같은 빈 목록을 반환하는 경우 정책은 인증서에 연결되지 않은 것입니다. 계속해서 정책 버전을 나열합니다. 정책에 연결된 인증서가 여전히 있는 경우 detach-thing-principal 단계를 계속합니다.

        { "targets": [] }
      3. policy_namepolicyName 값으로 바꾼 다음 이 명령을 실행하여 정책 버전을 확인합니다. 정책을 삭제하려면 버전이 하나만 있어야 합니다.

        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_namepolicyName 값으로 바꾸고 version_ID를 이전 명령의 versionId 값으로 바꾼 다음 이 명령을 실행하여 정책 버전을 삭제합니다.

        aws iot delete-policy-version --policy-name policy_name --policy-version-id version_ID

        성공한 경우 이 명령은 아무 것도 반환하지 않습니다.

        정책 버전을 삭제한 후 정책에 정책 버전이 하나만 있을 때까지 이 단계를 반복합니다.

      4. policy_namepolicyName 값으로 바꾼 다음 이 명령을 실행하여 정책을 삭제합니다.

        aws iot delete-policy --policy-name policy_name
    4. thing_name을 사물의 이름으로 바꾸고 certificate_ARN을 인증서의 ARN으로 바꾼 다음 이 명령을 실행하여 사물 리소스에서 인증서를 분리합니다.

      aws iot detach-thing-principal --thing-name thing_name --principal certificate_ARN

      성공한 경우 이 명령은 아무 것도 반환하지 않습니다.

    5. certificate_ID를 이전 명령의 인증서 ID로 바꿉니다. 인증서 ID는 이전 명령에서 반환된 ARN에서 cert/ 뒤에 오는 영숫자 문자입니다. 그런 다음 이 명령을 실행하여 인증서 리소스를 삭제합니다.

      aws iot delete-certificate --certificate-id certificate_ID

      성공한 경우 이 명령은 아무 것도 반환하지 않습니다.

  3. thing_name를 사물의 이름으로 바꾼 다음 이 명령을 실행하여 사물을 삭제합니다.

    aws iot delete-thing --thing-name thing_name

    성공한 경우 이 명령은 아무 것도 반환하지 않습니다.

AWS 리소스 정리

이 절차는 이 학습 경로의 자습서를 완료하는 동안 생성한 다른 AWS 리소스를 식별하고 제거하는 데 도움이 됩니다.

이 학습 경로에서 생성된 다른 AWS 리소스
자습서 리소스 유형 리소스 이름 또는 ID

튜토리얼: AWS IoT Device Client를 사용한 원격 작업 시연

Amazon S3 객체 hello-world-job.json

튜토리얼: AWS IoT Device Client를 사용한 원격 작업 시연

AWS IoT 작업 리소스

사용자 정의
이 학습 경로에서 생성된 AWS 리소스를 삭제하려면
  1. 이 학습 경로에서 생성된 작업을 삭제하려면

    1. 이 명령을 실행하여 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" } ] }
    2. 목록에서 이 학습 경로에서 생성한 작업으로 인식하는 각 작업에 대해 jobId를 삭제할 작업의 jobId 값으로 바꾼 다음 이 명령을 실행하여 AWS IoT 작업을 삭제합니다.

      aws iot delete-job --job-id jobId

      명령이 성공하면 아무 것도 반환하지 않습니다.

  2. 이 학습 경로의 Amazon S3 버킷에 저장한 작업 문서를 삭제하려면

    1. bucket을 사용한 버킷의 이름으로 바꾼 다음 이 명령을 실행하여 사용한 Amazon S3 버킷의 객체를 나열합니다.

      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" } } ] }
    2. 목록에서 이 학습 경로에서 생성한 객체로 인식한 각 객체에 대해 bucket을 버킷 이름으로 바꾸고, key를 삭제할 객체의 키 값으로 바꾼 다음 이 명령을 실행하여 Amazon S3 객체를 삭제합니다.

      aws s3api delete-object --bucket bucket --key key

      명령이 성공하면 아무 것도 반환하지 않습니다.

이 학습 경로를 완료하는 동안 생성한 모든 AWS 리소스와 객체를 삭제한 후 처음부터 다시 시작하여 튜토리얼을 반복할 수 있습니다.