기타 AWS CloudFormation 템플릿 키 - AWS Elastic Beanstalk

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

기타 AWS CloudFormation 템플릿 키

AWS CloudFormation의 구성 파일 키(예: Resources, files, packages)에 대해서는 이미 소개했습니다. Elastic Beanstalk에서는 환경을 지원하는 AWS CloudFormation 템플릿에 구성 파일의 내용을 추가하므로 기타 AWS CloudFormation 섹션을 사용하여 구성 파일에서 고급 작업을 수행할 수 있습니다.

파라미터

파라미터는 구성 파일의 다른 위치에서 사용하는 값을 정의하는 데 사용할 수 있는 Elastic Beanstalk의 고유한 대체 사용자 지정 옵션입니다. 사용자 지정 옵션과 마찬가지로, 파라미터를 사용하면 사용자가 구성할 수 있는 값을 한 곳에서 수집할 수 있습니다. 하지만 사용자 지정 옵션과 달리 파라미터 값을 설정하는 데 Elastic Beanstalk의 API를 사용할 수는 없으며, 템플릿에서 정의할 수 있는 파라미터 수가 에서 제한됩니다AWS CloudFormation

파라미터를 사용하는 이유 중 하나는 구성 파일을 AWS CloudFormation 템플릿으로 두 배 더 활용할 수 있기 때문입니다. 사용자 지정 옵션 대신 파라미터를 사용하면 AWS CloudFormation에서 동일한 리소스를 고유한 스택으로 생성하는 데 구성 파일을 사용할 수 있습니다. 예를 들어 테스트를 위해 환경에 Amazon EFS 파일 시스템을 추가하는 구성 파일이 있고, 동일한 파일을 사용해 환경의 프로덕션용 수명 주기에 연결되지 않은 독립적 파일 시스템을 생성할 수 있습니다.

다음 예에서는 파라미터를 사용해 구성 파일 맨 위에서 사용자가 구성할 수 있는 값을 수집하는 방법을 보여 줍니다.

Loadbalancer-accesslogs-existingbucket.config - 파라미터
Parameters: bucket: Type: String Description: "Name of the Amazon S3 bucket in which to store load balancer logs" Default: "DOC-EXAMPLE-BUCKET" bucketprefix: Type: String Description: "Optional prefix. Can't start or end with a /, or contain the word AWSLogs" Default: ""

출력

Outputs 블록을 사용하여 생성된 리소스에 대한 정보를 AWS CloudFormation으로 내보낼 수 있습니다. 그런 다음 Fn::ImportValue 함수를 사용해 Elastic Beanstalk 외부의 AWS CloudFormation 템플릿으로 값을 가져올 수 있습니다.

다음 예에서는 Amazon SNS 주제를 생성해 해당 토픽의 ARN을 NotificationTopicArn이라는 이름으로 AWS CloudFormation으로 내보냅니다.

sns-topic.config
Resources: NotificationTopic: Type: AWS::SNS::Topic Outputs: NotificationTopicArn: Description: Notification topic ARN Value: { "Ref" : "NotificationTopic" } Export: Name: NotificationTopicArn

다른 환경의 구성 파일 또는 Elastic Beanstalk 외부의 AWS CloudFormation 템플릿에서 Fn::ImportValue 함수를 사용해 내보낸 ARN을 가져올 수 있습니다. 이 예에서는 내보낸 값을 환경 속성 TOPIC_ARN에 할당합니다.

예 env.config
option_settings: aws:elasticbeanstalk:application:environment: TOPIC_ARN: '`{ "Fn::ImportValue" : "NotificationTopicArn" }`'

매핑

매핑을 사용하여 네임스페이스별로 구성된 키 값 페어를 저장할 수 있습니다. 매핑을 사용하면 구성 전체에서 사용하는 값을 구성하거나, 다른 값에 따라 파라미터 값을 변경할 수 있습니다. 예를 들어 다음 구성은 현재 리전을 기준으로 계정 ID 파라미터의 값을 설정합니다.

Loadbalancer-accesslogs-newbucket.config - 매핑
Mappings: Region2ELBAccountId: us-east-1: AccountId: "111122223333" us-west-2: AccountId: "444455556666" us-west-1: AccountId: "123456789012" eu-west-1: AccountId: "777788889999" ... Principal: AWS: ? "Fn::FindInMap" : - Region2ELBAccountId - Ref: "AWS::Region" - AccountId