Buildfile 및 Procfile - AWS Elastic Beanstalk

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

Buildfile 및 Procfile

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

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

Buildfile

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

<process_name>: <command>

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

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

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

예 Buildfile
make: ./build.sh

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

Procfile

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

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

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

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

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

예 Procfile
web: bin/myserver cache: bin/mycache foo: bin/fooapp

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

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