Elastic Beanstalk 사용자 지정 플랫폼 - AWS Elastic Beanstalk

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

Elastic Beanstalk 사용자 지정 플랫폼

참고

2022년 7월 18일 Elastic Beanstalk는 Amazon Linux AMI(AL1) 에 기반한 모든 플랫폼 브랜치의 상태를 사용 중지로 설정했습니다. 이 항목에는 사용자 지정 플랫폼도 포함됩니다. Elastic Beanstalk는 사용자 지정 플랫폼을 지원하지 않습니다. Amazon Linux AMI의 Elastic Beanstalk 사용 중지에 대한 자세한 내용은 플랫폼 사용 중지 FAQ 섹션을 참조하세요.

이 주제는 이 문서에서 만료 전에 Elastic Beanstalk 사용자 지정 플랫폼 기능을 사용한 모든 고객을 위한 참조로 유지됩니다. 과거에 Elastic Beanstalk 사용자 지정 플랫폼은 Amazon Linux AMI, RHEL 7, RHEL 6 또는 Ubuntu 16.04 기본 AMI에서 AMI를 빌드하는 것을 지원했습니다. 이러한 운영 체제는 Elastic Beanstalk에서 더 이상 지원되지 않습니다. 더 이상 지원되지 않는 사용자 지정 플랫폼 기능에 대해 자세히 알아보려면 다음 주제를 확장하세요.

사용자 지정 플랫폼은 몇 가지 측면에서 사용자 지정 이미지보다 더 세부적인 사용자 맞춤형 지정을 제공합니다. 사용자 지정 플랫폼을 사용하면 플랫폼을 완전히 새로 개발하여 Elastic Beanstalk가 플랫폼 인스턴스에서 실행하는 운영 체제, 추가 소프트웨어 및 스크립트를 사용자 지정할 수 있습니다. 따라서 Elastic Beanstalk가 관리형 플랫폼을 제공하지 않는 언어 또는 기타 인프라 소프트웨어를 사용하는 애플리케이션을 위한 플랫폼을 빌드할 수 있습니다. 사용자 지정 이미지와 비교해 보세요. 사용자 지정 이미지는 기존 Elastic Beanstalk 플랫폼에서 사용하는 Amazon Machine Image(AMI)를 수정하여 Elastic Beanstalk에서 계속해서 플랫폼 스크립트를 제공하고 해당 플랫폼의 소프트웨어 스택을 제어합니다. 또한 사용자 지정 플랫폼에서는 자동화된 스크립트 방식으로 사용자 맞춤형 지정을 생성 및 유지 관리하며, 사용자 지정 이미지는 실행 중인 인스턴스가 수동으로 변경됩니다.

사용자 지정 플랫폼을 생성하려면 지원되는 운영 체제인 Ubuntu, RHEL, Amazon Linux 중 하나(정확한 버전은 Platform.yaml 파일 형식flavor 항목 참조)에서 AMI를 빌드한 후 추가로 사용자를 지정해야합니다. Amazon Elastic Compute Cloud(Amazon EC2)용 AMI를 비롯한 다양한 플랫폼 머신 이미지 생성용 오픈 소스 도구인 Packer를 사용하여 Elastic Beanstalk 플랫폼을 직접 생성합니다. Elastic Beanstalk 플랫폼은 한 애플리케이션을 지원하는 소프트웨어 집합의 실행을 돕는 AMI 및 사용자 지정 구성 옵션 및 기본 구성 옵션 설정을 포함한 메타데이터로 구성되어 있습니다.

Elastic Beanstalk는 Packer를 별도의 기본 제공 플랫폼으로 관리하므로 Packer 구성과 버전을 신경을 쓸 필요가 없습니다.

Packer 템플릿, 그리고 이 템플릿이 호출하는 스크립트 및 파일을 Elastic Beanstalk에 제공해 AMI를 빌드합니다. 이들 구성 요소는 플랫폼 정의 파일을 통해 패키징되며 이러한 플랫폼 정의 파일은 플랫폼 정의 아카이브라는 ZIP 아카이브로 템플릿과 메타데이터를 지정합니다.

