Elastic Beanstalk Linux 플랫폼 확장 - AWS Elastic Beanstalk

Elastic Beanstalk Linux 플랫폼 확장

AWS Elastic Beanstalk Linux 플랫폼은 애플리케이션 개발 및 실행을 지원하기 위해 다양한 기능을 기본적으로 제공합니다. 필요한 경우 여러 가지 방법으로 플랫폼을 확장하여 옵션을 구성하고, 소프트웨어를 설치하고, 파일 및 시작 명령을 추가하고, 빌드 및 런타임 지침을 제공하고, 환경의 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 대한 다양한 프로비저닝 단계에서 실행되는 초기화 스크립트를 추가할 수 있습니다.

일부 플랫폼에서는 애플리케이션을 빌드하거나 준비하는 방법을 사용자 지정하고 애플리케이션을 실행하는 프로세스를 지정할 수 있습니다. 각 개별 플랫폼 주제에서는 플랫폼에서 지원하는 경우 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라는 로그를 생성합니다.

플랫폼 후크는 환경의 플랫폼을 확장하도록 특별히 설계되었습니다. 플랫폼 후크는 애플리케이션 소스 코드의 일부로 배포되는 사용자 지정 스크립트 및 기타 실행 파일로서 다양한 인스턴스 프로비저닝 단계에서 Elastic Beanstalk에 의해 실행됩니다.

참고

Amazon Linux AMI 플랫폼 버전(이전 Amazon Linux 2)에서는 플랫폼 후크가 지원되지 않습니다.

애플리케이션 배포 플랫폼 후크

애플리케이션 배포는 배포할 새 소스 번들을 제공하거나 모든 환경 인스턴스를 종료하고 재생성해야 하는 구성 변경을 수행할 때 발생합니다.

애플리케이션 배포 중에 실행되는 플랫폼 후크를 제공하려면 소스 번들의 .platform/hooks 디렉터리 아래에 있는 다음 하위 디렉터리 중 하나에 파일을 배치합니다.

  • prebuild - 파일은 Elastic Beanstalk 플랫폼 엔진이 애플리케이션 소스 번들을 다운로드하고 추출한 후 애플리케이션과 웹 서버를 설정하고 구성하기 전에 실행됩니다.

    prebuild 파일은 구성 파일의 commands 섹션에 있는 명령을 실행한 후 Buildfile 명령을 실행하기 전에 실행됩니다.

  • predeploy - 파일은 Elastic Beanstalk 플랫폼 엔진이 애플리케이션 및 웹 서버를 설정하고 구성한 후 최종 런타임 위치에 배포하기 전에 실행됩니다.

    predeploy 파일은 구성 파일의 container_commands 섹션에 있는 명령을 실행한 후 Procfile 명령을 실행하기 전에 실행됩니다.

  • postdeploy - 파일은 Elastic Beanstalk 플랫폼 엔진이 애플리케이션 및 프록시 서버를 배포한 후에 실행됩니다.

    이것이 마지막 배포 워크플로우 단계입니다.

구성 배포 플랫폼 후크

구성 배포는 환경 인스턴스를 다시 만들지 않고 단지 업데이트하는 구성 변경을 수행할 때 발생합니다. 다음 옵션 업데이트 시 구성 업데이트가 이루어집니다.

구성 배포 중에 실행되는 후크를 제공하려면 소스 번들의 .platform/confighooks 디렉터리 아래에 후크를 배치합니다. 애플리케이션 배포 후크의 경우와 동일한 세 개의 하위 디렉터리가 적용됩니다.

플랫폼 후크에 대한 자세한 정보

