환경 생성 후 구성 옵션 설정 - AWS Elastic Beanstalk

환경 생성 후 구성 옵션 설정

저장된 구성을 적용하거나, 구성 파일과 함께 새 소스 번들(.ebextensions)을 업로드하거나, JSON 문서를 사용하여 실행 중인 환경에서 옵션 설정을 수정할 수 있습니다. EB CLI 및 Elastic Beanstalk 콘솔에는 클라이언트별로 구성 옵션을 설정하고 업데이트하는 기능도 있습니다.

구성 옵션을 설정하거나 변경할 때 변경의 심각도에 따라 전체 환경 업데이트를 트리거할 수 있습니다. 예를 들어 aws:autoscaling:launchconfiguration에서 InstanceType과 같은 옵션을 변경하려면 환경의 Amazon EC2 인스턴스가 다시 프로비저닝되어야 합니다. 그러면 롤링 업데이트가 트리거됩니다. 다시 프로비저닝하거나 중단하지 않고도 다른 구성 변경을 적용할 수 있습니다.

EB CLI 또는 AWS CLI 명령으로 환경에서 옵션 설정을 제거할 수 있습니다. API 수준에서 환경에 직접 설정된 옵션을 제거하면 구성 파일의 설정이 적용됩니다. 이러한 구성 파일의 설정은 원래 해당 환경에 직접 적용된 다른 설정에 의해 마스킹되는 설정입니다.

해당 환경에서 다른 구성 방법 중 하나로 직접 동일한 옵션을 설정하여 저장된 구성 및 구성 파일의 설정을 재정의할 수 있습니다. 하지만 업데이트한 저장된 구성 또는 구성 파일을 적용해야만 이러한 설정을 완전히 제거할 수 있습니다. 저장된 구성이나 구성 파일에 또는 환경에 직접 옵션이 설정되어 있지 않으면 기본값이 적용됩니다(있을 경우). 세부 정보는 Precedence 단원을 참조하세요.

Elastic Beanstalk 콘솔

구성 파일을 포함하는 애플리케이션 소스 번들을 배포하거나, 저장된 구성을 적용하거나, 환경 관리 콘솔의 구성 페이지에서 바로 환경을 수정하여 Elastic Beanstalk 콘솔에 구성 옵션 설정을 업데이트할 수 있습니다.

구성 파일(.ebextensions) 사용

원본 디렉터리에 구성 파일을 업데이트하고, 새 소스 번들을 만든 후, 새 버전을 Elastic Beanstalk 환경에 배포하여 변경 사항을 적용합니다.

구성 파일에 대한 자세한 내용은 .Ebextensions 단원을 참조하세요.

소스 번들을 배포하려면
  1. Elastic Beanstalk 콘솔을 연 다음 리전(Regions) 목록에서 해당 AWS 리전을 선택합니다.

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

    참고

    환경이 많은 경우 검색 창을 사용하여 환경 목록을 필터링합니다.

  3. 환경 개요 페이지에서 [업로드 및 배포]를 선택합니다.

  4. 화면에 표시되는 대화 상자를 사용하여 소스 번들을 업로드합니다.

  5. 배포(Deploy)를 선택합니다.

  6. 배포가 완료되면 사이트 URL을 선택하여 새 탭에서 웹 사이트를 열 수 있습니다.

구성 파일의 변경 사항은 API 수준으로 환경에 바로 적용되는 설정 또는 저장된 구성의 옵션 설정을 재정의하지 않습니다. 자세한 내용은 우선 순위를 참조하세요.

저장된 구성 사용

저장된 설정을 실행 중인 환경에 적용하여 이 설정에 정의된 옵션을 적용합니다.

실행 중인 환경에 저장된 구성을 적용하려면(Elastic Beanstalk 콘솔)
  1. Elastic Beanstalk 콘솔을 연 다음 리전(Regions) 목록에서 해당 AWS 리전을 선택합니다.

  2. 탐색 창에서 애플리케이션을 선택한 다음 목록에서 애플리케이션의 이름을 선택합니다.

    참고

    애플리케이션이 많은 경우 검색 창을 사용하여 애플리케이션 목록을 필터링합니다.

  3. 탐색 창에서 애플리케이션 이름을 찾은 다음 저장된 구성을 선택합니다.

  4. 적용할 저장된 구성을 선택한 다음 [로드]를 선택합니다.

  5. 환경을 선택한 후 로드를 선택합니다.