사용자 지정 플랫폼을 생성하면 Packer를 실행하는 Elastic IP가 없는 단일 인스턴스 환경이 실행됩니다. 이후 Packer는 다른 인스턴스를 실행하여 이미지를 생성합니다. 이 환경은 여러 플랫폼 및 각 플랫폼의 여러 버전에서 재사용될 수 있습니다.

참고

사용자 지정 플랫폼은 AWS 리전에 따라 상이합니다. 여러 리전에서 Elastic Beanstalk를 사용하는 경우 리전별로 플랫폼을 따로 생성해야 합니다.

특정 상황에서 Packer를 통해 실행된 인스턴스는 정리되지(clean up) 않으므로 직접 종료해야 합니다. 이러한 인스턴스를 직접 정리하는 방법은 Packer 인스턴스 정리을 참조하세요.

귀하의 계정 사용자는 환경을 생성할 때 플랫폼 ARN을 지정해 귀하의 사용자 지정 플랫폼을 사용할 수 있습니다. 이러한 ARN은 귀하가 사용자 지정 플랫폼을 생성할 때 사용한 eb platform create 명령을 통해 반환됩니다.

사용자 지정 플랫폼을 빌드할 때마다 Elastic Beanstalk는 새 플랫폼 버전을 생성합니다. 사용자는 이름으로 플랫폼을 지정하여 플랫폼의 최신 버전만 가져오거나 버전 번호를 통해 특정 버전을 가져올 수 있습니다.

예를 들어 ARN이 MyCustomPlatformARN이고 버전이 3.0인 사용자 지정 플랫폼의 최신 버전을 배포하려면 EB CLI 명령줄이 다음과 같아야 합니다.

eb create -p MyCustomPlatformARN

버전 2.1을 배포하려면 EB CLI 명령줄이 다음과 같아야 합니다.

eb create -p MyCustomPlatformARN --version 2.1

사용자 지정 플랫폼 버전을 생성할 때 해당 버전에 태그를 적용하고 기존 사용자 지정 플랫폼 버전의 태그를 편집할 수 있습니다. 자세한 내용은 사용자 지정 플랫 버전에 태그 지정을 참조하세요.

사용자 지정 플랫폼 생성

사용자 지정 플랫폼을 생성하려면 애플리케이션의 루트가 플랫폼 정의 파일인 platform.yaml을 포함해야 합니다. 이 파일은 사용자 지정 플랫폼을 생성하는 데 사용한 빌더 유형을 정의합니다. 이 파일의 형식은 Platform.yaml 파일 형식에서 설명합니다. 사용자 지정 플랫폼을 처음부터 직접 생성하거나, 샘플 사용자 지정 플랫폼 중 하나를 사용하여 생성할 수 있습니다.

샘플 사용자 지정 플랫폼 사용

사용자 지정 플랫폼을 직접 생성하는 대신 플랫폼 정의 아카이브 샘플 중 하나를 사용하여 사용자 지정 플랫폼을 부트스트랩할 수 있습니다. 사용 전 샘플에서 구성해야 하는 유일한 항목은 소스 AMI 및 리전입니다.

참고

수정하지 않은 사용자 지정 플랫폼 샘플을 프로덕션에서 사용하지 마십시오. 이러한 샘플의 목적은 사용자 지정 플랫폼에서 사용할 수 있는 일부 기능을 보여 주는 것으로 프로덕션용으로는 적절하지 않습니다.

NodePlatform_Ubuntu.zip

이 사용자 지정 플랫폼은 Ubuntu 16.04에 기반하며 Node.js 4.4.4를 지원합니다. 이 섹션에서는 이 사용자 지정 플랫폼을 예시로 설명하겠습니다.

NodePlatform_RHEL.zip

이 사용자 지정 플랫폼은 RHEL 7.2에 기반하며 Node.js 4.4.4를 지원합니다.

NodePlatform_AmazonLinux.zip

이 사용자 지정 플랫폼은 Amazon Linux 2016.09.1에 기반하며 Node.js 4.4.4를 지원합니다.

TomcatPlatform_Ubuntu.zip

이 사용자 지정 플랫폼은 Ubuntu 16.04에 기반하며 Tomcat 7/Java 8을 지원합니다.

CustomPlatform_NodeSampleApp.zip

