Docker 컨테이너에서 Elastic Beanstalk 애플리케이션 배포 - AWS Elastic Beanstalk

Docker 컨테이너에서 Elastic Beanstalk 애플리케이션 배포

Elastic Beanstalk는 Docker 컨테이너에서 웹 애플리케이션의 배포를 지원합니다. Docker 컨테이너로 실행 시간 환경을 사용자 지정할 수 있습니다. 일반적으로 다른 플랫폼에서 지원되지 않는 모든 애플리케이션 종속성(예: 패키지 관리자 또는 도구), 프로그래밍 언어, 자체 플랫폼을 선택할 수도 있습니다. Docker 컨테이너는 독립형으로 실행되며 웹 애플리케이션을 실행하는 데 필요한 소프트웨어와 모든 구성 정보를 포함합니다. Elastic Beanstalk 콘솔에서 정의되는 모든 환경 변수는 컨테이너로 전달됩니다.

Elastic Beanstalk에서 Docker를 사용하여 용량 프로비저닝, 로드 밸런싱, 조정, 애플리케이션 상태 모니터링에 대한 모든 세부 정보를 처리하는 인프라를 보유합니다. Elastic Beanstalk와 통합되는 다양한 서비스를 지원하는 환경에서 웹 애플리케이션을 손쉽게 관리할 수 있습니다. 이러한 환경에는 VPC, RDSIAM이 포함되며 이에 국한되지 않습니다. 설치 방법, 필요한 소프트웨어, Docker 이미지를 사용하여 Docker 컨테이너를 시작하는 방법 등 Docker에 대한 자세한 내용은 Docker: Linux 컨테이너 엔진을 참조하십시오.

이 장에서 다루는 주제를 이해하려면 Elastic Beanstalk 환경에 대한 약간의 지식이 있어야 합니다. 아직 Elastic Beanstalk를 사용한 적이 없다면 시작하기 자습서를 통해 기본 사항을 익히기 바랍니다.

Docker 플랫폼 패밀리

Elastic Beanstalk에 대한 Docker 플랫폼 제품군에는 여러 플랫폼이 포함되어 있습니다. Amazon Linux 2에서 실행되는 Docker 플랫폼은 장기 지원과 같은 대부분의 이점을 제공합니다. 다음 섹션에서는 Elastic Beanstalk가 제공하는 Docker 플랫폼과 Amazon Linux 2에 대한 권장 마이그레이션 경로에 대해 자세히 설명합니다.

각 Docker 플랫폼에 대해 지원되는 플랫폼 버전에 대한 자세한 내용은 AWS Elastic Beanstalk 플랫폼 문서의 지원되는 플랫폼 페이지를 참조하십시오.

Docker 플랫폼

Elastic Beanstalk는 Elastic Beanstalk Docker 플랫폼을 실행하는 EC2 인스턴스에 Docker 이미지 및 소스 코드를 배포할 수 있습니다. 이 플랫폼은 멀티컨테이너(및 단일 컨테이너) 지원을 제공합니다. Docker 플랫폼의 Docker Compose 도구를 활용하여 애플리케이션 구성, 테스트 및 배포를 간소화할 수도 있습니다.

이 Amazon Linux 2 Docker 플랫폼은 다음과 같은 이점을 제공합니다.

  • 장기 지원. Amazon Linux 2 플랫폼의 Docker는 보안 및 기능 업데이트를 제공하는 장기 지원을 받습니다.

  • Docker Compose 기능. 이 플랫폼을 사용하면 Docker Compose 도구가 제공하는 기능을 활용하여 여러 컨테이너를 정의하고 실행할 수 있습니다. Elastic Beanstalk에 배포할 docker-compose.yml 파일을 포함할 수 있습니다.

  • 퍼블릭 또는 프라이빗 리포지토리의 애플리케이션 이미지 사용 Elastic Beanstalk는 Docker Compose 명령줄 인터페이스를 호출하여 docker-compose.yml 파일을 처리하여 애플리케이션 이미지를 가져와서 컨테이너화된 애플리케이션으로 실행합니다.

  • 배포 중에 컨테이너 이미지를 빌드합니다. 애플리케이션 이미지를 배포하여 컨테이너로 실행하기 전에 애플리케이션 이미지를 미리 빌드할 필요가 없습니다. 배포하는 동안 Dockerfile에 종속성을 지정하여 컨테이너 이미지를 처음부터 빌드할 수 있습니다.

