선택 사항: AWS IoT Greengrass에 IDT용 도커 컨테이너 구성 - AWS IoT Greengrass

AWS IoT Greengrass Version 1 는 2023년 6월 30일에 수명 연장 단계에 들어갔습니다. AWS IoT Greengrass V1 관리형 정책에 대한 자세한 정보는 섹션을 참조하세요. 이 날짜 이후에는 기능, 개선 사항, 버그 수정 또는 보안 패치를 제공하는 업데이트를 릴리스하지 AWS IoT Greengrass V1 않습니다. 에서 실행되는 디바이스는 중단 AWS IoT Greengrass V1 되지 않고 계속 작동하며 클라우드에 연결됩니다. 로 마이그레이션 AWS IoT Greengrass Version 2하는 것이 좋습니다. 이 마이그레이션하면 추가 플랫폼 에 대한 중요한 새 기능과 지원이 추가됩니다. https://docs.aws.amazon.com/greengrass/v2/developerguide/operating-system-feature-support-matrix.html

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

선택 사항: AWS IoT Greengrass에 IDT용 도커 컨테이너 구성

AWS IoT Greengrass는 도커 컨테이너에서 AWS IoT Greengrass 코어 소프트웨어를 쉽게 실행할 수 있도록 도커 이미지와 도커 파일을 제공합니다. AWS IoT Greengrass 컨테이너를 설정한 후 IDT 테스트를 실행할 수 있습니다. 현재 AWS IoT Greengrass에서 IDT를 실행하는 데는 x86_64 도커 아키텍처만 지원됩니다.

이 기능을 사용하려면 IDT v2.3.0 이상이 필요합니다.

IDT 테스트를 실행하도록 도커 컨테이너를 설정하는 프로세스는 AWS IoT Greengrass에서 제공하는 도커 이미지를 사용하는지 아니면 도커 파일을 사용하는지에 따라 다릅니다.

  • 도커 이미지 사용. 도커 이미지에는 AWS IoT Greengrass 코어 소프트웨어와 종속성이 설치되어 있습니다.

  • 도커 파일 사용. 도커 파일에는 사용자 지정 AWS IoT Greengrass 컨테이너 이미지를 작성하는 데 사용할 수 있는 소스 코드가 포함되어 있습니다. 다른 플랫폼 아키텍처에서 실행하거나 이미지 크기를 줄이기 위해 이미지를 수정할 수 있습니다.

    참고

    AWS IoT Greengrass은(는) AWS IoT Greengrass 코어 소프트웨어 버전 1.11.1의 Docker파일 일 또는 Docker 이미지를 제공하지 않습니다. 사용자 지정 컨테이너 이미지에서 IDT 테스트를 실행하려면 AWS IoT Greengrass에서 제공하는 도커 파일에 정의된 종속성이 이미지에 포함되어야 합니다.

도커 컨테이너에서 AWS IoT Greengrass를 실행할 때 다음 기능은 사용할 수 없습니다.

  • Greengrass 컨테이너 모드에서 실행되는 커넥터 Docker 컨테이너에서 커넥터를 실행하려면 커넥터가 컨테이너 없음 모드로 실행되어야 합니다. 컨테이너 없음 모드를 지원하는 커넥터를 찾으려면 AWS에서 제공한 Greengrass 커넥터 단원을 참조하십시오. 이러한 커넥터 중 일부에는 컨테이너 없음으로 설정해야 하는 격리 모드 파라미터가 있습니다.

  • 로컬 디바이스 및 볼륨 리소스. Docker 컨테이너에서 실행되는 사용자 정의 Lambda 함수는 코어의 디바이스 및 볼륨에 직접 액세스해야 합니다.

AWS IoT Greengrass에서 제공하는 도커 이미지 구성

IDT 테스트를 실행하도록 AWS IoT Greengrass 도커 이미지를 구성하려면 다음 단계를 수행합니다.

사전 조건

