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

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

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

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

Procfile 작성 및 사용법에 대한 자세한 내용을 보려면 Elastic Beanstalk Linux 플랫폼 확장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 환경에서 Amazon Linux AMI 플랫폼 버전(이전 Amazon Linux 2)을 사용하는 경우 이 단원의 추가 정보를 읽어 보십시오.

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

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

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

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

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