expressejs를 사용하여 정적 웹 페이지를 표시하는 Node.js 샘플입니다.

CustomPlatform_TomcatSampleApp.zip

배포 시 정적 웹 페이지를 표시하는 Tomcat 샘플입니다.

샘플 플랫폼 정의 아카이브 NodePlatform_Ubuntu.zip을 다운로드합니다. 이 파일에는 플랫폼 정의 파일, Packer 템플릿, 이미지를 생성할 때 Packer가 실행하는 스크립트, 플랫폼을 생성할 때 Packer가 빌더 인스턴스에 복사하는 스크립트 및 구성 파일이 포함되어 있습니다.

예 NodePlatform_Ubuntu.zip
|-- builder Contains files used by Packer to create the custom platform |-- custom_platform.json Packer template |-- platform.yaml Platform definition file |-- ReadMe.txt Briefly describes the sample

플랫폼 정의 파일 platform.yaml은 Elastic Beanstalk에 Packer 템플릿 이름 custom_platform.json을 알려 줍니다.

version: "1.0" provisioner: type: packer template: custom_platform.json flavor: ubuntu1604

Packer 템플릿은 Packer에 플랫폼의 AMI를 빌드하는 방법을 알려 주며, HVM 인스턴스 유형의 경우 플랫폼 이미지 기반으로 Ubuntu AMI를 사용합니다. provisioners 섹션은 Packer에 아카이브의 builder 폴더에 있는 모든 파일을 인스턴스에 복사하고 인스턴스에서 builder.sh 스크립트를 실행할 것을 알려 줍니다. 스크립트가 완료되면 Packer는 수정된 인스턴스에서 이미지를 생성합니다.

Elastic Beanstalk는 다음과 같이 Packer에서 AMI에 태그를 지정하는 데 사용할 수 있는 환경 변수 세 가지를 생성합니다.

AWS_EB_PLATFORM_ARN

사용자 지정 플랫폼의 ARN입니다.

AWS_EB_PLATFORM_NAME

사용자 지정 플랫폼의 이름입니다.

AWS_EB_PLATFORM_VERSION

사용자 지정 플랫폼의 버전입니다.

샘플 custom_platform.json 파일은 이들 변수를 사용해 다음 값을 정의하여 스크립트에 사용합니다.

  • platform_name(platform.yaml에 의해 설정)

  • platform_version(platform.yaml에 의해 설정)

  • platform_arn(메인 빌드 스크립트에 의해 설정), builder.sh(샘플 custom_platform.json 파일 마지막에 표시)

custom_platform.json 파일에는 해당 값을 제공해야 하는 두 가지 속성(source_amiregion)이 포함됩니다. 올바른 AMI 및 리전 값 선택에 대한 자세한 내용은 GitHub 리포지토리의 eb-custom-platforms-samples Packer 템플릿 업데이트를 참조하세요.

예 custom_platform.json
{ "variables": { "platform_name": "{{env `AWS_EB_PLATFORM_NAME`}}", "platform_version": "{{env `AWS_EB_PLATFORM_VERSION`}}", "platform_arn": "{{env `AWS_EB_PLATFORM_ARN`}}" }, "builders": [ { ... "region": "", "source_ami": "", ... } ], "provisioners": [ {...}, { "type": "shell", "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} sudo {{ .Path }}", "scripts": [ "builder/builder.sh" ] } ] }

