기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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.log
및 web-1.error.log
에 대해 각각 stdout
및 stderr
라는 로그를 생성합니다.