저장된 구성에 정의되어 있는 설정이 구성 파일의 설정보다 우선하며, 환경 관리 콘솔에서 구성한 설정이 그보다 우선합니다.

저장된 구성의 생성에 대한 상세한 내용은 저장된 구성 단원을 참조하세요.

Elastic Beanstalk 콘솔 사용

Elastic Beanstalk 콘솔은 구성 페이지에 각 환경을 위한 여러 가지 구성 옵션을 제공합니다.

실행 중인 환경에서 구성 옵션을 변경하려면(Elastic Beanstalk 콘솔)
  1. Elastic Beanstalk 콘솔을 연 다음 리전(Regions) 목록에서 해당 AWS 리전을 선택합니다.

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

    참고

    환경이 많은 경우 검색 창을 사용하여 환경 목록을 필터링합니다.

  3. 탐색 창에서 구성을 선택합니다.

  4. 편집하려는 구성 페이지를 찾습니다.

    • 관심이 있는 옵션을 찾은 경우 또는 해당 옵션이 있는 구성 범주를 알고 있는 경우 이에 대한 구성 범주에서 [편집]을 선택합니다.

    • 옵션을 찾으려면 Table View(테이블 보기)를 설정한 후 검색 상자에 검색어를 입력합니다. 입력하면 목록이 짧아지고 검색어와 일치하는 옵션만 표시됩니다.

      찾고 있는 옵션이 표시되면 해당 옵션이 있는 구성 범주에서 [편집]을 선택합니다.

      
                  옵션 검색을 보여주는 Elastic Beanstalk 콘솔 구성 개요 페이지의 테이블 보기
  5. 설정을 변경한 후 저장을 선택합니다.

  6. 필요한 대로 추가 구성 범주에서 이전의 두 단계를 반복합니다.

  7. 적용을 선택합니다.

환경 관리 콘솔에서 구성 옵션에 대한 변경 사항은 환경에 바로 적용됩니다. 이러한 변경 사항은 구성 파일이나 저장된 구성의 동일한 옵션에 대한 설정을 재정의합니다. 자세한 내용은 우선순위를 참조하세요.

실행 중인 환경에서 Elastic Beanstalk 콘솔을 사용하여 구성 옵션을 변경하는 방법에 대한 자세한 내용은 Elastic Beanstalk 환경 구성 아래의 주제를 참조하세요.

EB CLI

구성 파일을 포함하는 소스 코드를 배포하거나 저장된 구성의 설정을 적용하거나 eb config 명령으로 바로 환경 구성을 수정하여 EB CLI로 구성 옵션 설정을 업데이트할 수 있습니다.

구성 파일(.ebextensions) 사용

.config의 프로젝트 폴더에 .ebextensions 파일을 넣어 애플리케이션 코드와 함께 배포합니다.

구성 파일에 대한 자세한 내용은 .Ebextensions 단원을 참조하세요.