플랫폼 정의 아카이브에 포함시키는 스크립트 및 기타 파일은 인스턴스에 적용하고자 하는 수정 내용에 따라 크게 달라집니다. 샘플 플랫폼에는 다음 스크립트가 포함되어 있습니다.

  • 00-sync-apt.sh - apt -y update를 주석 처리했습니다. 해당 항목은 사용자에게 입력 메시지를 표시하며 이는 자동화된 패키지 업데이트를 중단하기 때문에 명령을 주석 처리했습니다. 이는 Ubuntu 문제일 수 있습니다. 하지만 여전히 apt -y update 실행을 모범 사례로 권장합니다. 따라서 이 명령을 참조용 샘플 스크립트로 남겨 두었습니다.

  • 01-install-nginx.sh - nginx를 설치합니다.

  • 02-setup-platform.sh - wget, tree, git를 설치합니다. 후크 및 로그 구성을 인스턴스에 복사하고 다음 디렉터리를 생성합니다:

    • /etc/SampleNodePlatform - 배포할 때 컨테이너 구성 파일이 업로드되는 위치입니다.

    • /opt/elasticbeanstalk/deploy/appsource/ - 배포할 때 00-unzip.sh 스크립트가 애플리케이션 소스 코드를 업로드하는 위치입니다(이 스크립트에 대한 자세한 내용은 플랫폼 스크립트 도구 섹션 참조).

    • /var/app/staging/ - 배포할 때 애플리케이션 소스 코드가 처리되는 위치입니다.

    • /var/app/current/ - 처리 후 애플리케이션 소스 코드가 실행되는 위치입니다.

    • /var/log/nginx/healthd/ - 확장 상태 확인 에이전트가 로그를 작성하는 위치입니다.

    • /var/nodejs - 배포할 때 Node.js 파일이 업로드되는 위치입니다.

EB CLI를 통해 샘플 플랫폼 정의 아카이브로 최초의 사용자 지정 플랫폼을 생성해 보세요.

사용자 지정 플랫폼을 생성하는 방법
  1. EB CLI를 설치합니다.

  2. 샘플 사용자 지정 플랫폼의 압축을 해제할 디렉터리를 생성합니다.

    ~$ mkdir ~/custom-platform
  3. 디렉터리에 NodePlatform_Ubuntu.zip 압축을 풀고 해당 디렉터리로 변경합니다.

    ~$ cd ~/custom-platform ~/custom-platform$ unzip ~/NodePlatform_Ubuntu.zip ~/custom-platform$ cd NodePlatform_Ubuntu
  4. custom_platform.json 파일을 편집하고, source_amiregion 속성의 값을 입력합니다. 자세한 내용은 Packer 템플릿 업데이트를 참조하세요.

  5. eb platform init를 실행하고 프롬프트의 메시지에 따라 플랫폼 리포지토리를 초기화합니다.

    eb platformebp로 줄일 수 있습니다.

    참고

    Windows PowerShell은 ebp를 명령 별칭으로 사용합니다. Windows PowerShell에서 EB CLI를 실행하는 경우 이 명령의 긴 형식을 사용합니다: eb platform.

    ~/custom-platform$ eb platform init

    이 명령은 또한 현재 디렉터리에 .elasticbeanstalk 디렉터리를 생성하며, 구성 파일 config.yml을 해당 디렉터리에 추가합니다. 이 파일을 변경하거나 삭제하지 마세요. Elastic Beanstalk가 사용자 지정 플랫폼을 생성할 때 이 파일을 사용합니다.

    기본적으로 eb platform init는 현재 폴더의 이름을 사용자 지정 플랫폼의 이름으로 사용합니다. 이 예제에서는 custom-platform입니다.

  6. eb platform create를 실행하여 Packer 환경을 시작하고 사용자 지정 플랫폼의 ARN을 확인합니다. 이 값은 나중에 사용자 지정 플랫폼에서 환경을 생성할 때 필요합니다.

    ~/custom-platform$ eb platform create ...

    기본적으로 Elastic Beanstalk는 사용자 지정 플랫폼에 인스턴스 프로파일 aws-elasticbeanstalk-custom-platform-ec2-role을 생성합니다. 혹은 기본 인스턴스 프로파일을 사용하려면 옵션 -ip INSTANCE_PROFILEeb platform create 명령에 추가하면 됩니다.

    참고

    기본 인스턴스 프로파일 aws-elasticbeanstalk-ec2-role을 사용하면 Packer가 사용자 지정 플랫폼을 생성하지 못합니다.

    EB CLI는 빌드가 완료될 때까지 Packer 환경의 이벤트 출력을 표시합니다. Ctrl+C를 누르면 이벤트 보기를 종료할 수 있습니다.

  7. eb platform logs 명령을 사용해 오류 로그를 확인할 수 있습니다.

    ~/custom-platform$ eb platform logs ...
  8. eb platform events로 추후 프로세스를 확인할 수 있습니다.

    ~/custom-platform$ eb platform events ...
  9. eb platform status로 플랫폼의 상태를 확인합니다.

    ~/custom-platform$ eb platform status ...

