Procfile을 사용한 애플리케이션 프로세스 구성 - AWS Elastic Beanstalk

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

Procfile을 사용한 애플리케이션 프로세스 구성

애플리케이션 소스 번들의 루트에 둘 이상의 JAR 파일이 있는 경우, 실행할 Procfile 파일을 Elastic JAR Beanstalk에 알려주는 파일을 포함해야 합니다. 단일 JAR 애플리케이션용 Procfile 파일을 포함하여 애플리케이션을 실행하는 Java 가상 머신 (JVM) 을 구성할 수도 있습니다.

항상 Procfile을 애플리케이션과 함께 소스 번들로 제공하는 것이 좋습니다. 이를 통해 애플리케이션에 대해 Elastic Beanstalk가 실행하는 프로세스와 이러한 프로세스가 받는 인수를 정확하게 제어할 수 있습니다.

작성 및 사용에 대한 자세한 Procfile 내용은 을 참조하십시오Buildfile 및 Procfile.

예 Procfile
web: java -Xms256m -jar server.jar cache: java -jar mycache.jar web_foo: java -jar other.jar

JAR애플리케이션에서 메인을 실행하는 명령을 호출해야 하며web, 이 명령은 목록에 나열된 첫 번째 명령이어야 합니다Procfile. nginx 서버는 사용자 환경의 로드 밸런서에서 받는 HTTP 모든 요청을 이 애플리케이션으로 전달합니다.

Elastic Beanstalk는 Procfile의 모든 항목이 항상 실행되어야 함을 가정하며, 종료되는 Procfile에 정의된 모든 애플리케이션을 자동으로 다시 시작합니다. 종료될 예정으로 다시 시작되면 안 되는 명령을 실행하려면 Buildfile을 사용합니다.

Elastic Beanstalk Java SE 환경에서 아마존 리눅스 플랫폼 버전 (AMI아마존 리눅스 2 이전 버전) 을 사용하는 경우 이 섹션의 추가 정보를 읽어보십시오.

참고
  • 이 항목의 정보는 Amazon Linux AMI (AL1) 기반 플랫폼 브랜치에만 적용됩니다. AL2023/ AL2 플랫폼 브랜치는 이전 Amazon Linux AMI (AL1) 플랫폼 버전과 호환되지 않으며 다른 구성 설정이 필요합니다.

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

기본적으로 Elastic Beanstalk는 요청을 포트 5000의 애플리케이션에 전달하도록 nginx 프록시를 구성합니다. PORT 환경 속성을 기본 애플리케이션이 수신 대기하는 포트로 설정하여 기본 포트를 재정의할 수 있습니다.

Procfilea를 사용하여 여러 애플리케이션을 실행하는 경우 AMI Amazon Linux 플랫폼 버전의 Elastic Beanstalk에서는 각 추가 애플리케이션이 이전 포트보다 100 높은 포트에서 수신 대기할 것으로 예상합니다. Elastic Beanstalk는 각 애플리케이션 내에서 액세스할 수 있는 변수를 애플리케이션이 실행될 것으로 예상되는 포트로 PORT 설정합니다. System.getenv("PORT")를 호출하여 애플리케이션 코드 내의 이 변수에 액세스할 수 있습니다.

앞의 Procfile 예제에서 web 애플리케이션은 포트 5000에서 수신 대기하고, cache는 포트 5100에서 수신 대기하며, web_foo는 포트 5200에서 수신 대기합니다. webPORT 변수를 읽어 수신 대기 포트를 구성하며, 해당 숫자에 100을 추가하여 요청을 보낼 수 있도록 cache가 수신 대기하는 포트를 결정합니다.