후크 파일은 이진 파일 또는 해당 인터프리터 경로를 포함하는 #! 줄(#!/bin/bash)로 시작하는 스크립트 파일일 수 있습니다. 모든 파일에 실행 권한이 있어야 합니다. 후크 파일에 대한 실행 권한을 설정하려면 chmod +x를 사용합니다. 2022년 4월 29일 이후에 릴리스된 모든 Amazon Linux 2 기반 플랫폼 버전의 경우 Elastic Beanstalk가 모든 플랫폼 후크 스크립트에 실행 권한을 자동으로 부여합니다. 이 경우 실행 권한을 수동으로 부여할 필요가 없습니다. 이러한 플랫폼 버전 목록은 AWS Elastic Beanstalk 릴리스 정보 가이드2022년 4월 29일 Linux 릴리스 정보를 참조하세요.

Elastic Beanstalk는 파일 이름의 사전 순서에 따라 각 디렉터리의 파일을 실행합니다. 모든 파일은 root 사용자로 실행됩니다. 플랫폼 후크의 현재 작업 디렉터리(cwd)는 애플리케이션의 루트 디렉터리입니다. prebuildpredeploy 파일의 경우 애플리케이션 스테이징 디렉터리이고 postdeploy 파일의 경우 현재 애플리케이션 디렉터리입니다. 파일 중 하나가 실패하면(0이 아닌 종료 코드로 종료) 배포가 중단되고 실패합니다.

Windows 캐리지 리턴/줄 바꿈(CRLF) 줄 바꿈 문자가 포함된 경우 플랫폼 후크 텍스트 스크립트가 실패할 수 있습니다. 파일이 Windows 호스트에 저장된 후 Linux 서버로 전송된 경우 파일에 Windows CRLF 줄 바꿈이 포함될 수 있습니다. 2022년 12월 29일 이후에 릴리스된 플랫폼의 경우 Elastic Beanstalk는 플랫폼 후크 텍스트 파일에서 Windows CRLF 문자를 Linux 줄 바꿈(LF) 줄 바꿈 문자로 자동 변환합니다. 애플리케이션이 이 날짜 이전에 릴리스된 Amazon Linux 2 플랫폼에서 실행되는 경우 Windows CRLF 문자를 Linux LF 문자로 변환해야 합니다. 이 작업을 수행하는 한 가지 방법은 스크립트 파일을 만들어 Linux 호스트에 저장하는 것입니다. 이러한 문자를 변환하는 도구는 인터넷에서도 찾아볼 수 있습니다.

후크 파일은 애플리케이션 옵션에서 정의한 모든 환경 속성 및 시스템 환경 변수 HOME, PATHPORT에 액세스할 수 있습니다.

환경 변수 및 기타 구성 옵션의 값을 플랫폼 후크 스크립트로 가져오려는 경우 환경 인스턴스에서 Elastic Beanstalk가 제공하는 get-config 유틸리티를 사용할 수 있습니다. 자세한 내용은 플랫폼 스크립트 도구 단원을 참조하십시오.

애플리케이션 소스 코드의 .ebextensions 디렉터리에 구성 파일을 추가하여 Elastic Beanstalk 환경의 다양한 측면을 구성할 수 있습니다. 구성 파일을 사용하면 환경 인스턴스에서 소프트웨어 및 기타 파일을 사용자 지정하고 인스턴스에서 초기화 명령을 실행할 수 있습니다. 자세한 내용은 Linux 서버에서 소프트웨어 사용자 지정을(를) 참조하세요.

구성 파일을 사용하여 구성 옵션을 설정할 수도 있습니다. 플랫폼 동작을 제어하는 옵션에는 여러 가지가 있으며 이러한 옵션 중 일부는 플랫폼에 따라 다릅니다.

Amazon Linux 2 플랫폼에서는 Buildfile, Procfile플랫폼 후크를 사용하여 인스턴스 프로비저닝 중에 환경 인스턴스에서 사용자 지정 코드를 구성하고 실행하는 것이 좋습니다. 이러한 메커니즘은 이 페이지의 이전 섹션에 설명되어 있습니다. .ebextensions 구성 파일에서 명령과 컨테이너 명령을 계속 사용할 수 있지만 작업하기가 쉽지 않습니다. 예를 들어, YAML 파일 내에 명령 스크립트를 작성하는 것은 구문 관점에서 어려울 수 있습니다. AWS CloudFormation 리소스에 대한 참조가 필요한 스크립트에 대해서는 .ebextensions 구성 파일을 사용해야 합니다.