작업이 완료되면 Elastic Beanstalk 환경을 시작하는 데 사용할 수 있는 플랫폼이 준비됩니다.

콘솔에서 환경을 생성할 때 이 사용자 지정 플랫폼을 사용할 수 있습니다. 새 환경 생성 마법사을 참조하세요.

사용자 지정 플랫폼에서 환경을 시작하려면
  1. 애플리케이션용 디렉터리를 생성합니다.

    ~$ mkdir custom-platform-app ~$ cd ~/custom-platform-app
  2. 애플리케이션 리포지토리를 초기화합니다.

    ~/custom-platform-app$ eb init ...
  3. 샘플 애플리케이션 NodeSampleApp.zip을 다운로드합니다.

  4. 샘플 애플리케이션의 압축을 풉니다.

    ~/custom-platform-app$ unzip ~/NodeSampleApp.zip
  5. eb create -p CUSTOM-PLATFORM-ARN을 실행해 사용자 지정 플랫폼을 실행하는 환경을 시작합니다. CUSTOM-PLATFORM-ARNeb platform create 명령에 의해 반환되는 ARN입니다.

    ~/custom-platform-app$ eb create -p CUSTOM-PLATFORM-ARN ...

플랫폼 정의 아카이브 콘텐츠

플랫폼 정의 아카이브는 애플리케이션 소스 번들에 상응하는 플랫폼입니다. 플랫폼 정의 아카이브는 플랫폼 정의 파일, Packer 템플릿 및 Packer 템플릿이 플랫폼을 생성하는 데 사용하는 스크립트 및 파일이 포함된 ZIP 파일입니다.

참고

EB CLI를 사용해 사용자 지정 플랫폼을 생성하면 EB CLI가 플랫폼 리포지토리의 파일 및 폴더로 플랫폼 정의 아카이브를 생성하므로 아카이브를 수동으로 생성할 필요가 없습니다.

플랫폼 정의 파일의 이름은 platform.yaml로 지정되며, 이는 플랫폼 정의 아카이브의 루트에 있어야 하는 YAML 형식의 파일입니다. 플랫폼 정의 파일에서 지원되는 필수 키와 선택적 키의 목록은 사용자 지정 플랫폼 생성을 참조하세요.

Packer 템플릿 이름을 특정 방식으로 지정할 필요는 없지만 파일 이름은 플랫폼 정의 파일에 지정된 프로비저너 템플릿과 일치해야 합니다. Packer 템플릿 생성에 대한 지침은 공식 Packer 설명서를 참조하십시오.

플랫폼 정의 아카이브에 들어 있는 기타 파일은 템플릿이 AMI 생성 전 인스턴스를 사용자 맞춤형으로 지정할 때 사용하는 스크립트 및 파일입니다.

사용자 지정 플랫폼 후크

Elastic Beanstalk는 표준 디렉터리 구조를 사용하여 사용자 지정 플랫폼을 후크(hook)합니다. 후크는 수명 주기 이벤트 중, 그리고 관리 작업(환경의 인스턴스가 시작될 때 또는 사용자가 배포를 초기화하거나 애플리케이션 서버 재시작 기능을 사용할 때)에 응답할 때 실행되는 스크립트입니다.

후크를 트리거하려는 스크립트를 /opt/elasticbeanstalk/hooks/ 폴더의 하위 폴더 중 하나에 배치합니다.

주의

관리형 플랫폼은 사용자 지정 플랫폼 후크 사용을 지원하지 않습니다. 사용자 지정 플랫폼 후크는 사용자 지정 플랫폼용으로 설계되었습니다. Elastic Beanstalk 관리형 플랫폼에서 플랫폼 후크가 다르게 작동되거나 몇 가지 문제가 생길 수 있으며 플랫폼마다 다르게 작동할 수 있습니다. Amazon Linux AMI 플랫폼(이전 Amazon Linux 2)에서는 플랫폼 후크가 부분적으로 여전히 유용한 방식으로 작동하지만 주의해서 사용해야 합니다.