이 자습서를 시작하기 전에 다음 작업을 수행해야 합니다.

  • 선택한 AWS Command Line Interface(AWS CLI) 버전에 따라 호스트 컴퓨터에 다음 소프트웨어 및 버전을 설치해야 합니다.

    AWS CLI version 2
    • Docker, 버전 18.09 이상. 이전 버전도 작동할 수 있지만 18.09 이상을 사용하는 것이 좋습니다.

    • AWS CLI 버전 2.6.30 이상

      참고

      Windows 컴퓨터에서 최신 AWS CLI 버전 2로 업그레이드하려면 MSI 설치 프로세스를 반복해야 합니다.

    AWS CLI version 1
    • Docker, 버전 18.09 이상. 이전 버전도 작동할 수 있지만 18.09 이상을 사용하는 것이 좋습니다.

    • Python, 버전 3.6 이상.

    • pip 버전 18.1 이상

    • AWS CLI 버전 1.11.63 이상

      • AWS CLI 버전 1을 설치하려면 AWS CLI 버전 1 설치를 참조하십시오.

      • AWS CLI을(를) 구성하려면 AWS CLI 구성을 참조하십시오.

      • AWS CLI 버전 1의 최신 버전으로 업데이트하려면 다음 명령을 실행합니다.

        pip install awscli --upgrade --user
      참고

      Windows에서 AWS CLI 버전 1의 MSI 설치를 사용하는 경우 다음 사항에 유의하십시오.

      • 이 AWS CLI 버전 1 설치에서 botocore를 설치하지 못하는 경우 Python 및 pip 설치를 사용해 봅니다.

      • 최신 AWS CLI 버전으로 업그레이드하려면 MSI 설치 프로세스를 반복해야 합니다.

  • Amazon Elastic Container Registry(Amazon ECR) 리소스에 액세스하려면 다음 권한을 부여해야 합니다.

    • Amazon ECR의 요구 사항에 따라 사용자가 레지스트리에 대해 인증하고 Amazon ECR 리포지토리에서 이미지를 푸시 또는 풀하기 전에 AWS Identity and Access Management (IAM) 정책을 통해 ecr:GetAuthorizationToken 권한을 부여해야 합니다. 자세한 내용은 Amazon Elastic Container Registry 사용 설명서Amazon ECR 리포지토리 정책 예시One Amazon ECR 리포지토리 액세스를 참조하십시오.

 

  1. 도커 이미지를 다운로드하고 컨테이너를 구성합니다. Docker Hub 또는 Amazon Elastic Container Registry(Amazon ECR)에서 사전 작성 이미지를 다운로드하고 Windows, macOS 및 Linux(x86_64) 플랫폼에서 이 이미지를 실행할 수 있습니다.

    1단계: Amazon ECR에서 AWS IoT Greengrass 컨테이너 이미지 가져오기에서 Docker 이미지를 다운로드하려면 의 모든 단계를 완료합니다. 그런 다음 이 항목으로 돌아와 구성을 계속합니다.

  2. Linux 사용자만 해당: IDT를 실행하는 사용자에게 도커 명령을 실행할 권한이 있는지 확인하십시오. 자세한 내용은 도커 설명서의 도커를 루트가 아닌 사용자로 관리를 참조하십시오.

  3. AWS IoT Greengrass 컨테이너를 실행하려면 운영 체제에 해당하는 명령을 사용합니다.

    Linux
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ -v <host-path-to-kernel-config-file>:<container-path> \ <image-repository>:<tag>
    • <host-path-to-kernel-config-file>을 호스트의 커널 구성 파일 경로로 대체하고 <container-path>를 볼륨이 컨테이너에 탑재된 경로로 대체합니다.

      호스트의 커널 구성 파일은 일반적으로 /proc/config.gz 또는 /boot/config-<kernel-release-date>에 있습니다. uname -r을 실행하여 <kernel-release-date> 값을 확인할 수 있습니다.

      예: /boot/config-<kernel-release-date>에서 구성 파일을 탑재하려면 다음 명령을 실행합니다.

      -v /boot/config-4.15.0-74-generic:/boot/config-4.15.0-74-generic \

      예: proc/config.gz에서 구성 파일을 탑재하려면 다음 명령을 실행합니다.

      -v /proc/config.gz:/proc/config.gz \
    • 명령에서 <image-repository>:<tag>를 대상 이미지의 리포지토리 및 태그 이름으로 대체합니다.

      예: AWS IoT Greengrass 코어 소프트웨어의 최신 버전을 가리키려면 다음 명령을 실행합니다.

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      AWS IoT Greengrass Docker 이미지 목록을 얻으려면 다음 명령을 실행합니다.

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    macOS
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ <image-repository>:<tag>
    • 명령에서 <image-repository>:<tag>를 대상 이미지의 리포지토리 및 태그 이름으로 대체합니다.

      예: AWS IoT Greengrass 코어 소프트웨어의 최신 버전을 가리키려면 다음 명령을 실행합니다.

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      AWS IoT Greengrass Docker 이미지 목록을 얻으려면 다음 명령을 실행합니다.

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    Windows
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ <image-repository>:<tag>
    • 명령에서 <image-repository>:<tag>를 대상 이미지의 리포지토리 및 태그 이름으로 대체합니다.

      예: AWS IoT Greengrass 코어 소프트웨어의 최신 버전을 가리키려면 다음 명령을 실행합니다.

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      AWS IoT Greengrass Docker 이미지 목록을 얻으려면 다음 명령을 실행합니다.

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    중요

    IDT로 테스트할 때는 일반적인 AWS IoT Greengrass 용도로 이미지를 실행하는 데 사용되는 --entrypoint /greengrass-entrypoint.sh \ 인수를 포함하지 마십시오.

  4. 다음 단계: AWS 보안 인증 및 device.json 파일을 구성합니다.

