Elastic Beanstalk에서 ECS 관리형 도커 플랫폼 브랜치 사용하기 - AWS Elastic Beanstalk

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

Elastic Beanstalk에서 ECS 관리형 도커 플랫폼 브랜치 사용하기

이 항목에서는 아마존 리눅스 2 및 아마존 리눅스 2023의 ECS 관리형 Docker 플랫폼 브랜치에 대한 정보를 제공합니다. 지원되는 플랫폼 브랜치 중 하나로 마이그레이션하려는 경우, 지원 중단된 플랫폼 브랜치 멀티 컨테이너 Docker AL1 (ECS관리형) 에도 적용됩니다.

참고

2022년 7월 18일, Elastic Beanstalk는 아마존 리눅스 () 를 기반으로 하는 모든 플랫폼 브랜치의 상태를 은퇴로 설정했습니다. AMI AL1

멀티 컨테이너 Docker에서 마이그레이션하기 AL1

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

ECS관리형 Docker 플랫폼 개요

Elastic Beanstalk는 아마존 엘라스틱 컨테이너 서비스 ECS (Amazon) 를 사용하여 관리형 도커 환경으로의 ECS 컨테이너 배포를 조정합니다. ECSAmazon은 Docker 컨테이너를 실행하는 인스턴스 클러스터를 관리하는 도구를 제공합니다. Elastic Beanstalk는 클러스터 생성, 작업 ECS 정의 및 실행을 포함한 Amazon 작업을 처리합니다. 환경의 각 인스턴스는 동일한 컨테이너 세트를 실행하며, 이는 Dockerrun.aws.json v2 파일에 정의되어 있습니다. Docker를 최대한 활용하기 위해 Elastic Beanstalk를 사용하면 EC2 Amazon 인스턴스에서 여러 Docker 컨테이너를 나란히 실행하는 환경을 만들 수 있습니다.

다음 다이어그램은 Auto Scaling 그룹의 EC2 각 Amazon 인스턴스에서 실행되는 세 개의 Docker 컨테이너로 구성된 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에서 만든 아마존 ECS 리소스

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

  • Amazon ECS 클러스터 — ECS Amazon의 컨테이너 인스턴스는 클러스터로 구성되어 있습니다. Elastic Beanstalk와 함께 사용하면 관리되는 각 Docker 환경에 대해 항상 하나의 클러스터가 생성됩니다ECS.

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

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

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

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

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

Dockerrun.aws.jsonv2 파일

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

참고

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

업데이트된 형식 및 예제 파일에 Dockerrun.aws.json v2 대한 자세한 내용은 를 참조하십시오.

도커 이미지

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

참고

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

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

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

실패한 컨테이너 배포

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

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

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

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