Docker 환경 시작에 대한 샘플 및 도움말은 Docker 플랫폼 사용 단원을 참조하십시오. 컨테이너 정의 형식 및 사용에 대한 자세한 내용은 Docker 구성 단원을 참조하십시오.

다음 섹션은 이전 Amazon Linux AMI 플랫폼 버전(Amazon Linux 2 이전 버전)을 사용하는 Elastic Beanstalk Docker 환경과 관련이 있습니다.

Amazon Linux AMI 기반 Docker 플랫폼을 사용하여 Docker 이미지(Dockerfile 또는 Dockerrun.aws.json 정의에 설명되어 있음)와 소스 코드를 Elastic Beanstalk 환경에서 실행 중인 EC2 인스턴스에 배포할 수 있습니다. 이 Docker 플랫폼은 각 인스턴스에 대해 하나의 컨테이너만 실행합니다.

Docker 환경 시작에 대한 샘플 및 도움말은 Docker 플랫폼 사용 단원을 참조하십시오. 컨테이너 정의 형식 및 사용에 대한 자세한 내용은 Docker 구성 단원을 참조하십시오.

참고

이 플랫폼은 Amazon Linux AMI 운영 체제(이전 Amazon Linux 2 버전)만 지원합니다. Docker 플랫폼은 Amazon Linux 2와 함께 멀티컨테이너 Docker 기능을 제공합니다.

또 다른 기본 플랫폼인 멀티컨테이너 Docker는 Amazon Elastic Container Service(Amazon ECS)를 사용하여 Elastic Beanstalk 환경에서 여러 Docker 컨테이너가 Amazon ECS 클러스터로 배포되는 것을 조정합니다. 환경에서 각 인스턴스는 동일한 컨테이너 세트를 실행하며, 이는 Dockerrun.aws.json 파일에 정의되어 있습니다. Elastic Beanstalk 환경에서 Amazon Linux AMI 플랫폼 버전(Amazon Linux 2 이전 버전)을 사용하는 경우 멀티컨테이너 플랫폼을 사용하여 각 인스턴스에 여러 Docker 컨테이너를 배포합니다.

멀티컨테이너 Docker 플랫폼 및 사용에 대한 자세한 내용은 멀티컨테이너 Docker 플랫폼(Amazon Linux AMI) 단원을 참조하십시오. 멀티컨테이너 Docker 구성 주제에서는 Docker 플랫폼에 사용된 버전과 유사하나 호환되지는 않는 Dockerrun.aws.json 형식의 버전 2에 대해 자세히 설명합니다. 또한 멀티컨테이너 환경의 배포를 처음부터 안내하는 자습서도 있습니다. 설명하는 환경은 별도의 컨테이너에서 그 앞에 실행 중인 NGINX 프록시를 통해 PHP 웹 사이트를 실행합니다.

일반 Docker 플랫폼 두 가지 외에도 미리 구성된 여러 Docker 플랫폼 브랜치를 사용하여 인기 있는 소프트웨어 스택(예: GlassFish 기반 Java 또는 uWSGI 기반 Python) 중 하나에서 애플리케이션을 실행할 수 있습니다. 애플리케이션에서 사용하는 소프트웨어와 일치하는 경우 미리 구성된 컨테이너를 사용합니다.

참고

미리 구성된 모든 Docker 플랫폼 브랜치는 Amazon Linux AMI 운영 체제(Amazon Linux 2 이전 버전)를 사용합니다. GlassFish 애플리케이션을 Amazon Linux 2로 마이그레이션하려면 일반 Docker 플랫폼을 사용하고 GlassFish와 애플리케이션 코드를 Amazon Linux 2 Docker 이미지에 배포합니다. 자세한 내용은 Docker 플랫폼에 GlassFish 애플리케이션 배포: Amazon Linux 2에 대한 마이그레이션 경로 단원을 참조하십시오.

자세한 내용은 미리 구성된 Docker 컨테이너 단원을 참조하십시오.