Elastic Beanstalk에서 ECS 관리형 Docker 플랫폼 브랜치 사용 - AWS Elastic Beanstalk

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

Elastic Beanstalk에서 ECS 관리형 Docker 플랫폼 브랜치 사용

이 주제에서는 Amazon Linux 2 및 Amazon Linux 2023용 ECS 관리형 Docker 플랫폼 브랜치에 대한 정보를 제공합니다. 또한 지원되는 플랫폼 브랜치 중 하나로 마이그레이션하려는 경우 AL1의 사용 중지된 플랫폼 브랜치 다중 컨테이너 도커(ECS 관리형도 마찬가지)를 적용됩니다.

참고

2022년 7월 18일 Elastic Beanstalk는 Amazon Linux AMI(AL1) 에 기반한 모든 플랫폼 브랜치의 상태를 사용 중지로 설정했습니다.

AL1 멀티 컨테이너 도커에서 마이그레이션

현재 AL1 플랫폼 브랜치에서 실행되는 멀티 컨테이너 도커를 사용하는 경우 AL2023에서 플랫폼 브랜치를 기반으로 실행되는 ECS의 플랫폼 브랜치로 마이그레이션을 권장합니다. 최신 플랫폼 브랜치는 이 단종된 플랫폼 브랜치의 모든 기능을 지원합니다. 소스 코드를 변경할 필요가 없습니다. 자세한 내용은 Elastic Beanstalk 애플리케이션을 AL1의 ECS 관리형 다중 컨테이너 도커에서 Amazon Linux 2023 기반의 ECS로 마이그레이션 단원을 참조하십시오.

ECS 관리형 Docker 플랫폼 개요

Elastic Beanstalk는 Amazon Elastic Container Service(Amazon ECS)를 사용하여 ECS 관리형 도커환경에 맞게 컨테이너 배포를 조정합니다. Amazon ECS는 도커 컨테이너를 실행하는 인스턴스 클러스터를 관리하기 위한 도구를 제공합니다. Elastic Beanstalk는 클러스터 생성, 작업 정의 및 실행을 비롯한 Amazon ECS 작업을 처리합니다. 환경의 각 인스턴스는 동일한 컨테이너 세트를 실행하며, 이는 Dockerrun.aws.json v2 파일에 정의되어 있습니다. 도커를 최대한 활용하기 위해, Elastic Beanstalk를 통해 Amazon EC2 인스턴스가 여러 도커 컨테이너를 나란히 실행하는 환경을 생성할 수 있습니다.

다음 다이어그램은 Auto Scaling 그룹의 각 Amazon EC2 인스턴스에서 실행되는 도커 컨테이너 세 개로 구성된 Elastic Beanstalk 환경 예를 보여 줍니다:

Elastic Beanstalk environment with load balancer, auto scaling group, and containerized tasks.
참고

Elastic Beanstalk는 애플리케이션의 배포 및 실행을 사용자 지정하는 데 사용할 수 있는 모든 플랫폼에 대한 확장성 기능을 제공합니다. Amazon Linux 2에서 실행되는 ECS 플랫폼 브랜치의 경우, 이러한 기능의 인스턴스 배포 워크플로 구현은 다른 플랫폼과 다릅니다. 자세한 내용은 Amazon Linux 2 이상에서 실행되는 ECS의 인스턴스 배포 워크플로 단원을 참조하십시오.

Elastic Beanstalk에서 생성한 Amazon ECS 리소스

