

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

# 플랫폼 후크
<a name="platforms-linux-extend.hooks"></a>

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

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

## 애플리케이션 배포 플랫폼 후크
<a name="platforms-linux-extend.hooks.appdeploy"></a>

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

애플리케이션 배포 중에 실행되는 플랫폼 후크를 제공하려면 소스 번들의 `.platform/hooks` 디렉터리 아래에 있는 다음 하위 디렉터리 중 하나에 파일을 배치합니다.
+ `prebuild` - 파일은 Elastic Beanstalk 플랫폼 엔진이 애플리케이션 소스 번들을 다운로드하고 추출한 후 애플리케이션과 웹 서버를 설정하고 구성하기 전에 실행됩니다.

  `prebuild` 파일은 구성 파일의 [commands](customize-containers-ec2.md#linux-commands) 섹션에 있는 명령을 실행한 후 `Buildfile` 명령을 실행하기 전에 실행됩니다.
+ `predeploy` - 파일은 Elastic Beanstalk 플랫폼 엔진이 애플리케이션 및 웹 서버를 설정하고 구성한 후 최종 런타임 위치에 배포하기 전에 실행됩니다.

  `predeploy` 파일은 구성 파일의 [container\_commands](customize-containers-ec2.md#linux-container-commands) 섹션에 있는 명령을 실행한 후 `Procfile` 명령을 실행하기 전에 실행됩니다.
+ `postdeploy` - 파일은 Elastic Beanstalk 플랫폼 엔진이 애플리케이션 및 프록시 서버를 배포한 후에 실행됩니다.

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

## 구성 배포 플랫폼 후크
<a name="platforms-linux-extend.hooks.configdeploy"></a>

*구성 배포*는 환경 인스턴스를 다시 만들지 않고 단지 업데이트하는 구성 변경을 수행할 때 발생합니다. 다음 옵션 업데이트 시 구성 업데이트가 이루어집니다.
+ [환경 속성 및 플랫폼별 설정](environments-cfg-softwaresettings.md)
+ [정적 파일](environment-cfg-staticfiles.md)
+ [AWS X-Ray 데몬](environment-configuration-debugging.md)
+ [로그 저장 및 스트리밍](environments-cfg-logging.md)
+ 애플리케이션 포트(자세한 내용은 [역방향 프록시 구성](platforms-linux-extend.proxy.md) 참조)

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

## 플랫폼 후크에 대한 자세한 정보
<a name="platforms-linux-extend.hooks.more"></a>

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

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

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

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

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