~/workspace/my-app/ |-- .ebextensions | |-- environmentvariables.config | `-- healthcheckurl.config |-- .elasticbeanstalk | `-- config.yml |-- index.php `-- styles.css

eb deploy로 소스 코드를 배포합니다.

~/workspace/my-app$ eb deploy

저장된 구성 사용

eb config 명령을 사용하여 저장된 구성을 실행 중인 환경에 적용할 수 있습니다. 저장된 구성 이름과 함께 --cfg 옵션을 사용하여 해당 설정을 환경에 적용합니다.

$ eb config --cfg v1

이 예에서 v1이전에 만든 저장된 구성 파일의 이름입니다.

이 명령을 통해 환경에 적용된 설정은 환경이 생성되는 동안 적용되었던 설정 및 애플리케이션 소스 번들의 구성 파일에 정의된 설정을 재정의합니다.

사용 eb config

EB CLI의 eb config 명령을 통해 텍스트 편집기를 사용하여 환경에서 바로 옵션 설정을 설정하고 제거할 수 있습니다.

eb config를 실행할 때 EB CLI는 구성 파일, 저장된 구성, 권장 값, 환경에서 바로 설정된 옵션, API 기본값 등의 모든 소스를 통해 환경에 적용되는 설정을 표시합니다.

참고

eb config는 환경 속성을 표시하지 않습니다. 애플리케이션 내에서 읽을 수 있도록 환경 속성을 설정하려면 eb setenv를 사용합니다.

다음 예에서는 aws:autoscaling:launchconfiguration 네임스페이스에 적용된 설정을 보여줍니다. 이러한 설정은 다음과 같습니다.

  • 권장 값 두 개(IamInstanceProfileInstanceType), 환경 생성 중에 EB CLI에서 적용됩니다.

  • EC2KeyName 옵션, 생성 중에 리포지토리 구성을 기반으로 환경에서 직접 설정합니다.

  • 다른 옵션에 대한 API 기본값입니다.

ApplicationName: tomcat DateUpdated: 2015-09-30 22:51:07+00:00 EnvironmentName: tomcat SolutionStackName: 64bit Amazon Linux 2015.03 v2.0.1 running Tomcat 8 Java 8 settings: ... aws:autoscaling:launchconfiguration: BlockDeviceMappings: null EC2KeyName: my-key IamInstanceProfile: aws-elasticbeanstalk-ec2-role ImageId: ami-1f316660 InstanceType: t2.micro ...
eb config로 구성 옵션을 설정하거나 변경하려면
  1. eb config를 실행하여 환경 구성을 봅니다.

    ~/workspace/my-app/$ eb config
  2. 기본 텍스트 편집기를 사용하여 설정 값 변경.

    aws:autoscaling:launchconfiguration: BlockDeviceMappings: null EC2KeyName: my-key IamInstanceProfile: aws-elasticbeanstalk-ec2-role ImageId: ami-1f316660 InstanceType: t2.medium
  3. 임시 구성 파일을 저장하고 종료합니다.

  4. EB CLI는 환경 구성을 업데이트합니다.

eb config로 구성 옵션을 설정하면 기타 모든 소스의 설정을 재정의합니다.

eb config로 환경에서 옵션을 제거할 수도 있습니다.

구성 옵션을 제거하려면(EB CLI)
  1. eb config를 실행하여 환경 구성을 봅니다.

    ~/workspace/my-app/$ eb config
  2. 모든 값을 문자열 null로 바꿉니다. 제거하려는 옵션을 포함하는 전체 행을 삭제할 수도 있습니다.

    aws:autoscaling:launchconfiguration: BlockDeviceMappings: null EC2KeyName: my-key IamInstanceProfile: aws-elasticbeanstalk-ec2-role ImageId: ami-1f316660 InstanceType: null
  3. 임시 구성 파일을 저장하고 종료합니다.

  4. EB CLI는 환경 구성을 업데이트합니다.

eb config로 환경에서 옵션을 제거하면, 애플리케이션 소스 번들의 구성 파일에 있는 것과 동일한 옵션을 설정할 수 있게 됩니다. 자세한 내용은 우선 순위를 참조하세요.

사용 eb setenv

EB CLI로 환경 속성을 설정하려면 eb setenv를 사용하세요.

~/workspace/my-app/$ eb setenv ENVVAR=TEST INFO: Environment update is starting. INFO: Updating environment my-env's configuration settings. INFO: Environment health has transitioned from Ok to Info. Command is executing on all instances. INFO: Successfully deployed new configuration to environment.

이 명령은 aws:elasticbeanstalk:application:environment네임스페이스에 환경 속성을 설정합니다. eb setenv로 설정된 환경 속성은 간단한 업데이트 프로세스 후 애플리케이션에서 사용 가능합니다.

eb printenv로 환경에 설정된 환경 속성을 확인합니다.

~/workspace/my-app/$ eb printenv Environment Variables: ENVVAR = TEST

AWS CLI

구성 파일을 포함하는 소스 번들을 배포하거나 저장된 구성을 원격으로 저장하거나 aws elasticbeanstalk update-environment 명령으로 바로 환경을 수정하여 AWS CLI로 구성 옵션 설정을 업데이트할 수 있습니다.

구성 파일(.ebextensions) 사용

AWS CLI로 실행 중인 환경에 구성 파일을 적용하려면, Amazon S3에 업로드되는 애플리케이션 소스 번들에 포함합니다.

구성 파일에 대한 자세한 내용은 .Ebextensions 단원을 참조하세요.

~/workspace/my-app-v1.zip |-- .ebextensions | |-- environmentvariables.config | `-- healthcheckurl.config |-- index.php `-- styles.css
애플리케이션 소스 번들을 업로드하고 실행 중인 환경에 적용(AWS CLI)
  1. 아직 Amazon S3의 Elastic Beanstalk 버킷이 없는 경우 create-storage-location으로 한 개를 생성합니다.

    $ aws elasticbeanstalk create-storage-location { "S3Bucket": "elasticbeanstalk-us-west-2-123456789012" }
  2. 애플리케이션 소스 번들을 Amazon S3에 업로드합니다.

    $ aws s3 cp sourcebundlev2.zip s3://elasticbeanstalk-us-west-2-123456789012/my-app/sourcebundlev2.zip
  3. 애플리케이션 버전 생성.

    $ aws elasticbeanstalk create-application-version --application-name my-app --version-label v2 --description MyAppv2 --source-bundle S3Bucket="elasticbeanstalk-us-west-2-123456789012",S3Key="my-app/sourcebundlev2.zip"
  4. 환경 업데이트.

    $ aws elasticbeanstalk update-environment --environment-name my-env --version-label v2

저장된 구성 사용

--template-name 명령의 aws elasticbeanstalk update-environment 옵션으로 저장된 구성을 실행 중인 환경에 적용할 수 있습니다.

저장된 구성은 애플리케이션과 같은 이름의 경로에 있는 resources/templates 아래의 Elastic Beanstalk 버킷에 있어야 합니다. 예를 들어 123456789012 계정의 미국 서부(오리건) 리전(us-west-2)에서 v1 애플리케이션의 my-app 템플릿은 s3://elasticbeanstalk-us-west-2-123456789012/resources/templates/my-app/v1에 있습니다.

저장된 구성을 실행 중인 환경에 적용(AWS CLI)
  • update-environment 옵션으로 --template-name 호출에 저장된 구성을 지정합니다.

    $ aws elasticbeanstalk update-environment --environment-name my-env --template-name v1

Elastic Beanstalk는 aws elasticbeanstalk create-configuration-template으로 생성할 때 이 위치에 저장된 구성을 배치합니다. 저장된 구성을 로컬에서 수정하고 이 위치에 직접 배치할 수도 있습니다.

명령줄 옵션 사용

JSON 문서로 구성 옵션을 변경(AWS CLI)
  1. 로컬 파일에서 JSON 형식으로 옵션 설정을 정의합니다.

  2. update-environment 옵션으로 --option-settings를 실행합니다.

    $ aws elasticbeanstalk update-environment --environment-name my-env --option-settings file://~/ebconfigs/as-zero.json

이 예에서 as-zero.json은 인스턴스의 최소값과 최대값이 0인 환경을 구성하는 옵션을 정의합니다. 그러면 환경이 종료되지 않고 환경의 인스턴스가 중지됩니다.

~/ebconfigs/as-zero.json

[ { "Namespace": "aws:autoscaling:asg", "OptionName": "MinSize", "Value": "0" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "MaxSize", "Value": "0" }, { "Namespace": "aws:autoscaling:updatepolicy:rollingupdate", "OptionName": "RollingUpdateEnabled", "Value": "false" } ]
참고

update-environment로 구성 옵션을 설정하면 기타 모든 소스의 설정을 재정의합니다.

update-environment로 환경에서 옵션을 제거할 수도 있습니다.

구성 옵션 제거(AWS CLI)
  • update-environment 옵션으로 --options-to-remove 명령을 실행합니다.

    $ aws elasticbeanstalk update-environment --environment-name my-env --options-to-remove Namespace=aws:autoscaling:launchconfiguration,OptionName=InstanceType

update-environment로 환경에서 옵션을 제거하면, 애플리케이션 소스 번들의 구성 파일에 있는 것과 동일한 옵션을 설정할 수 있게 됩니다. 이러한 방법 중 어느 것이라도 사용하여 옵션을 구성하지 않으면 API 기본값이 적용됩니다(있을 경우). 자세한 내용은 우선 순위를 참조하세요.