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

다음에 대한 설명서를 보고 있습니다.AWS IoT Greengrass Version 1.AWS IoT Greengrass Version 2의 최신 주요 버전입니다AWS IoT Greengrass. 사용에 관한 자세한 내용은 단원을 참조하십시오.AWS IoT Greengrass V2에 대한 자세한 내용은AWS IoT Greengrass Version 2개발자 안내서.

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

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

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입니다. 사용자 지정 컨테이너 이미지에서 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.0.0 이상.

      참고

      나중으로 업그레이드하려면AWS CLI버전 2를 반복해야 합니다.MSI 설치프로세스를 실행합니다.

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

    • Python버전 3.6 이상.

    • pip 버전 18.1 이상

    • AWS CLI버전 1.17.10 이상

      • 를 설치하려면AWS CLI버전 1에 대한 자세한 내용은다음 설치AWS CLI버전 1.

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

      • 최신 버전으로 업그레이드하려면AWS CLI버전 1에 대해 다음 명령을 실행합니다.

        pip install awscli --upgrade --user
      참고

      MSI 설치의AWS CLI버전 1에 대한 자세한 내용은 다음 사항에 유의하십시오.

      • 만약AWS CLI버전 1 설치에서 botocore를 설치하지 못하는 경우Python 및 pip를 설치합니다.

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

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

    • Amazon ECR을 사용하려면 사용자가ecr:GetAuthorizationToken권한을 통해AWS Identity and Access Management(IAM) 정책을 사용하여 레지스트리에 인증하고 Amazon ECR 리포지토리에서 이미지를 푸시하거나 가져올 수 있습니다. 자세한 내용은 단원을 참조하십시오.Amazon ECR 리포지토리 정책 예제하나의 Amazon ECR 리포지토리에 액세스Amazon Elastic 컨테이너 레지스트리 사용자 안내서.

 

  1. 도커 이미지를 다운로드하고 컨테이너를 구성합니다. 에서 미리 빌드된 이미지를 다운로드할 수 있습니다.Docker Hub또는Amazon Elastic 컨테이너 레지스트리(Amazon ECR) 와 윈도우, macOS, 리눅스 (x86_64) 플랫폼에서 실행할 수 있습니다.

    Amazon ECR에서 도커 이미지를 다운로드하려면1단계: GetAWS IoT GreengrassAmazon ECR에서 컨테이너 이미지. 그런 다음 이 항목으로 돌아와 구성을 계속합니다.

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

  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 도커 이미지 목록을 얻으려면 다음 명령을 실행합니다.

      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 도커 이미지 목록을 얻으려면 다음 명령을 실행합니다.

      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 도커 이미지 목록을 얻으려면 다음 명령을 실행합니다.

      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.jsonfile.

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

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

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

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

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

  4. Linux 사용자만 해당: 를 완료합니다.심볼릭 링크 및 하드링크 보호 활성화IPv4 네트워크 전달 사용단계를 수행합니다.

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

  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 도커 이미지 목록을 얻으려면 다음 명령을 실행합니다.

      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 도커 이미지 목록을 얻으려면 다음 명령을 실행합니다.

      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 도커 이미지 목록을 얻으려면 다음 명령을 실행합니다.

      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.jsonfile.

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

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

경고: WARNING: /home/user/user/user/user/user/user/config.json - stat /home/ <user>/.docker/설정.json: 사용 권한이 거부되었습니다.

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

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