

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

# Procfile을 사용한 애플리케이션 프로세스 구성
<a name="java-se-procfile"></a>

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

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

`Procfile` 작성 및 사용에 대한 자세한 내용은 [Buildfile 및 Procfile](platforms-linux-extend.build-proc.md) 단원을 참조하세요.

**Example 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`](java-se-buildfile.md)을 사용합니다.

## Amazon Linux AMI(이전 Amazon Linux 2)에서 Procfile 사용
<a name="java-se-procfile.alami"></a>

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

**참고**  
이 주제의 정보는 Amazon Linux AMI(AL1) 기반 플랫폼 브랜치에만 적용됩니다. AL2023/AL2 플랫폼 브랜치는 이전 Amazon Linux AMI(AL1) 플랫폼 버전과 호환되지 않으며 *다른 구성 설정이 필요*합니다.
 [2022년 7월 18일](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-07-18-linux-al1-retire.html), Elastic Beanstalk는 Amazon Linux AMI(AL1)에 기반한 모든 플랫폼 브랜치의 상태를 **사용 중지**로 설정했습니다. 완전 지원이 가능한 현재 Amazon Linux 2023 플랫폼 브랜치로 마이그레이션하는 방법에 대한 자세한 내용은 [Elastic Beanstalk Linux 애플리케이션을 Amazon Linux 2023 또는 Amazon Linux 2로 마이그레이션](using-features.migration-al.md)을(를) 참조하세요.

### 포트 전달 — Amazon Linux AMI(AL1)
<a name="java-se-procfile.alami.ports"></a>

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

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

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