Elastic Beanstalk에서 사전 구성된 도커 GlassFish 컨테이너 - AWS Elastic Beanstalk

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

Elastic Beanstalk에서 사전 구성된 도커 GlassFish 컨테이너

참고

2022년 7월 18일, Elastic Beanstalk는 아마존 리눅스 () 를 기반으로 하는 모든 플랫폼 브랜치의 상태를 은퇴로 설정했습니다. AMI AL1 완전 지원이 가능한 현재 Amazon Linux 2023 플랫폼 브랜치로 마이그레이션하는 방법에 대한 자세한 내용은 Elastic Beanstalk Linux 애플리케이션을 Amazon Linux 2023 또는 Amazon Linux 2로 마이그레이션을(를) 참조하세요.

Amazon Linux AMI (AL1) 에서 실행되는 사전 구성된 Docker GlassFish 플랫폼 브랜치는 더 이상 지원되지 않습니다. 애플리케이션을 지원되는 Amazon Linux 2023 플랫폼으로 마이그레이션하려면 GlassFish 애플리케이션 코드를 Amazon Linux 2023 Docker 이미지에 GlassFish 배포하십시오. 자세한 내용은 Docker 플랫폼에 GlassFish 애플리케이션 배포: Amazon Linux 2023으로의 마이그레이션 경로 주제를 참조하십시오.

이 섹션에서는 미리 구성된 도커 컨테이너를 사용하여 로컬로 예제 애플리케이션을 개발한 다음 애플리케이션을 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을 추가합니다. 파일에서 사전 구성된 로컬 AWS Elastic Beanstalk Docker 컨테이너를 실행하는 데 사용할 Docker 기본 이미지를 지정합니다. 나중에 Elastic GlassFish Beanstalk 사전 구성된 Docker 플랫폼 버전에 애플리케이션을 배포합니다. 이 플랫폼 버전에서 사용하는 도커 기본 이미지를 선택하십시오. 플랫폼 버전의 현재 도커 이미지를 확인하려면 AWS Elastic Beanstalk 플랫폼 안내서에서 AWS Elastic Beanstalk 지원 플랫폼 페이지의 미리 구성된 도커을 참조하세요.

    예 ~/E /도커파일 b-preconf-example
    # For Glassfish 5.0 Java 8 FROM amazon/aws-eb-glassfish:5.0-al-onbuild-2.11.1

    Dockerfile 사용에 대한 자세한 내용은 Elastic Beanstalk에 배포하기 위한 도커 이미지 준비 단원을 참조하십시오.

  2. 도커 이미지를 구축합니다.

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

    참고

    컨테이너의 포트 3000을 로컬 호스트 포트 8080에 매핑하려면 -p 플래그를 포함시켜야 합니다. Elastic Beanstalk 도커 컨테이너는 항상 컨테이너의 포트 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 환경의 각 아마존 인스턴스에 사용자 지정된 도커 이미지를 구축할 때 Elastic Beanstalk에 대한 올바른 지침이 포함된 내용을 Dockerfile 사용하기 위해 필요합니다. EC2

    참고

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

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

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

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

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

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

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

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

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

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

Docker 플랫폼에 GlassFish 애플리케이션 배포: Amazon Linux 2023으로의 마이그레이션 경로

이 자습서의 목표는 사전 구성된 Docker GlassFish 플랫폼 (Amazon Linux 기반AMI) 을 사용하는 고객에게 Amazon Linux 2023으로의 마이그레이션 경로를 제공하는 것입니다. Amazon Linux 2023 Docker 이미지에 GlassFish 애플리케이션 코드를 GlassFish 배포하여 애플리케이션을 Amazon Linux 2023으로 마이그레이션할 수 있습니다.

이 자습서에서는 AWS Elastic Beanstalk Docker 플랫폼을 사용하여 Java EE GlassFish 애플리케이션 서버 기반 애플리케이션을 Elastic Beanstalk 환경에 배포하는 방법을 안내합니다.

도커 이미지를 작성하는 두 가지 방법을 보여줍니다:

  • 간단 — GlassFish 애플리케이션 소스 코드를 제공하면 Elastic Beanstalk가 환경 프로비저닝의 일환으로 Docker 이미지를 빌드하고 실행하도록 하세요. 인스턴스 프로비저닝 시간이 늘어나면 쉽게 설정할 수 있습니다.

  • 고급 – 애플리케이션 코드와 종속성이 포함된 사용자 지정 도커 이미지를 빌드하고 사용자 환경에서 사용할 수 있도록 Elastic Beanstalk에 제공합니다. 해당 접근 방식은 관련성이 더 높으며 사용자 환경에서 인스턴스의 프로비저닝 시간을 단축합니다.

