환경 생성 이전에 구성 옵션 설정 - AWS Elastic Beanstalk

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

환경 생성 이전에 구성 옵션 설정

AWS Elastic Beanstalk에서는 환경의 리소스에 적용되는 설정을 수정할 수 있는 많은 수의 구성 옵션을 지원합니다. 이러한 옵션 중 여러 개에는 기본값이 있는데, 이러한 값은 환경을 사용자 지정하기 위해 재정의할 수 있습니다. 다른 옵션은 추가 기능을 활성화하도록 구성할 수 있습니다.

Elastic Beanstalk에서는 구성 옵션 설정을 저장하는 두 가지 방법을 지원합니다. YAML 또는 JSON 형식의 구성 파일은 .ebextensions 디렉터리의 애플리케이션 소스 코드에 포함할 수 있으며 애플리케이션 소스 번들의 일부로 배포할 수 있습니다. 구성 파일은 로컬에서 생성 및 관리할 수 있습니다.

저장된 구성은 실행 중인 환경 또는 JSON 옵션에서 생성할 수 있는 템플릿으로 Elastic Beanstalk에 저장됩니다. 또한 기존의 저장된 구성은 새 구성을 생성하여 확장할 수도 있습니다.

참고

구성 파일 및 저장된 구성에 정의된 설정보다 Elastic Beanstalk 콘솔 및 EB CLI에서 적용되는 권장 값을 비롯하여 환경을 생성하는 중 또는 이후에 구성된 설정이 우선합니다. 세부 정보는 우선 순위 단원을 참조하세요.

또한 EB CLI 또는 AWS CLI를 사용해 환경을 생성 또는 업데이트하는 경우 옵션을 JSON 문서에서 지정하여 Elastic Beanstalk에 바로 제공할 수도 있습니다. 이러한 방식으로 Elastic Beanstalk에 직접 제공되는 옵션은 기타 모든 방법을 재정의합니다.

사용 가능한 옵션의 전체 목록은 구성 옵션 단원을 참조하세요.

구성 파일(.ebextensions)

.ebextensions를 사용하여 애플리케이션을 작동하는 데 필요한 옵션을 구성하고 가장 높은 우선 순위에서 재정의할 수 있는 다른 옵션에 기본값을 제공합니다. .ebextensions에 지정된 옵션의 우선 순위가 가장 낮아 다른 모든 수준의 설정으로 재정의됩니다.

구성 파일을 사용하려면 프로젝트 소스 코드의 최상위 수준에서 .ebextensions 폴더를 만듭니다. 확장명이 .config인 파일을 추가하고 다음 방법으로 옵션을 지정합니다.

option_settings: - namespace: namespace option_name: option name value: option value - namespace: namespace option_name: option name value: option value

예를 들어 다음 구성 파일은 애플리케이션의 상태 확인 URL을 /health로 설정합니다.

healthcheckurl.config

option_settings: - namespace: aws:elasticbeanstalk:application option_name: Application Healthcheck URL value: /health

JSON은 다음과 같습니다.

{ "option_settings" : [ { "namespace" : "aws:elasticbeanstalk:application", "option_name" : "Application Healthcheck URL", "value" : "/health" } ] }

이 예제는 EC2 인스턴스가 정상 또는 비정상인지 확인하기 위해 각 EC2 인스턴스의 /health 경로에 대해 HTTP 요청을 생성하도록 Elastic Beanstalk 환경에서 Elastic Load Balancing 로드 밸런서를 구성합니다.

참고

YAML은 일정한 들여쓰기를 사용합니다. 예제 구성 파일의 콘텐츠를 바꿀 때 들여쓰기 레벨을 일치시키고, 텍스트 편집기가 탭 문자 대신 공백을 사용해 들여쓰기를 하도록 합니다.

애플리케이션 소스 번들.ebextensions 디렉터리를 포함하여 새로운 또는 Elastic Beanstalk 환경에 배포합니다.

구성 파일은 환경의 서버에서 실행되는 소프트웨어 및 파일을 사용자 지정하기 위해 option_settings 이외에 여러 섹션을 지원합니다. 자세한 내용은 .Ebextensions을(를) 참조하세요.

저장된 구성

저장된 구성을 생성하면 Elastic Beanstalk 콘솔, EB CLI 또는 AWS CLI를 사용하여 환경을 생성하는 중 또는 이후에 기존 환경에 적용한 설정을 저장할 수 있습니다. 저장된 구성은 애플리케이션에 속하며 해당 애플리케이션의 새로운 또는 기존 환경에 적용할 수 있습니다.

Elastic Beanstalk 콘솔