모든 Amazon Linux 2 플랫폼 버전은 nginx를 기본 역방향 프록시 서버로 사용합니다. Tomcat, Node.js, PHP 및 Python 플랫폼은 Apache HTTPD도 대안으로 지원합니다. 이러한 플랫폼에서 Apache를 선택하려면 aws:elasticbeanstalk:environment:proxy 네임스페이스의 ProxyServer 옵션을 apache로 설정합니다. 모든 플랫폼에서는 이 단원에 설명된 것처럼 일관된 방식으로 프록시 서버를 구성할 수 있습니다.

참고

Amazon Linux AMI 플랫폼 버전(이전 Amazon Linux 2)에서는 프록시 서버를 다르게 구성해야 할 수 있습니다. 레거시 세부 정보는 이 가이드의 해당 플랫폼 항목에서 확인할 수 있습니다.

Elastic Beanstalk는 환경의 루트 URL(예: http://my-env.elasticbeanstalk.com)에 있는 기본 웹 애플리케이션으로 웹 트래픽을 전달하도록 환경 인스턴스에서 프록시 서버를 구성합니다.

기본적으로 Elastic Beanstalk는 포트 80에서 수신되는 요청을 포트 5000의 기본 웹 애플리케이션에 전달하도록 프록시를 구성합니다. 다음 예제와 같이 구성 파일에서 aws:elasticbeanstalk:application:environment 네임스페이스를 사용하는 PORT 환경 속성을 설정하여 이 포트 번호를 구성할 수 있습니다.

option_settings: - namespace: aws:elasticbeanstalk:application:environment option_name: PORT value: <main_port_number>

애플리케이션의 환경 변수 설정에 대한 자세한 내용은 옵션 설정을 참조하십시오.

애플리케이션은 프록시에 구성된 포트에서 수신 대기해야 합니다. PORT 환경 속성을 사용하여 기본 포트를 변경하면 코드에서 PORT 환경 변수의 값을 읽어 해당 포트에 액세스할 수 있습니다. 예를 들어 Go에서 os.Getenv("PORT")를 호출하거나 Java에서 System.getenv("PORT")를 호출합니다. 여러 애플리케이션 프로세스로 트래픽을 보내도록 프록시를 구성하는 경우 여러 환경 속성을 구성하고 프록시 구성 및 애플리케이션 코드 모두에서 해당 값을 사용할 수 있습니다. 또 다른 옵션은 포트 값을 Procfile의 명령 인수로 프로세스에 전달하는 것입니다. 자세한 내용은 이 페이지의 Buildfile 및 Buildfile 섹션을 확장하십시오.

nginx 구성

Elastic Beanstalk는 nginx를 기본 역방향 프록시로 사용하여 애플리케이션을 Elastic Load Balancing 로드 밸런서에 매핑합니다. Elastic Beanstalk는 확장하거나 자체 구성으로 완전히 재정의할 수 있는 기본 nginx 구성을 제공합니다.

참고

nginx .conf 구성 파일을 추가하거나 편집할 때는 UTF-8로 인코딩해야 합니다.

Elastic Beanstalk의 기본 nginx 구성을 확장하려면 애플리케이션 소스 번들의 .platform/nginx/conf.d/라는 폴더에 .conf 구성 파일을 추가합니다. Elastic Beanstalk nginx 구성에는 이 폴더의 .conf 파일이 자동으로 포함됩니다.

~/workspace/my-app/ |-- .platform | `-- nginx | `-- conf.d | `-- myconf.conf `-- other source files

Elastic Beanstalk의 기본 nginx 구성을 완전히 재정의하려면 .platform/nginx/nginx.conf의 소스 번들에 구성을 포함시킵니다.

~/workspace/my-app/ |-- .platform | `-- nginx | `-- nginx.conf `-- other source files

Elastic Beanstalk의 nginx 구성을 재정의하는 경우 nginx.conf에 다음 줄을 추가하여 향상된 상태 보고 및 모니터링, 자동 애플리케이션 매핑 및 정적 파일에 대한 Elastic Beanstalk 구성을 가져옵니다.

include conf.d/elasticbeanstalk/*.conf;

Apache HTTPD 설정

Tomcat, Node.js, PHP, Python 플랫폼에서는 nginx에 대한 대안으로 Apache HTTPD 프록시 서버를 선택할 수 있습니다. 이는 기본값이 아닙니다. 다음 예제는 Apache HTTPD를 사용하도록 Elastic Beanstalk를 구성합니다.

예 .ebextensions/httpd-proxy.config
option_settings: aws:elasticbeanstalk:environment:proxy: ProxyServer: apache

추가 구성 파일을 사용하여 Elastic Beanstalk 기본 Apache 구성을 확장할 수 있습니다. 또는 Elastic Beanstalk 기본 Apache 구성을 완전히 재정의할 수 있습니다.

Elastic Beanstalk의 기본 Apache 구성을 확장하려면 애플리케이션 소스 번들의 .conf라는 폴더에 .platform/httpd/conf.d 구성 파일을 추가합니다. Elastic Beanstalk의 Apache 구성에는 이 폴더의 .conf 파일이 자동으로 포함됩니다.

~/workspace/my-app/ |-- .ebextensions | -- httpd-proxy.config |-- .platform | -- httpd | -- conf.d | -- port5000.conf | -- ssl.conf -- index.jsp

예를 들어, 다음 Apache 2.4 구성은 포트 5000에 리스너를 추가합니다.

예 .platform/httpd/conf.d/port5000.conf
listen 5000 <VirtualHost *:5000> <Proxy *> Require all granted </Proxy> ProxyPass / http://localhost:8080/ retry=0 ProxyPassReverse / http://localhost:8080/ ProxyPreserveHost on ErrorLog /var/log/httpd/elasticbeanstalk-error_log </VirtualHost>

Elastic Beanstalk의 기본 Apache 구성을 완전히 재정의하려면 .platform/httpd/conf/httpd.conf의 소스 번들에 구성을 포함시킵니다.

~/workspace/my-app/ |-- .ebextensions | -- httpd-proxy.config |-- .platform | `-- httpd | `-- conf | `-- httpd.conf `-- index.jsp
참고

Elastic Beanstalk의 Apache 구성을 재정의하는 경우 httpd.conf에 다음 줄을 추가하여 향상된 상태 보고 및 모니터링, 자동 애플리케이션 매핑 및 정적 파일에 대한 Elastic Beanstalk 구성을 가져옵니다.

IncludeOptional conf.d/elasticbeanstalk/*.conf
참고

Elastic Beanstalk 애플리케이션을 Amazon Linux 2 플랫폼으로 마이그레이션하는 경우 Elastic Beanstalk Linux 애플리케이션을 Amazon Linux 2로 마이그레이션의 정보도 읽어보세요.

확장자가 있는 애플리케이션 예제

다음 예제에서는 Elastic Beanstalk Amazon Linux 2 플랫폼이 지원하는 여러 확장 기능이 있는 애플리케이션 소스 번들(Procfile, .ebextensions 구성 파일, 사용자 지정 후크 및 프록시 구성 파일)을 보여줍니다.

~/my-app/ |-- web.jar |-- Procfile |-- readme.md |-- .ebextensions/ | |-- options.config # Option settings | `-- cloudwatch.config # Other .ebextensions sections, for example files and container commands `-- .platform/ |-- nginx/ # Proxy configuration | |-- nginx.conf | `-- conf.d/ | `-- custom.conf |-- hooks/ # Application deployment hooks | |-- prebuild/ | | |-- 01_set_secrets.sh | | `-- 12_update_permissions.sh | |-- predeploy/ | | `-- 01_some_service_stop.sh | `-- postdeploy/ | |-- 01_set_tmp_file_permissions.sh | |-- 50_run_something_after_app_deployment.sh | `-- 99_some_service_start.sh `-- confighooks/ # Configuration deployment hooks |-- prebuild/ | `-- 01_set_secrets.sh |-- predeploy/ | `-- 01_some_service_stop.sh `-- postdeploy/ |-- 01_run_something_after_config_deployment.sh `-- 99_some_service_start.sh
참고

Amazon Linux AMI 플랫폼 버전(이전 Amazon Linux 2)에서는 이러한 확장 중 일부가 지원되지 않습니다.

인스턴스 배포 워크플로

참고

이 섹션의 정보는 Amazon Linux 2에서 실행되는 ECS 플랫폼 브랜치에 적용되지 않습니다. 자세한 내용은 다음 단원 Amazon Linux 2에서 실행되는 ECS의 인스턴스 배포 워크플로 단원을 참조하십시오.

여러 가지 방법으로 환경 플랫폼을 확장할 수 있으므로 Elastic Beanstalk가 인스턴스를 프로비저닝하거나 인스턴스에 대해 배포를 실행할 때마다 어떤 일이 발생하는지 알면 유용합니다. 다음 다이어그램은 이 전체 배포 워크플로우를 보여줍니다. 배포의 여러 단계와 각 단계에서 Elastic Beanstalk가 수행하는 단계가 나와 있습니다.

참고
  • 다이어그램은 배포 중에 환경 인스턴스에서 Elastic Beanstalk가 실행하는 전체 단계 세트를 나타내지 않습니다. 사용자 지정 실행을 위한 순서와 컨텍스트를 제공하기 위해 이 다이어그램을 제공합니다.

  • 간단하게 설명하기 위해 다이어그램에는 .platform/hooks/* 후크 하위 디렉터리(애플리케이션 배포용)만 표시되어 있고 .platform/confighooks/* 후크 하위 디렉터리(구성 배포용)는 표시되어 있지 않습니다. 후자의 하위 디렉터리의 후크는 다이어그램에 표시된 해당 하위 디렉터리의 후크와 정확히 동일한 단계에서 실행됩니다.


        Amazon Linux 2 플랫폼 버전을 사용하여 환경의 인스턴스에서 확장 실행 순서

다음 목록에서는 배포 단계에 대해 자세히 설명합니다.

  1. 초기 단계

    Elastic Beanstalk는 애플리케이션을 다운로드하고 추출합니다. 이러한 각 단계 후에는 Elastic Beanstalk가 확장성 단계 중 하나를 실행합니다.

    1. 구성 파일의 commands: 섹션에 있는 명령을 실행합니다.

    2. 소스 번들의 .platform/hooks/prebuild 디렉터리(구성 배포의 경우 .platform/confighooks/prebuild)에 있는 모든 실행 파일을 실행합니다.

  2. 구성

    Elastic Beanstalk는 애플리케이션과 프록시 서버를 구성합니다.

    1. 소스 번들의 Buildfile에 있는 명령을 실행합니다.

    2. 사용자 지정 프록시 구성 파일(소스 번들의 .platform/nginx 디렉터리에 있는 경우)을 런타임 위치로 복사합니다.

    3. 구성 파일의 container_commands: 섹션에 있는 명령을 실행합니다.

    4. 소스 번들의 .platform/hooks/predeploy 디렉터리(구성 배포의 경우 .platform/confighooks/predeploy)에 있는 모든 실행 파일을 실행합니다.

  3. 배포

    Elastic Beanstalk는 애플리케이션과 프록시 서버를 배포 및 실행합니다.

    1. 소스 번들의 Procfile 파일에 있는 명령을 실행합니다.

    2. 사용자 지정 프록시 구성 파일이 있는 경우 프록시 서버를 실행하거나 다시 실행합니다.

    3. 소스 번들의 .platform/hooks/postdeploy 디렉터리(구성 배포의 경우 .platform/confighooks/postdeploy)에 있는 모든 실행 파일을 실행합니다.

Amazon Linux 2에서 실행되는 ECS의 인스턴스 배포 워크플로

이전 섹션에서는 애플리케케이션 배포 워크플로의 단계에서 지원되는 확장성 기능에 대해 설명합니다. Docker 플랫폼 브랜치 Amazon Linux 2에서 실행되는 ECS에는 몇 가지 차이점이 있습니다. 이 섹션에서는 이러한 개념이 이 특정 플랫폼 브랜치에 어떻게 적용되는지 설명합니다.

여러 가지 방법으로 환경 플랫폼을 확장할 수 있으므로 Elastic Beanstalk가 인스턴스를 프로비저닝하거나 인스턴스에 대해 배포를 실행할 때마다 어떤 일이 발생하는지 알면 유용합니다. 다음 다이어그램은 Amazon Linux 2에서 실행되는 ECS 플랫폼 브랜치를 기반으로 한 환경에 대한 이 전체 배포 워크플로를 보여줍니다. 배포의 여러 단계와 각 단계에서 Elastic Beanstalk가 수행하는 단계가 나와 있습니다.

이전 섹션에서 설명한 워크플로와 달리 배포 구성 단계에서는 Buildfile 명령, Procfile 명령, 역방향 프록시 구성과 같은 확장성 기능을 지원하지 않습니다.

참고
  • 다이어그램은 배포 중에 환경 인스턴스에서 Elastic Beanstalk가 실행하는 전체 단계 세트를 나타내지 않습니다. 사용자 지정 실행을 위한 순서와 컨텍스트를 제공하기 위해 이 다이어그램을 제공합니다.

  • 간단하게 설명하기 위해 다이어그램에는 .platform/hooks/* 후크 하위 디렉터리(애플리케이션 배포용)만 표시되어 있고 .platform/confighooks/* 후크 하위 디렉터리(구성 배포용)는 표시되어 있지 않습니다. 후자의 하위 디렉터리의 후크는 다이어그램에 표시된 해당 하위 디렉터리의 후크와 정확히 동일한 단계에서 실행됩니다.


        플랫폼 브랜치 Amazon Linux 2에서 실행되는 ECS 버전에 대한 환경의 인스턴스 확장 실행 순서

다음 목록에서는 배포 워크플로 단계에 대해 자세히 설명합니다.

  1. EBhooksDirappdeploy/pre 디렉터리에 있는 모든 실행 파일을 실행합니다.

  2. 소스 번들의 .platform/hooks/prebuild 디렉터리(구성 배포의 경우 .platform/confighooks/prebuild)에 있는 모든 실행 파일을 실행합니다.

  3. 소스 번들의 .platform/hooks/predeploy 디렉터리(구성 배포의 경우 .platform/confighooks/predeploy)에 있는 모든 실행 파일을 실행합니다.

  4. EBhooksDirappdeploy/enact 디렉터리에 있는 모든 실행 파일을 실행합니다.

  5. EBhooksDirappdeploy/post 디렉터리에 있는 모든 실행 파일을 실행합니다.

  6. 소스 번들의 .platform/hooks/postdeploy 디렉터리(구성 배포의 경우 .platform/confighooks/postdeploy)에 있는 모든 실행 파일을 실행합니다.

EBhooksDir에 대한 참조는 플랫폼 후크 디렉터리의 경로를 나타냅니다. 디렉터리 경로 이름을 검색하려면 다음에 표시된 환경 인스턴스의 명령줄에 있는 get-config 스크립트 도구를 사용합니다.

$ /opt/elasticbeanstalk/bin/get-config platformconfig -k EBhooksDir