AWS IoT Greengrass에서 제공하는 도커 파일 구성

IDT 테스트를 실행하도록 AWS IoT Greengrass 도커 파일에서 작성된 도커 이미지를 구성하려면 다음 단계를 수행합니다.

  1. AWS IoT Greengrass Docker 소프트웨어에서 도커 파일 패키지를 호스트 컴퓨터에 다운로드하고 압축을 풉니다.

  2. README.md을 엽니다. 다음 세 단계에서는 이 파일의 섹션을 참조합니다.

  3. Prerequisites(사전 조건) 섹션의 요구 사항을 충족하는지 확인합니다.

  4. Linux 사용자만 해당: Enable Symlink and Hardlink Protection(symlink 및 hardlink 보호 활성화)Enable IPv4 Network Forwarding(IPv4 네트워크 전달 활성화) 단계를 완료합니다.

  5. Docker 이미지를 작성하려면 1단계. AWS IoT Greengrass Docker 이미지를 구축합니다. 그런 다음 이 항목으로 돌아와 구성을 계속합니다.

  6. AWS IoT Greengrass 컨테이너를 실행하려면 운영 체제에 해당하는 명령을 사용합니다.

    Linux
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ -v <host-path-to-kernel-config-file>:<container-path> \ <image-repository>:<tag>
    • <host-path-to-kernel-config-file>을 호스트의 커널 구성 파일 경로로 대체하고 <container-path>를 볼륨이 컨테이너에 탑재된 경로로 대체합니다.

      호스트의 커널 구성 파일은 일반적으로 /proc/config.gz 또는 /boot/config-<kernel-release-date>에 있습니다. uname -r을 실행하여 <kernel-release-date> 값을 확인할 수 있습니다.

      예: /boot/config-<kernel-release-date>에서 구성 파일을 탑재하려면 다음 명령을 실행합니다.

      -v /boot/config-4.15.0-74-generic:/boot/config-4.15.0-74-generic \

      예: proc/config.gz에서 구성 파일을 탑재하려면 다음 명령을 실행합니다.

      -v /proc/config.gz:/proc/config.gz \
    • 명령에서 <image-repository>:<tag>를 대상 이미지의 리포지토리 및 태그 이름으로 대체합니다.

      예: AWS IoT Greengrass 코어 소프트웨어의 최신 버전을 가리키려면 다음 명령을 실행합니다.

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      AWS IoT Greengrass Docker 이미지 목록을 얻으려면 다음 명령을 실행합니다.

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    macOS
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ <image-repository>:<tag>
    • 명령에서 <image-repository>:<tag>를 대상 이미지의 리포지토리 및 태그 이름으로 대체합니다.

      예: AWS IoT Greengrass 코어 소프트웨어의 최신 버전을 가리키려면 다음 명령을 실행합니다.

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      AWS IoT Greengrass Docker 이미지 목록을 얻으려면 다음 명령을 실행합니다.

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    Windows
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ <image-repository>:<tag>
    • 명령에서 <image-repository>:<tag>를 대상 이미지의 리포지토리 및 태그 이름으로 대체합니다.

      예: AWS IoT Greengrass 코어 소프트웨어의 최신 버전을 가리키려면 다음 명령을 실행합니다.

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      AWS IoT Greengrass Docker 이미지 목록을 얻으려면 다음 명령을 실행합니다.

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    중요

    IDT로 테스트할 때는 일반적인 AWS IoT Greengrass 용도로 이미지를 실행하는 데 사용되는 --entrypoint /greengrass-entrypoint.sh \ 인수를 포함하지 마십시오.

  7. 다음 단계: AWS 보안 인증 및 device.json 파일을 구성합니다.

AWS IoT Greengrass에 IDT용 도커 컨테이너를 설정하는 것과 관련된 문제 해결

다음 정보를 사용하면 AWS IoT Greengrass 테스트를 위해 IDT용 도커 컨테이너를 실행하는 중에 발생하는 문제를 해결하는 데 도움이 됩니다.

WARNING: Error loading config file:/home/user/.docker/config.json - stat /home/<user>/.docker/config.json: permission denied

Linux에서 docker 명령을 실행할 때 이 오류가 발생하면 다음 명령을 실행합니다. 다음 명령에서 <user>를 IDT를 실행하는 사용자로 대체합니다.

sudo chown <user>:<user> /home/<user>/.docker -R sudo chmod g+rwx /home/<user>/.docker -R