Amazon ECR에 애플리케이션 컨테이너 게시 - AWS RoboMaker

AWS RoboMaker 신규 고객은 더 이상 사용할 수 없습니다. 의 기존 고객 AWS RoboMaker 정상적으로 서비스를 계속 사용할 수 있습니다. AWS Batch 이제 컨테이너식 시뮬레이션을 실행하는 데 선호되는 서비스입니다. 자세히 알아보기

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

Amazon ECR에 애플리케이션 컨테이너 게시

시뮬레이션 작업에서 AWS RoboMaker이 사용하는 컨테이너는 완전 관리형 컨테이너 레지스트리인 Amazon Elastic Container Registry(ECR)에 저장되어야 합니다. 성공적으로 애플리케이션 컨테이너를 구축했으면 Amazon ECR로 푸시해야 합니다. 이 단원에서 그 방법을 설명합니다.

시작하려면 다음 명령에서 재사용되는 몇 가지 환경 변수를 설정하여 반복적인 입력을 줄일 수 있습니다.

export robotapp=robomaker-helloworld-robot-app export simapp=robomaker-helloworld-sim-app export account=<YOUR AWS ACCOUNT NUMBER> export region=<YOUR AWS REGION> export ecruri=$account.dkr.ecr.$region.amazonaws.com

그런 다음 로그인해 두 개의 새 리포지토리를 만듭니다.

aws ecr get-login-password --region $region | docker login --username AWS --password-stdin $ecruri aws ecr create-repository --repository-name $robotapp aws ecr create-repository --repository-name $simapp

Amazon ECR 리포지토리의 URI를 사용하여 도커 이미지에 태그를 지정할 수 있습니다.

docker tag $robotapp $ecruri/$robotapp:latest docker tag $simapp $ecruri/$simapp:latest

다음으로 Amazon ECR에 도커 이미지를 푸시합니다.

docker push $ecruri/$robotapp docker push $ecruri/$simapp

마지막으로 다음 명령을 실행하여 Amazon ECR에 업로드된 이미지를 확인할 수 있습니다.

aws ecr list-images --repository-name $simapp aws ecr list-images --repository-name $robotapp

다음 코드 조각은 예상 출력을 보여줍니다.

Administrator:~/environment/helloworld (ros1) $ aws ecr list-images --repository-name $simapp { "imageIds": [ { "imageDigest": "sha256:28cad40230402343024kf303f30fk20f2f2fa0a8148", "imageTag": "latest" } ] } Administrator:~/environment/helloworld (ros1) $ aws ecr list-images --repository-name $robotapp { "imageIds": [ { "imageDigest": "sha256:28cad40230402343024kf303f30fk20f2f2fa0a8148", "imageTag": "latest" } ] }

이제 로봇 및 시뮬레이션 도커 이미지가 Amazon ECR 내에서 호스팅되고 있습니다. 시뮬레이션 작업을 제출하기 전에 이러한 이미지를 로봇 애플리케이션 또는 시뮬레이션 애플리케이션에 연결해야 합니다.

애플리케이션 버전 관리

AWS RoboMaker는 로봇 애플리케이션과 시뮬레이션 애플리케이션을 두 가지 이상의 버전으로 생성하는 것을 지원합니다. 따라서 로봇 및 시뮬레이션이 사용하는 코드를 제어할 수 있습니다. 버전은 $LATEST 버전 애플리케이션의 번호가 지정된 스냅샷입니다. 개발 워크플로의 여러 부분에서 사용할 버전을 생성할 수 있습니다. 예를 들어 개발, 베타 배포 또는 프로덕션 단계가 있습니다.

AWS RoboMaker 로봇 애플리케이션 또는 시뮬레이션 애플리케이션의 버전을 관리할 때 애플리케이션의 스냅샷을 생성합니다. Amazon ECR은 이미지 다이제스트를 사용하여 애플리케이션 버전을 나타냅니다. AWS RoboMaker은 각 버전의 이미지 다이제스트를 기억합니다.

Amazon ECR에 이미지를 업로드하고 이미지 다이제스트를 변경하지 않은 경우, 해당 버전의 애플리케이션에 액세스하여 사용할 수 있습니다. 애플리케이션당 최대 40개의 버전을 생성할 수 있습니다.

이미지를 생성할 때 이미지에 태그를 적용할 수도 있습니다. $LATEST 버전의 latest로 태그 필드의 값을 지정할 수 있습니다. 이 값들은 서로 다릅니다.

이미지에 latest 태그를 가져오는 방법에는 두 가지가 있습니다.

  • 값이 latest인 태그를 지정했습니다.

  • 태그가 없는 이미지를 푸시하면 Amazon ECR이 해당 latest 태그로 이미지를 업데이트합니다.

AWS RoboMaker에서 이미지에 태그를 지정하면 이미지가 항상 $LATEST 버전으로 선택됩니다. 예를 들어 이미지 이름 myImage, 태그 xyz 및 이미지 다이제스트 123을 사용하여 로봇 애플리케이션을 만들면 $LATEST 버전은 다이제스트 123myImage:xyz가 됩니다.

태그를 추가해야 하는 시나리오는 다음과 같습니다.

  • 새 태그를 사용하도록 $LATEST 버전을 업데이트합니다. 예를 들어 이미지 myImage가 있는 경우 abc 태그를 사용하여 이미지를 업데이트할 수 있습니다. 이미지의 $LATEST 버전은 myImage:abc를 가리킵니다.

  • 이미지를 업데이트하고 태그를 다시 지정합니다. 예를 들어, abc 태그가 있는 이미지를 변경할 수 있습니다. xyz 태그를 업데이트한 후 사용할 수 있습니다. $LATEST 버전은 myImage:xyz를 가리킵니다.

자세한 내용은 애플리케이션 버전 지정 섹션을 참조하세요.