사용자 지정 플랫폼 후크는 Amazon Linux AMI 플랫폼에 있는 레거시 기능입니다. Amazon Linux 2 플랫폼에서는 /opt/elasticbeanstalk/hooks/ 폴더의 사용자 지정 플랫폼 후크 지원이 완전히 중단됩니다. Elastic Beanstalk는 이러한 플랫폼 후크를 읽거나 실행하지 않습니다. Amazon Linux 2 플랫폼은 Elastic Beanstalk 관리형 플랫폼을 확장하도록 특별히 설계된 새로운 종류의 플랫폼 후크를 지원합니다. 사용자 지정 스크립트 및 프로그램을 애플리케이션 소스 번들의 후크 디렉터리에 직접 추가할 수 있습니다. Elastic Beanstalk는 다양한 인스턴스 프로비저닝 단계에서 이러한 스크립트 및 프로그램을 실행합니다. 자세한 내용을 보려면 Elastic Beanstalk Linux 플랫폼 확장플랫폼 후크 섹션을 확장하십시오.

후크는 다음 폴더에 정리되어 있습니다.

  • appdeploy – 애플리케이션을 배포할 때 실행되는 스크립트입니다. 새 인스턴스가 시작될 때 및 클라이언트가 새 배포 버전을 초기화했을 때 Elastic Beanstalk는 애플리케이션 배포를 수행합니다.

  • configdeploy – 클라이언트가 인스턴스에서 소프트웨어 구성에 영향을 미치는 업데이트(예: 환경 속성 설정 또는 Amazon S3 로그 교체 활성화)를 수행하면 실행되는 스크립트입니다.

  • restartappserver – 클라이언트가 앱 서버 작업 재시작을 수행하면 실행되는 스크립트입니다.

  • preinit – 인스턴스 부트스트래핑 중 실행되는 스크립트입니다.

  • postinit – 인스턴스 부트스트래핑 후 실행되는 스크립트입니다.

appdeploy, configdeployrestartappserver 폴더에는 pre, enactpost 하위 폴더가 들어 있습니다. 작업의 각 단계에서 pre 폴더의 모든 스크립트가 알파벳순으로 실행되고 이어서 enact 폴더, post 폴더 순서로 실행됩니다.

인스턴스가 시작되면 Elastic Beanstalk는 preinit, appdeploy, postinit를 순서대로 실행합니다. 인스턴스 실행에 이은 후속 배포에서 Elastic Beanstalk는 appdeploy 후크를 실행합니다. configdeploy 후크는 사용자가 인스턴스 소프트웨어 구성 설정을 업데이트하면 실행됩니다. restartappserver 후크는 사용자가 애플리케이션 서버 재시작을 초기화했을 때만 실행됩니다.

스크립트에서 오류가 발생하면 해당 스크립트는 0이 아닌 상태로 종료되며 stderr에 기록되어 작업 실패 조치를 할 수 있습니다. stderr에 기록된 메시지는 작업 실패 시 출력되는 이벤트에서 표시됩니다. Elastic Beanstalk는 또한 이 정보를 로그 파일 /var/log/eb-activity.log에 캡처합니다. 작업을 실패로 조치하지 않으려면 0을 반환하세요. stderr 또는 stdout에 기록한 메시지가 배포 로그에 표시되며 작업이 실패했을 때만 이벤트 스트림에 표시됩니다.

Packer 인스턴스 정리

Packer 빌더 프로세스가 완료되기 전 해당 프로세스가 중단되는 등의 특별 상황에서는 Packer가 시작한 인스턴스가 정리되지 않습니다. 이러한 인스턴스는 Elastic Beanstalk 환경에 속하지 않으므로 Amazon EC2 서비스를 사용해야 확인 및 종료될 수 있습니다.

이러한 인스턴스를 수동으로 정리하려면
  1. Amazon EC2 콘솔을 엽니다.

  2. Packer를 통해 인스턴스를 생성한 리전과 동일한 AWS 리전에 위치하는지 확인합니다.

  3. 리소스에서 N 실행 중인 인스턴스를 선택합니다. 여기서 N은 실행 중인 인스턴스의 수를 가리킵니다.

  4. 쿼리 텍스트 상자 내부를 클릭합니다.

  5. 이름 태그를 선택합니다.

  6. packer를 입력합니다.

    쿼리 형식은 tag:Name: packer여야 합니다

  7. 쿼리와 일치하는 인스턴스를 선택합니다.

  8. 인스턴스 상태실행 중인 경우 작업, 인스턴스 상태, 중지를 선택한 후 작업, 인스턴스 상태, 종료를 선택합니다.

