.ebextensions를 사용해 AWS Elastic Beanstalk 환경을 사용자 지정하려고 합니다.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.
.ebextensions 디렉토리 설정
다음 단계를 완료하세요.
- 애플리케이션 번들의 루트에 .ebextensions로 명명된 숨겨진 디렉토리를 생성하세요.
- 구성 파일을 이 디렉토리에 저장하세요. 애플리케이션 소스 번들은 다음의 예시와 유사합니다.
~/workspace/my-application/
|-- .ebextensions
| |-- 01-server-configuration.config
| `-- 02-asg-healthcheck.config
|-- index.php
`-- styles.css
참고: Elastic Beanstalk는 .ebextensions 디렉토리의 구성 파일을 알파벳 순서로 처리합니다. 파일 이름에서 넘버링된 접두사를 사용하여 구성 순서를 제어하세요.
Elastic Beanstalk 환경 사용자 지정
환경 구성을 수정하려면 option_settings 키를 사용하세요.
Elastic Beanstalk 콘솔 또는 Elastic Beanstalk Command Line Interface(EB CLI)를 사용하여 환경을 생성하거나 업데이트하는 경우, 해당 클라이언트는 권장 값을 적용합니다. 권장 값은 API 수준에서 설정되며 우선 순위가 가장 높습니다. option_settings를 사용해 구성 설정을 변경할 수 없습니다.
우선 순위 규칙을 사용하면 option_settings 수정 사항이 환경 구성에 적용되는 것을 방지할 수 있습니다. 환경이 생성되는 동안 Elastic Beanstalk가 환경에 직접 적용되는 설정을 제거하려면 UpdateEnvironment Elastic Beanstalk API 운영을 사용하세요. 또는 다음의 update-environment AWS CLI 명령을 사용할 수 있습니다.
aws elasticbeanstalk update-environment --application-name applicationname --environment-name environmentnamename --options-to-remove Namespace=aws:elasticbeanstalk:application:environment,OptionName==yourpropertyname
참고: applicationname을 사용자의 애플리케이션 이름으로, environmentname을 사용자의 환경 이름으로, yourpropertyname을 사용자의 속성 이름으로 바꾸세요.
option_settings를 사용하여 구성을 변경할 수 없는 경우 리소스 키를 사용하여 Elastic Beanstalk 환경에서 리소스를 사용자 지정하세요.
Elastic Beanstalk는 구성 파일에 정의된 리소스를 환경을 시작하는 데 사용되는 AWS CloudFormation 템플릿에 추가합니다. CloudFormation 템플릿은 모든 CloudFormation 리소스 유형을 지원합니다. 논리적인 리소스 이름에 관한 자세한 내용은 Elastic Beanstalk로 환경에 생성한 리소스 수정을 참고하세요.
구성 파일은 파일 확장자가 .config여야 하며 YAML 또는 JSON 형식을 사용해야 합니다.
구성 파일에서 YAML 형식을 사용하는 경우 일정한 들여쓰기 칸을 사용해야 합니다. 들여쓰기가 잘못되면 배포에 실패할 수 있습니다.
키를 사용해 Linux나 Windows 서버에 있는 소프트웨어를 사용자 지정하세요. 각 구성 파일에서 각 키를 한 번만 사용하세요.
Amazon Linux 2 및 Amazon Linux 2023을 기반으로 하는 플랫폼의 경우, 인스턴스를 프로비저닝하는 동안 Buildfile, Procfile 및 플랫폼 후크를 사용하여 사용자 지정 코드를 실행하는 것이 가장 좋습니다. 구성 파일에서 commands 및 container_commands을 계속 사용할 수 있습니다. 자세한 내용은 플랫폼 후크를 사용해 Elastic Beanstalk 환경을 사용자 지정하려면 어떻게 해야 하나요?를 참조하세요.
애플리케이션을 Elastic Beanstalk에 배포할 때 .ebextensions 구성 파일을 사용하여 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 사용자 지정하세요. 구성 파일 예시의 경우, GitHub 웹사이트의 elastic-beanstalk-samples을 참조하세요.
.ebextensions를 사용하여 사용자 환경에 맞게 HTTPS를 구성하려면, Elastic Beanstalk 환경을 위한 HTTPS 구성을 참조하세요.
사용자 지정 설정을 애플리케이션에 적용
구성 파일이 포함된 애플리케이션 소스 번들을 생성한 다음 업데이트된 애플리케이션을 배포하세요.
참고: ZIP 파일을 만들 때 파일 보관 도구에 숨겨진 디렉토리가 포함되지 않을 수 있습니다. .ebextensions처럼 마침표로 시작하는 폴더는 파일 브라우저에서 숨겨질 수 있습니다. 애플리케이션 소스 번들을 생성할 때 애플리케이션 번들 루트에 .ebextensions 폴더를 포함하세요.
.ebextensions 구성 문제 해결
배포 후 Elastic Beanstalk에서 .ebextensions 구성을 적용하지 않는 경우 다음의 조치를 취하세요.
디렉토리 위치 및 파일 확장명을 확인하세요.
Elastic Beanstalk 콘솔에서 최근 환경 이벤트를 확인하세요. Elastic Beanstalk의 배포 및 구성 메시지가 이벤트 페이지에 표시됩니다. 소스 번들의 루트에서 .ebextensions 디렉토리를 구성했는지, 구성 파일에서 .config 파일 확장자를 사용하는지 확인하세요.
배포 로그 검토
Amazon EC2 인스턴스에 연결하고 구성 파일과 관련된 오류, 시작 실패 또는 배포 문제가 있는지 /var/log/eb-engine.log를 확인하세요. 또한 배포 결과를 확인하려면 /var/log/cfn-init.log 및 /var/log/cfn-init-cmd.log를 확인하세요.
배포 로그를 검토하려면 콘솔에서 배포 로그 보기를 참조하세요.
로그를 검색하려면 Elastic Beanstalk 환경의 Amazon EC2 인스턴스에서 로그 보기에서 인스턴스 로그 검색하기를 참조하세요.
최근 구성 변경 실행 취소
.ebextensions 구성 변경으로 배포 실패가 발생한 경우, 애플리케이션 버전을 재배포하세요.
관련 정보
Elastic Beanstalk 환경 문제 해결