저장된 구성을 생성하려면(Elastic Beanstalk 콘솔)
  1. Elastic Beanstalk 콘솔을 연 다음 리전(Regions) 목록에서 해당 AWS 리전을 선택합니다.

  2. 탐색 창에서 환경을 선택한 다음 목록에서 환경 이름을 선택합니다.

    참고

    여러개의 환경을 보유한 경우 검색 창을 통해 환경 목록을 필터링합니다.

  3. 작업(Actions)을 선택한 후 구성 저장(Save configuration)을 선택합니다.

  4. 화면에 표시되는 대화 상자를 사용하여 작업을 완료합니다.

저장된 구성은 Elastic Beanstalk S3 버킷에서 애플리케이션을 따라 이름이 지정된 폴더에 저장됩니다. 예를 들어, 계정 번호 123456789012에 대한 us-west-2 리전 내 my-app 애플리케이션의 구성은 s3://elasticbeanstalk-us-west-2-123456789012/resources/templates/my-app에서 찾을 수 있습니다.

EB CLI

EB CLIeb config에서 저장된 구성과 상호 작용하기 위한 하위 명령을 제공합니다.

저장된 구성을 생성하려면(EB CLI)
  1. 연결된 환경의 현재 구성을 저장합니다.

    ~/project$ eb config save --cfg my-app-v1

    EB CLI는 구성을 ~/project/.elasticbeanstalk/saved_configs/my-app-v1.cfg.yml에 저장합니다.

  2. 필요한 경우 저장된 구성을 로컬에서 수정합니다.

  3. 저장된 구성을 S3로 업로드합니다.

    ~/project$ eb config put my-app-v1

AWS CLI

aws elasticbeanstalk create-configuration-template을 사용하여 실행 중인 환경에서 저장된 구성을 생성합니다.

저장된 구성 생성(AWS CLI)
  1. describe-environments를 사용하여 Elastic Beanstalk 환경의 환경 ID를 식별합니다.

    $ aws elasticbeanstalk describe-environments --environment-name my-env { "Environments": [ { "ApplicationName": "my-env", "EnvironmentName": "my-env", "VersionLabel": "89df", "Status": "Ready", "Description": "Environment created from the EB CLI using \"eb create\"", "EnvironmentId": "e-vcghmm2zwk", "EndpointURL": "awseb-e-v-AWSEBLoa-1JUM8159RA11M-43V6ZI1194.us-west-2.elb.amazonaws.com", "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.2 running Multi-container Docker 1.7.1 (Generic)", "CNAME": "my-env-nfptuqaper.elasticbeanstalk.com", "Health": "Green", "AbortableOperationInProgress": false, "Tier": { "Version": " ", "Type": "Standard", "Name": "WebServer" }, "HealthStatus": "Ok", "DateUpdated": "2015-10-01T00:24:04.045Z", "DateCreated": "2015-09-30T23:27:55.768Z" } ] }
  2. create-configuration-template을 사용하여 환경의 현재 구성을 저장합니다.

    $ aws elasticbeanstalk create-configuration-template --environment-id e-vcghmm2zwk --application-name my-app --template-name v1

Elastic Beanstalk는 구성을 Amazon S3의 Elastic Beanstalk 버킷에 저장합니다.

JSON 문서

AWS CLI를 사용하여 환경을 생성 및 업데이트하는 경우 구성 옵션을 JSON 형식으로 제공할 수도 있습니다. JSON으로 작성된 구성 파일 라이브러리는 AWS CLI를 사용하여 환경을 생성 및 관리하는 경우 유용합니다.

예를 들어 다음 JSON 문서는 애플리케이션의 상태 확인 URL을 /health로 설정합니다.

~/ebconfigs/healthcheckurl.json

[ { "Namespace": "aws:elasticbeanstalk:application", "OptionName": "Application Healthcheck URL", "Value": "/health" } ]

EB CLI 구성

eb config 명령을 통해 저장된 구성 및 직접 환경 구성을 지원하는 것 이외에도 EB CLI에는 default_ec2_keyname 옵션이 포함된 구성 파일이 있습니다. 이 옵션은 환경의 인스턴스에 대한 SSH 액세스에 필요한 Amazon EC2 키 페어를 지정하는 데 사용할 수 있습니다. EB CLI에서는 이 옵션을 사용하여 EC2KeyName 네임스페이스에서 aws:autoscaling:launchconfiguration 구성 옵션을 설정합니다.

~/workspace/my-app/.elasticbeanstalk/config.yml

branch-defaults: master: environment: my-env develop: environment: my-env-dev deploy: artifact: ROOT.war global: application_name: my-app default_ec2_keyname: my-keypair default_platform: Tomcat 8 Java 8 default_region: us-west-2 profile: null sc: git