Elastic Beanstalk 커스텀 플랫폼 (사용 중지) - AWS Elastic Beanstalk

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

Elastic Beanstalk 커스텀 플랫폼 (사용 중지)

참고

2022년 7월 18일, Elastic Beanstalk는 아마존 리눅스 () 를 기반으로 하는 모든 플랫폼 브랜치의 상태를 은퇴로 설정했습니다. AMI AL1 이 항목에는 사용자 지정 플랫폼도 포함됩니다. Elastic Beanstalk는 사용자 지정 플랫폼을 지원하지 않습니다. Elastic Beanstalk의 Amazon Linux AMI 사용 중단에 대한 자세한 내용은 을 참조하십시오. 플랫폼 사용 중지 FAQ

이 주제는 이 문서에서 만료 전에 Elastic Beanstalk 사용자 지정 플랫폼 기능을 사용한 모든 고객을 위한 참조로 유지됩니다. 과거에는 Elastic Beanstalk 커스텀 플랫폼이 AMI 아마존 RHEL 리눅스, RHEL 7, 6 AMI 또는 우분투 16.04 베이스에서 구축할 수 있도록 지원했습니다. AMIs 이러한 운영 체제는 Elastic Beanstalk에서 더 이상 지원되지 않습니다. 더 이상 지원되지 않는 사용자 지정 플랫폼 기능에 대해 자세히 알아보려면 다음 주제를 확장하세요.

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

사용자 지정 플랫폼을 만들려면 지원되는 운영 체제 (Ubuntu RHEL 또는 Amazon Linux) 중 하나를 사용하여 플랫폼을 구축하고 (정확한 버전 번호는 flavor 항목 참조) 사용자 지정을 추가합니다. AMI Platform.yaml 파일 형식 Packer를 사용하여 자신만의 Elastic Beanstalk 플랫폼을 만들 수 있습니다. Packer는 Amazon Elastic Compute Cloud (Amazon) 와 함께 사용하는 것을 AMIs 포함하여 다양한 플랫폼용 머신 이미지를 생성할 수 있는 오픈 소스 도구입니다. EC2 Elastic Beanstalk 플랫폼은 애플리케이션을 지원하는 소프트웨어 세트를 실행하도록 구성된 플랫폼과 사용자 지정 구성 옵션 및 기본 구성 옵션 설정을 포함할 수 있는 메타데이터로 AMI 구성됩니다.

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

Elastic Beanstalk에 Packer 템플릿과 템플릿이 빌드 시 호출하는 스크립트 및 파일을 제공하여 플랫폼을 생성합니다. AMI 이러한 구성 요소는 템플릿과 메타데이터를 지정하는 플랫폼 정의 파일과 함께 플랫폼 정의 아카이브라고 하는 ZIP 아카이브로 패키징됩니다.

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

참고

커스텀 플랫폼은 AWS 지역별로 다릅니다. 여러 리전에서 Elastic Beanstalk를 사용하는 경우 리전별로 플랫폼을 따로 생성해야 합니다.

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

계정의 사용자는 환경 생성 ARN 중에 플랫폼을 지정하여 사용자 지정 플랫폼을 사용할 수 있습니다. 이는 사용자 지정 플랫폼을 만드는 데 사용한 eb platform create 명령으로 ARNs 반환됩니다.

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

예를 들어, 버전 3.0과 함께 최신 버전의 사용자 지정 플랫폼을 배포하려는 경우 EB CLI 명령줄은 다음과 같이 표시됩니다. ARN MyCustomPlatformARN

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

이 사용자 지정 플랫폼은 RHEL7.2를 기반으로 하며 Node.js 4.4.4를 지원합니다.

NodePlatform_ .zip AmazonLinux

이 사용자 지정 플랫폼은 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_ .zip TomcatSampleApp

배포 시 정적 웹 페이지를 표시하는 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에게 AMIUbuntu를 인스턴스 AMIs 유형용 플랫폼 이미지의 기반으로 사용하여 플랫폼용으로 빌드하는 방법을 알려줍니다. HVM provisioners 섹션은 Packer에 아카이브의 builder 폴더에 있는 모든 파일을 인스턴스에 복사하고 인스턴스에서 builder.sh 스크립트를 실행할 것을 알려 줍니다. 스크립트가 완료되면 Packer는 수정된 인스턴스에서 이미지를 생성합니다.

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

AWSPLATFORM_EB_ _ 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 및 지역 값 선택에 대한 자세한 내용은 리포지토리의 Packer 템플릿 업데이트를 참조하십시오. eb-custom-platforms-samples GitHub

예 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 스크립트가 애플리케이션 소스 코드를 업로드하는 위치입니다(이 스크립트에 대한 자세한 내용은 Elastic Beanstalk 환경을 위한 플랫폼 스크립트 도구 섹션 참조).

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

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

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

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

CLIEB를 사용하여 샘플 플랫폼 정의 아카이브로 첫 번째 사용자 지정 플랫폼을 만들 수 있습니다.

사용자 지정 플랫폼을 생성하는 방법
  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로 줄일 수 있습니다.

    참고

    PowerShell Windows는 명령 ebp 별칭으로 사용합니다. CLI PowerShellWindows에서 EB를 실행하는 경우 다음 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에는 빌드가 완료될 때까지 Packer 환경의 이벤트 출력이 CLI 표시됩니다. 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-ARN 사용자 지정 플랫폼을 실행하는 환경을 시작하기 위해 eb platform create 명령으로 ARN 반환되는 값입니다.

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

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

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

참고

CLIEB를 사용하여 사용자 지정 플랫폼을 만들면 CLI EB는 플랫폼 저장소의 파일 및 폴더에서 플랫폼 정의 아카이브를 생성하므로 아카이브를 수동으로 만들 필요가 없습니다.

플랫폼 정의 파일은 이름이 YAML platform.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

필수 사항입니다. 에 대한 설정이 들어 있는 JSON 파일입니다.provisioner-type.

provisioner-flavor

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

amazon(기본값)

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

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

ubuntu1604

우분투 16.04 LTS

rhel7

RHEL7

rhel6

RHEL6

metadata-maintainer

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

metadata-description

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

metadata-operating_system_name

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

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개의 태그를 추가할 수 있습니다.

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

CLIEB를 사용하여 사용자 지정 플랫폼 버전을 만드는 경우 와 --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=amzn-s3-demo-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 파라미터에 추가할 태그 및 업데이트할 모든 태그를 지정합니다. 새로운 태그가 추가되고 기존 태그 값은 업데이트됩니다.

참고

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

$ aws elasticbeanstalk list-platform-versions

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