사전 조건

이 자습서에서는 기본적인 Elastic Beanstalk 작업, Elastic Beanstalk 명령줄 인터페이스 (EB) 및 Docker에 대해 어느 정도 알고 있다고 가정합니다. CLI 아직 그렇지 않은 경우 Elastic Beanstalk 시작하기의 지침에 따라 첫 Elastic Beanstalk 환경을 시작합니다. 이 자습서에서는 CLIEB를 사용하지만 Elastic Beanstalk 콘솔을 사용하여 환경을 만들고 애플리케이션을 업로드할 수도 있습니다.

이 튜토리얼을 따르려면 다음 도커 구성 요소도 필요합니다:

  • 도커가 로컬에 유효하게 설치되어야 합니다. 자세한 정보는 도커 설명서 웹 사이트에서 도커 가져오기를 참조하세요.

  • 도커 허브에 액세스합니다. 도커 허브에 액세스하려면 도커 ID를 생성해야 합니다. 자세한 내용은 도커 설명서 웹 사이트에서 애플리케이션 공유를 참조하세요.

Elastic Beanstalk 플랫폼에서 Docker 환경을 구성하는 방법에 대한 자세한 내용은 해당 같은 챕터에서 Elastic Beanstalk에 배포하기 위한 도커 이미지 준비을(를) 참조하세요.

단순 예제: 애플리케이션 코드 제공

이렇게 하면 애플리케이션을 쉽게 배포할 수 있습니다. GlassFish 이 자습서에 포함된 Dockerfile과 함께 애플리케이션 소스 코드를 제공합니다. Elastic Beanstalk는 애플리케이션과 소프트웨어 스택을 포함하는 Docker 이미지를 구축합니다. GlassFish 그런 다음 Elastic Beanstalk가 사용자 환경 인스턴스에서 이미지를 실행합니다.

이 접근 방식의 문제점은 Elastic Beanstalk가 사용자 환경에 대한 인스턴스를 생성할 때마다 도커 이미지를 로컬로 빌드하는 것입니다. 이미지를 빌드하면 인스턴스 프로비저닝 시간이 늘어납니다. 이러한 영향은 초기 환경 생성에만 국한되지 않고 스케일 아웃 작업 중에도 발생합니다.