ECS 관리형 Docker 플랫폼을 사용하여 환경을 생성하면 Elastic Beanstalk가 여러 Amazon Elastic Container Service 리소스를 자동으로 생성하고 구성하는 동시에 환경을 구축합니다. 이렇게 하면 각 Amazon EC2 인스턴스에 필요한 컨테이너가 생성됩니다.

  • Amazon ECS 클러스터 – Amazon ECS의 컨테이너 인스턴스는 클러스터로 구성되어 있습니다. Elastic Beanstalk에서 사용할 경우 각 ECS 관리형 Docker 환경마다 항상 클러스터 하나가 생성됩니다.

  • Amazon ECS 작업 정의 - Elastic Beanstalk는 프로젝트의 Dockerrun.aws.json v2를 사용하여 환경의 컨테이너 인스턴스를 구성하는 데 사용되는 Amazon ECS 작업 정의를 생성합니다.

  • Amazon ECS 작업 – Elastic Beanstalk는 Amazon ECS와 통신하여 환경의 모든 인스턴스에서 작업을 실행하여 컨테이너 배포를 조정합니다. 확장 가능 환경에서 Elastic Beanstalk는 인스턴스가 클러스터에 추가될 때마다 새 작업을 시작합니다. 드문 경우지만 컨테이너와 이미지를 위해 예약된 공간의 양을 늘려야 할 수 있습니다. Elastic Beanstalk Docker 환경 구성 단원에서 자세히 알아보십시오.

  • Amazon ECS 컨테이너 에이전트 – 이 에이전트는 환경에 있는 인스턴스의 도커 컨테이너에서 실행됩니다. 이 에이전트는 Amazon ECS 서비스를 폴링하고 작업이 실행되기를 기다립니다.

  • Amazon ECS 데이터 볼륨 – Elastic Beanstalk는 (Dockerrun.aws.json v2에서 정의한 볼륨 외에도) 볼륨 정의를 작업 정의에 삽입하여 로그 수집을 용이하게 합니다.

    Elastic Beanstalk는 /var/log/containers/containername의 각 컨테이너의 컨테이너 인스턴스에 로그 볼륨을 생성합니다. 이러한 볼륨의 이름은 awseb-logs-containername이고, 컨테이너를 탑재하기 위해 제공됩니다. 탑재 방법에 대한 세부 정보는 컨테이너 정의 형식 단원을 참조하세요.

Dockerrun.aws.json v2 파일

컨테이너 인스턴스에는 Dockerrun.aws.json이라는 구성 파일이 필요합니다. 컨테이너 인스턴스는 Elastic Beanstalk 환경에서 ECS 관리형 Docker를 실행하는 Amazon EC2 인스턴스를 말합니다. 이 파일은 Elastic Beanstalk에 고유하며 단독으로 사용하거나 소스 번들의 내용 및 소스 코드와 함께 사용하여 도커 플랫폼에서 환경을 생성할 수 있습니다.

참고

Dockerrun.aws.json의 버전 2 형식은 Amazon EC2 인스턴스당 여러 개의 컨테이너를 추가로 지원하며, ECS 관리형 도커 플랫폼에서만 사용할 수 있습니다. 형식은 ECS에서 관리하지 않는 Docker 플랫폼 브랜치를 지원하는 다른 구성 파일 버전과 크게 다릅니다.

업데이트된 형식에 대한 세부 정보 및 파일 예제는 Dockerrun.aws.json v2을 참조하세요.

도커 이미지

Elastic Beanstalk용 ECS 관리형 Docker 플랫폼을 사용하려면 Elastic Beanstalk 환경을 생성하기 전에 이미지를 미리 빌드하고 퍼블릭 또는 프라이빗 온라인 이미지 리포지토리에 저장해야 합니다.

참고

Elastic Beanstalk의 ECS 관리형 Docker 플랫폼에서는 Dockerfile을(를) 사용하여 배포 중에 사용자 지정 이미지를 빌드할 수 없습니다. Elastic Beanstalk 환경을 생성하기 전에 이미지를 빌드한 후 이를 온라인 리포지토리에 배포하십시오.

Dockerrun.aws.json v2에 이미지를 이름으로 지정합니다.

프라이빗 리포지토리를 인증하도록 Elastic Beanstalk를 구성하려면 authentication v2 파일에 Dockerrun.aws.json 파라미터를 포함시킵니다.

실패한 컨테이너 배포

Amazon ECS 작업에 실패하면 Elastic Beanstalk 환경의 하나 이상의 컨테이너가 시작되지 않습니다. Elastic Beanstalk는 실패한 Amazon ECS 작업으로 인해 멀티컨테이너 환경을 롤백하지 않습니다. 컨테이너가 환경에서 시작되지 않는 경우 Elastic Beanstalk 콘솔에서 현재 버전 또는 이전 작업 버전을 재 배포합니다.

기존 버전을 배포하려면
  1. 환경의 리전에서 Elastic Beanstalk 콘솔을 엽니다.

  2. 애플리케이션 이름 오른쪽의 작업을 클릭한 후 View application versions(애플리케이션 버전 보기)를 클릭합니다.

  3. 애플리케이션 버전을 선택하고 배포를 클릭합니다.