Platform.yaml 파일 형식

platform.yaml 파일의 형식은 다음과 같습니다.

version: "version-number" provisioner: type: provisioner-type template: provisioner-template flavor: provisioner-flavor metadata: maintainer: metadata-maintainer description: metadata-description operating_system_name: metadata-operating_system_name operating_system_version: metadata-operating_system_version programming_language_name: metadata-programming_language_name programming_language_version: metadata-programming_language_version framework_name: metadata-framework_name framework_version: metadata-framework_version option_definitions: - namespace: option-def-namespace option_name: option-def-option_name description: option-def-description default_value: option-def-default_value option_settings: - namespace: "option-setting-namespace" option_name: "option-setting-option_name" value: "option-setting-value"

플레이스홀더를 다음 값으로 변경합니다:

version-number

필수. YAML 정의 버전입니다. 1.0여야 합니다.

provisioner-type

필수. 사용자 지정 플랫폼을 생성하는 데 사용되는 빌더 유형입니다. packer여야 합니다.

provisioner-template

필수. provisioner-type 설정이 포함된 JSON 파일입니다.

provisioner-flavor

선택 사항. AMI에 사용되는 기본 운영 체제입니다. 다음 중 하나입니다:

amazon(기본값)

Amazon Linux. 지정하지 않을 경우 플랫폼 생성 시 최신 버전의 Amazon Linux입니다.

Amazon Linux 2는 지원되는 운영 체제가 아닙니다.

ubuntu1604

Ubuntu 16.04 LTS

rhel7

RHEL 7

rhel6

RHEL 6

metadata-maintainer

선택 사항. 플랫폼 소유자의 연락처 정보입니다. (100자)

metadata-description

선택 사항. 플랫폼에 대한 설명입니다. (2,000자)

metadata-operating_system_name

선택 사항. 플랫폼 운영 체제 이름입니다(50자). ListPlatformVersions API의 출력을 필터링할 때 이 값을 사용할 수 있습니다.

metadata-operating_system_version

선택 사항. 플랫폼 운영 체제 버전입니다. (20자)

metadata-programming_language_name

선택 사항. 플랫폼에서 지원하는 프로그래밍 언어입니다. (50자)

metadata-programming_language_version

선택 사항. 플랫폼의 언어 버전입니다. (20자)

metadata-framework_name

선택 사항. 플랫폼에서 사용하는 웹 프레임워크의 이름입니다. (50자)

metadata-framework_version

선택 사항. 플랫폼 웹 프레임워크 버전입니다. (20자)

option-def-namespace

선택 사항. aws:elasticbeanstalk:container:custom 의 네임스페이스입니다. (100자)

option-def-option_name

선택 사항. 옵션 이름입니다. (100자) 플랫폼에서 사용자에게 제공하는 사용자 지정 구성 옵션을 최대 50개까지 정의할 수 있습니다.

option-def-description

선택 사항. 옵션에 대한 설명입니다. (1,024자)

option-def-default_value

선택 사항. 사용자가 값을 지정하지 않은 경우 사용되는 기본값입니다.

다음 예제에서는 옵션 NPM_START를 생성합니다.

options_definitions: - namespace: "aws:elasticbeanstalk:container:custom:application" option_name: "NPM_START" description: "Default application startup command" default_value: "node application.js"
option-setting-namespace

선택 사항. 옵션 네임스페이스입니다.

option-setting-option_name

선택 사항. 옵션 이름입니다. Elastic Beanstalk에서 제공하는 옵션을 최대 50개까지 지정할 수 있습니다.

option-setting-value

선택 사항. 사용자가 값을 지정하지 않은 경우 사용되는 값입니다.

다음 예제에서는 옵션 TEST를 생성합니다.

option_settings: - namespace: "aws:elasticbeanstalk:application:environment" option_name: "TEST" value: "This is a test"