예제 애플리케이션이 있는 환경을 시작하려면 GlassFish
  1. 예제 docker-glassfish-al2-v1.zip을 다운로드한 다음 개발 환경의 디렉터리로 .zip 파일을 확장합니다.

    ~$ curl https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/samples/docker-glassfish-al2-v1.zip --output docker-glassfish-al2-v1.zip ~$ mkdir glassfish-example ~$ cd glassfish-example ~/glassfish-example$ unzip ../docker-glassfish-al2-v1.zip

    디렉터리 구조는 다음과 같아야 합니다.

    ~/glassfish-example |-- Dockerfile |-- Dockerrun.aws.json |-- glassfish-start.sh |-- index.jsp |-- META-INF | |-- LICENSE.txt | |-- MANIFEST.MF | `-- NOTICE.txt |-- robots.txt `-- WEB-INF `-- web.xml

    다음 파일은 사용자 환경에서 Docker 컨테이너를 빌드하고 실행하는 데 중요합니다.

    • Dockerfile – Docker가 애플리케이션 및 필수 종속성을 사용하여 이미지를 빌드하는 데 사용하는 지침을 제공합니다.

    • glassfish-start.sh – 도커 이미지가 애플리케이션을 시작하기 위해 실행되는 쉘 스크립트입니다.

    • Dockerrun.aws.json— GlassFish 애플리케이션 서버 로그인을 로그 파일 요청에 포함시키는 로깅 키를 제공합니다. GlassFish 로그에 관심이 없는 경우 이 파일을 생략해도 됩니다.

  2. Elastic Beanstalk에 배포할 로컬 디렉터리를 구성합니다.

    ~/glassfish-example$ eb init -p docker glassfish-example
  3. (선택 사항) eb local run 명령을 사용하여 컨테이너를 로컬로 빌드 및 실행합니다.

    ~/glassfish-example$ eb local run --port 8080
    참고

    eb local 명령에 대한 자세한 내용은 eb local 단원을 참조하십시오. 이 명령은 Windows에서 지원되지 않습니다. 또는 docker builddocker run 명령으로 컨테이너를 빌드 및 실행할 수도 있습니다. 자세한 내용은 도커 설명서를 참조하십시오.

  4. (선택 사항) 컨테이너 실행 중에는 eb local open 명령을 사용하여 웹 브라우저에서 애플리케이션을 봅니다. 또는 웹 브라우저에서 http://localhost:8080/을(를) 엽니다.

    ~/glassfish-example$ eb local open
  5. eb create 명령을 사용하여 환경을 생성하고 애플리케이션을 배포합니다.

    ~/glassfish-example$ eb create glassfish-example-env
  6. 사용자 환경이 시작된 후 eb open 명령을 사용하여 웹 브라우저에서 봅니다.

    ~/glassfish-example$ eb open

예제 작업이 완료되면 환경을 종료하고 관련 리소스를 삭제합니다.

~/glassfish-example$ eb terminate --all

고급 예제: 미리 빌드된 도커 이미지 제공

이는 애플리케이션을 배포하는 고급 방법입니다. GlassFish 첫 번째 예제를 기반으로 애플리케이션 코드와 GlassFish 소프트웨어 스택이 포함된 Docker 이미지를 만든 다음 Docker Hub로 푸시합니다. 이 일회성 단계가 완료된 후 사용자 지정 이미지를 기반으로 Elastic Beanstalk 환경을 시작할 수 있습니다.

사용자 환경을 시작하고 도커 이미지를 제공하면 사용자 환경의 인스턴스가 이 이미지를 직접 다운로드하여 사용하므로 도커 이미지를 빌드할 필요가 없습니다. 따라서 인스턴스 프로비저닝 시간이 단축됩니다.

참고
  • 다음 단계를 따라 공개 사용이 가능한 도커 이미지를 생성합니다.

  • 도커 허브 자격 증명과 함께 로컬 도커 설치에서 도커 명령을 사용합니다. 자세한 내용은 이 항목의 이전 사전 요구 사항 섹션을 참조하십시오.

사전 GlassFish 빌드된 애플리케이션 Docker 이미지가 있는 환경을 시작하려면
  1. 앞의 단순 예제와 같이 예제 docker-glassfish-al2-v1.zip을 다운로드하고 확장합니다. 이 예제를 완료한 경우 이미 가지고 있는 디렉터리를 사용할 수 있습니다.

  2. 도커 이미지를 빌드하고 Docker Hub로 푸시합니다. 다음 항목에 대한 Docker ID를 입력하십시오.docker-id 도커 허브에 로그인하려면

    ~/glassfish-example$ docker build -t docker-id/beanstalk-glassfish-example:latest . ~/glassfish-example$ docker push docker-id/beanstalk-glassfish-example:latest
    참고

    이미지 푸시 전에 docker login을 실행해야 할 수 있습니다. 파라미터없이 명령을 실행하면 Docker Hub 자격 증명을 묻는 메시지가 표시됩니다.

  3. 추가 디렉터리를 생성합니다.

    ~$ mkdir glassfish-prebuilt ~$ cd glassfish-prebuilt
  4. 다음 예제를 Dockerrun.aws.json이라는 파일에 복사합니다.

    ~/glassfish-prebuilt/Dockerrun.aws.json
    { "AWSEBDockerrunVersion": "1", "Image": { "Name": "docker-username/beanstalk-glassfish-example" }, "Ports": [ { "ContainerPort": 8080, "HostPort": 8080 } ], "Logging": "/usr/local/glassfish5/glassfish/domains/domain1/logs" }
  5. Elastic Beanstalk에 배포할 로컬 디렉터리를 구성합니다.

    ~/glassfish-prebuilt$ eb init -p docker glassfish-prebuilt$
  6. (선택 사항) eb local run 명령을 사용하여 컨테이너를 로컬로 실행합니다.

    ~/glassfish-prebuilt$ eb local run --port 8080
  7. (선택 사항) 컨테이너 실행 중에는 eb local open 명령을 사용하여 웹 브라우저에서 애플리케이션을 봅니다. 또는 웹 브라우저에서 http://localhost:8080/을(를) 엽니다.

    ~/glassfish-prebuilt$ eb local open
  8. eb create 명령을 사용하여 환경을 생성하고 도커 이미지를 배포합니다.

    ~/glassfish-prebuilt$ eb create glassfish-prebuilt-env
  9. 사용자 환경이 시작된 후 eb open 명령을 사용하여 웹 브라우저에서 봅니다.

    ~/glassfish-prebuilt$ eb open

예제 작업이 완료되면 환경을 종료하고 관련 리소스를 삭제합니다.

~/glassfish-prebuilt$ eb terminate --all