

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

# Buildfile 및 Procfile
<a name="platforms-linux-extend.build-proc"></a>

일부 플랫폼에서는 애플리케이션을 빌드하거나 준비하는 방법을 사용자 지정하고 애플리케이션을 실행하는 프로세스를 지정할 수 있습니다. 각 개별 플랫폼 주제에서는 플랫폼에서 지원하는 경우 *Buildfile* 및/또는 *Procfile*에 대해 구체적으로 설명되어 있습니다. [Elastic Beanstalk 플랫폼](concepts-all-platforms.md)에서 특정 플랫폼을 찾습니다.

모든 지원 플랫폼에서 구문 및 의미는 동일하며 이 페이지의 설명과 같습니다. 애플리케이션을 해당 언어로 빌드하여 실행하기 위한 이러한 파일의 구체적인 사용법은 개별 플랫폼 항목에 나와 있습니다.

## Buildfile
<a name="platforms-linux-extend.build"></a>

애플리케이션에 대한 사용자 지정 빌드 및 구성 명령을 지정하려면 애플리케이션 소스의 루트 디렉터리에 `Buildfile`이라는 파일을 배치합니다. 파일 이름은 대/소문자를 구분합니다. `Buildfile`에 대해 다음 구문을 사용합니다.

```
<process_name>: <command>
```

`Buildfile`의 명령은 `^[A-Za-z0-9_-]+:\s*[^\s].*$` 정규식과 일치해야 합니다.

Elastic Beanstalk는 `Buildfile`을 통해 실행되는 애플리케이션을 모니터링하지 않습니다. 단기간 실행되고 작업 완료 후 종료되는 명령에는 `Buildfile`을 사용합니다. 종료하면 안 되는 장기 실행 애플리케이션 프로세스의 경우 [Procfile](#platforms-linux-extend.proc)을 사용합니다.

`Buildfile`의 모든 경로는 소스 번들의 루트에 상대적입니다. 다음 `Buildfile` 예제에서 `build.sh`는 소스 번들의 루트에 위치한 셸 스크립트입니다.

**Example Buildfile**  

```
make: ./build.sh
```

사용자 지정 빌드 단계를 제공하려는 경우 가장 간단한 명령 이외의 작업에는 `Buildfile` 대신 `predeploy` 플랫폼 후크를 사용하는 것이 좋습니다. 플랫폼 후크는 다양한 스크립트와 더 향상된 오류 처리를 허용합니다. 플랫폼 후크는 다음 섹션에서 설명합니다.

## Procfile
<a name="platforms-linux-extend.proc"></a>

애플리케이션을 시작하고 실행하기 위한 사용자 지정 명령을 지정하려면 애플리케이션 소스의 루트 디렉터리에 `Procfile`이라는 파일을 배치합니다. 파일 이름은 대/소문자를 구분합니다. `Procfile`에 대해 다음 구문을 사용합니다. 하나 이상의 명령을 지정할 수 있습니다.

```
<process_name1>: <command1>
<process_name2>: <command2>
...
```

`Procfile`의 각 줄은 `^[A-Za-z0-9_-]+:\s*[^\s].*$` 정규식과 일치해야 합니다.

종료하면 안 되는 장기 실행 애플리케이션 프로세스의 경우 `Procfile`을 사용합니다. Elastic Beanstalk는 프로세스가 `Procfile`에서 계속 실행될 것으로 기대합니다. Elastic Beanstalk는 이러한 프로세스를 모니터링하고 종료되는 프로세스를 다시 시작합니다. 단기 실행 프로세스의 경우 [Buildfile](#platforms-linux-extend.build)을 사용합니다.

`Procfile`의 모든 경로는 소스 번들의 루트에 상대적입니다. 다음 예제 `Procfile`은 세 가지 프로세스를 정의합니다. 예제의 첫 줄에 있는 `web`은 *기본 웹 애플리케이션*입니다.

**Example Procfile**  

```
web: bin/myserver
cache: bin/mycache
foo: bin/fooapp
```

Elastic Beanstalk는 포트 5000의 주 웹 애플리케이션에 요청을 전달하도록 프록시 서버를 구성하며 이 포트 번호를 구성할 수 있습니다. `Procfile`의 일반적인 용도는 이 포트 번호를 애플리케이션에 명령 인수로 전달하는 것입니다. 프록시 구성에 대한 자세한 내용은 [역방향 프록시 구성](platforms-linux-extend.proxy.md) 단원을 참조하세요.

Elastic Beanstalk는 로그 파일의 `Procfile` 프로세스에서 표준 출력 및 오류 스트림을 캡처합니다. Elastic Beanstalk는 프로세스의 이름을 따서 로그 파일의 이름을 지정하고 `/var/log`에 저장합니다 예를 들어 앞의 예제에서 `web` 프로세스는 `web-1.log` 및 `web-1.error.log`에 대해 각각 `stdout` 및 `stderr`라는 로그를 생성합니다.