사용자 지정 플랫 버전에 태그 지정

AWS Elastic Beanstalk 사용자 지정 플랫폼 버전에 태그를 적용할 수 있습니다. 태그는 AWS 리소스와 연결된 키-값 페어입니다. Elastic Beanstalk 리소스 태그 지정, 사용 사례, 태그 키 및 값 제약, 지원되는 리소스 유형에 대한 자세한 내용은 Elastic Beanstalk 애플리케이션 리소스 태그 지정을 참조하세요.

사용자 지정 플랫폼 버전을 생성할 때 태그를 지정할 수 있습니다. 기존 사용자 지정 플랫폼 버전에서 태그를 추가 또는 제거하거나 기존 태그의 값을 업데이트할 수 있습니다. 각 사용자 지정 플랫폼 버전에 최대 50개의 태그를 추가할 수 있습니다.

사용자 지정 플랫폼 버전 생성 중 태그 추가

EB CLI를 통해 사용자 지정 플랫폼 버전을 생성하는 경우 --tags 옵션을 eb platform create와 함께 사용하여 태그를 추가합니다.

~/workspace/my-app$ eb platform create --tags mytag1=value1,mytag2=value2

AWS CLI 또는 기타 API 기반 클라이언트에서는 create-platform-version 명령의 --tags 파라미터를 사용하여 태그를 추가합니다.

$ aws elasticbeanstalk create-platform-version \ --tags Key=mytag1,Value=value1 Key=mytag2,Value=value2 \ --platform-name my-platform --platform-version 1.0.0 --platform-definition-bundle S3Bucket=DOC-EXAMPLE-BUCKET,S3Key=sample.zip

기존 사용자 지정 플랫폼 버전의 태그 관리

기존 Elastic Beanstalk 사용자 지정 플랫폼 버전에서 태그를 추가, 업데이트 및 삭제할 수 있습니다.

EB CLI를 사용하여 사용자 지정 플랫폼 버전을 업데이트하는 경우 eb tags를 통해 태그를 추가, 업데이트, 삭제 또는 나열합니다.

예를 들어 다음 명령은 사용자 지정 플랫폼 버전의 태그를 나열합니다.

~/workspace/my-app$ eb tags --list --resource "arn:aws:elasticbeanstalk:us-east-2:my-account-id:platform/my-platform/1.0.0"

다음 명령은 태그 mytag1를 업데이트하고 태그 mytag2를 삭제합니다.

~/workspace/my-app$ eb tags --update mytag1=newvalue --delete mytag2 \ --resource "arn:aws:elasticbeanstalk:us-east-2:my-account-id:platform/my-platform/1.0.0"

전체 옵션 목록과 예제를 더 살펴보려면 eb tags를 참조하십시오.

AWS CLI 또는 기타 API 기반 클라이언트에서 list-tags-for-resource 명령을 사용하여 사용자 지정 플랫폼 버전의 태그를 나열합니다.

$ aws elasticbeanstalk list-tags-for-resource --resource-arn "arn:aws:elasticbeanstalk:us-east-2:my-account-id:platform/my-platform/1.0.0"

update-tags-for-resource 명령을 사용하여 사용자 지정 플랫폼 버전에서 태그를 추가, 업데이트 또는 삭제합니다.

$ aws elasticbeanstalk update-tags-for-resource \ --tags-to-add Key=mytag1,Value=newvalue --tags-to-remove mytag2 \ --resource-arn "arn:aws:elasticbeanstalk:us-east-2:my-account-id:platform/my-platform/1.0.0"

update-tags-for-resource--tags-to-add 파라미터에 추가할 태그 및 업데이트할 모든 태그를 지정합니다. 새로운 태그가 추가되고 기존 태그 값은 업데이트됩니다.

참고

일부 EB CLI 및 AWS CLI 명령을 Elastic Beanstalk 사용자 지정 플랫폼 버전과 함께 사용하려면 사용자 지정 플랫폼 버전의 ARN이 필요합니다. 다음 명령을 사용하여 ARN을 검색할 수 있습니다.

$ aws elasticbeanstalk list-platform-versions

--filters 옵션을 통해 사용자 지정 플랫폼 이름에 이르는 출력을 필터링합니다.