미리 구성된 Docker 컨테이너 - AWS Elastic Beanstalk

미리 구성된 Docker 컨테이너

Elastic Beanstalk는 Java EE GlassFish 애플리케이션 서버 소프트웨어 스택으로 미리 구성된 Docker 컨테이너를 실행하는 플랫폼 브랜치가 있습니다. 미리 구성된 Docker 컨테이너를 사용하여 애플리케이션을 로컬로 개발 및 테스트한 다음, 로컬 환경과 동일한 Elastic Beanstalk 환경에 애플리케이션을 배포할 수 있습니다.

참고
  • Elastic Beanstalk는 또한 Go 및 Python용 미리 구성된 Docker 컨테이너가 있는 플랫폼 브랜치를 지원합니다. 이 플랫폼 브랜치는 만료 예정입니다.

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

다음 섹션에서는 미리 구성된 Docker 컨테이너를 사용하여 Elastic Beanstalk에 애플리케이션을 배포하는 자세한 절차를 제공합니다.

현재 지원되는 미리 구성된 Docker 플랫폼 버전에 대한 자세한 내용은 AWS Elastic Beanstalk 플랫폼 문서의 미리 구성된 Docker를 참조하십시오.

미리 구성된 Docker 컨테이너 시작하기

이 섹션에서는 미리 구성된 Docker 컨테이너를 사용하여 로컬로 예제 애플리케이션을 개발한 다음 애플리케이션을 Elastic Beanstalk에 배포하는 방법을 연습합니다.

로컬 개발 환경 설정

이 연습을 위해 GlassFish 예제 애플리케이션을 사용합니다.

환경을 설정하려면

  1. 예제 애플리케이션을 위한 새 폴더를 만듭니다.

    ~$ mkdir eb-preconf-example ~$ cd eb-preconf-example
  2. 예제 애플리케이션 코드를 새 폴더에 다운로드하십시오.

    ~$ wget https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/samples/docker-glassfish-v1.zip ~$ unzip docker-glassfish-v1.zip ~$ rm docker-glassfish-v1.zip

로컬로 개발 및 테스트

예제 GlassFish 애플리케이션을 개발하려면

  1. 애플리케이션의 루트 폴더에 Dockerfile을 추가합니다. 파일에서 미리 지정된 로컬 Docker 컨테이너를 실행하는 데 사용할 AWS Elastic Beanstalk 기본 이미지를 지정합니다. 나중에 애플리케이션을 Elastic Beanstalk 미리 구성된 Docker GlassFish 플랫폼 버전에 배포합니다. 이 플랫폼 버전에서 사용하는 Docker 기본 이미지를 선택하십시오. 플랫폼 버전의 현재 Docker 이미지를 확인하려면 AWS Elastic Beanstalk 플랫폼 가이드에서 AWS Elastic Beanstalk 지원되는 플랫폼 페이지의 미리 구성된 Docker 섹션을 참조하십시오.

    예 ~/Eb-preconf-example/Dockerfile

    # For Glassfish 5.0 Java 8 FROM amazon/aws-eb-glassfish:5.0-al-onbuild-2.11.1

    Dockerfile 사용에 대한 자세한 내용은 Docker 구성 단원을 참조하십시오.

  2. Docker 이미지를 구축합니다.

    ~/eb-preconf-example$ docker build -t my-app-image .
  3. 해당 이미지에서 Docker 컨테이너를 실행합니다.

    참고

    컨테이너의 포트 3000을 로컬 호스트 포트 8080에 매핑하려면 -p 플래그를 포함시켜야 합니다. Elastic Beanstalk Docker 컨테이너는 항상 컨테이너의 포트 8080에 애플리케이션을 표시합니다. -it 플래그는 이미지를 대화형 프로세스로 실행합니다. --rm 플래그는 컨테이너가 종료될 때 컨테이너 파일 시스템을 정리합니다. 필요에 따라 -d 플래그를 포함시켜 이미지를 데몬으로 실행할 수도 있습니다.

    $ docker run -it --rm -p 3000:8080 my-app-image
  4. 예제 애플리케이션을 보려면 웹 브라우저에 다음 URL을 입력합니다.

    http://localhost:3000

    다음 웹페이지가 나타납니다.

    
              웹 브라우저에 표시되는 GlassFish 예제 애플리케이션

Elastic Beanstalk에 게시

애플리케이션을 테스트하면 이를 Elastic Beanstalk에 배포할 준비가 완료됩니다.

Elastic Beanstalk에 애플리케이션을 배포하려면

  1. 애플리케이션의 루트 폴더에서 DockerfileDockerfile.local로 이름을 바꿉니다. 이 단계는 Elastic Beanstalk가 Elastic Beanstalk에 대한 올바른 지침이 포함된 Dockerfile을 사용하여 Elastic Beanstalk 환경의 각 Amazon EC2 인스턴스에 사용자 지정된 Docker 이미지를 빌드하는 데 필요합니다.

    참고

    Dockerfile에 플랫폼 버전의 기본 도커 이미지를 수정하는 지침이 포함된 경우 이 단계를 수행하지 않아도 됩니다. Dockerfile에 컨테이너를 구축할 기본 이미지를 지정하는 FROM 줄만 포함된 경우 Dockerfile을 사용하지 않아도 됩니다. 이 경우 Dockerfile은 불필요합니다.

  2. 애플리케이션 소스 번들을 생성합니다.

    ~/eb-preconf-example$ zip myapp.zip -r *
  3. 미리 구성된 다음 링크를 사용하여 Elastic Beanstalk 콘솔을 엽니다. console.aws.amazon.com/elasticbeanstalk/home#/newApplication?applicationName=tutorials&environmentType=LoadBalanced

  4. 플랫폼에 대해, 미리 구성된 – Docker에서 Glassfish를 선택합니다.

  5. [Application code]에서 [Upload your code]를 선택한 다음 [Upload]를 선택합니다.

  6. 로컬 파일을 선택하고 Browse(찾아보기)를 선택한 후 방금 생성한 애플리케이션 소스 번들을 엽니다.

  7. 업로드를 선택합니다.

  8. 검토 및 시작을 선택합니다.

  9. 사용 가능한 설정을 검토한 후 앱 생성을 선택합니다.

  10. 환경이 생성되면 배포된 애플리케이션을 볼 수 있습니다. 콘솔 대시보드 상단에 표시되는 환경 URL을 선택하십시오.