CreationPolicy 속성 - AWS CloudFormation

CreationPolicy 속성

CreationPolicy 속성을 리소스와 연결하여 AWS CloudFormation에서 지정된 수의 성공 신호를 수신하거나 제한 시간이 초과될 때까지 리소스의 상태가 생성 완료가 되지 않도록 방지합니다. 리소스에 신호를 보내기 위해 cfn-signal 헬퍼 스크립트 또는 SignalResource API를 사용할 수 있습니다. CloudFormation은 전송된 신호 수를 추적할 수 있도록 유효한 신호를 스택 이벤트에 게시합니다.

생성 정책은 CloudFormation에서 연결된 리소스를 생성하는 경우에만 호출됩니다. 현재 생성 정책을 지원하는 유일한 CloudFormation 리소스는 다음과 같습니다.

스택 생성이 진행되기 전에 리소스 구성 작업을 대기하려는 경우 CreationPolicy 속성을 사용합니다. 예를 들어, EC2 인스턴스에서 소프트웨어 애플리케이션을 설치하여 구성하는 경우 계속하기 전에 이러한 애플리케이션을 실행하려고 할 수 있습니다. 이러한 경우 인스턴스에 CreationPolicy 속성을 추가한 다음 애플리케이션을 설치하여 구성한 후 해당 인스턴스로 성공 신호를 전송할 수 있습니다. 자세한 예제는 AWS CloudFormation을 사용하여 Amazon EC2에서 애플리케이션 배포 단원을 참조하십시오.

AppStream 2.0 생성 정책

생성 정책에 대한 Amazon AppStream 구성입니다.

구문

JSON

{ "CreationPolicy": { "StartFleet": { "Type": "Boolean" } } }

YAML

CreationPolicy: StartFleet: Type: Boolean
StartFleet

지정된 플릿을 시작합니다.

필수 항목 여부: 아니요

Amazon EC2 Auto Scaling 생성 속성

생성 정책에 대한 Amazon EC2 Auto Scaling 구성입니다.

구문

JSON

"CreationPolicy" : { "AutoScalingCreationPolicy" : { "MinSuccessfulInstancesPercent" : Integer }, "ResourceSignal" : { "Count" : Integer, "Timeout" : String } }

YAML

CreationPolicy: AutoScalingCreationPolicy: MinSuccessfulInstancesPercent: Integer ResourceSignal: Count: Integer Timeout: String

Amazon EC2 Auto Scaling 생성 속성

생성 정책에 대한 Amazon EC2 Auto Scaling 구성입니다.

AutoScalingCreationPolicy

새 Amazon EC2 Auto Scaling 그룹의 경우 그룹 상태를 CREATE_COMPLETE로 설정하기 전에 성공 신호를 보내야 하는 인스턴스 수를 지정합니다.

MinSuccessfulInstancesPercent

그룹 상태를 CREATE_COMPLETE로 설정하기 전에 성공 신호를 보내야 하는 Amazon EC2 Auto Scaling의 인스턴스 백분율을 지정합니다. 0~100 범위의 값을 지정할 수 있습니다. CloudFormation은 이를 10분의 1퍼센트 단위로 반올림합니다. 예를 들어 최소 성공 비율 50으로 인스턴스 다섯 개를 생성하는 경우 인스턴스 세 개에서 성공 신호를 보내야 성공입니다. Timeout 속성이 지정한 시간 내에 인스턴스가 신호를 전송하지 않으면 CloudFormation에서는 해당 인스턴스가 생성되지 않았다고 가정합니다.

기본값: 100

유형: 정수

필수 항목 여부: 아니요

ResourceSignal

CloudFormation이 연결된 리소스를 생성하고, 필요한 성공 신호 수와 CloudFormation에서 성공 신호를 기다리는 시간을 구성합니다.

Count

CloudFormation이 리소스 상태를 CREATE_COMPLETE로 설정하기 전에 수신해야 하는 성공 신호 수입니다. 제한 시간이 만료되기 전에 리소스가 실패 신호를 수신하거나 지정된 신호 수를 수신하지 못한 경우 리소스 생성에 실패하고 CloudFormation에서는 스택을 롤백합니다.

기본값: 1

유형: 정수

필수 항목 여부: 아니요

Timeout

CloudFormation이 Count 속성에 지정된 신호 수를 대기하는 시간 길이입니다. 제한 시간은 CloudFormation에서 리소스를 안정화한 후 시작되고 지정한 시간 직후 만료되지만 잠시 후에 발생할 수도 있습니다. 지정 가능한 최대 시간은 12시입니다.

값은 PT#H#M#S와 같은 ISO8601 기간 형식이어야 하며, 여기서 #은 각각 시간, 분 및 초입니다. 최적의 결과를 얻으려면 인스턴스가 충분한 시간 동안 실행될 수 있는 시간을 지정합니다. 제한 시간이 짧을수록 롤백이 발생할 수 있습니다.

기본값: PT5M(5분)

유형: 문자열

필수 항목 여부: 아니요

auto scaling

다음 예제에서는 Amazon EC2 Auto Scaling 그룹에 생성 정책을 추가하는 방법을 보여줍니다. 생성 정책에는 3회의 성공 신고가 필요하며 15분 후에 시간이 초과됩니다.

인스턴스가 성공 신호를 보내기 전에 Elastic Load Balancing 상태 확인을 대기하도록 하려면 cfn-init 헬퍼 스크립트를 사용하여 상태-확인 검증을 추가합니다. 예를 들어 GitHub 리포지토리에서 Amazon EC2 Auto Scaling 롤링 업데이트 샘플 템플릿의 verify_instance_health 명령을 참조하세요.

JSON
"AutoScalingGroup": { "Type": "AWS::AutoScaling::AutoScalingGroup", "Properties": { "AvailabilityZones": { "Fn::GetAZs": "" }, "LaunchConfigurationName": { "Ref": "LaunchConfig" }, "DesiredCapacity": "3", "MinSize": "1", "MaxSize": "4" }, "CreationPolicy": { "ResourceSignal": { "Count": "3", "Timeout": "PT15M" } }, "UpdatePolicy" : { "AutoScalingScheduledAction" : { "IgnoreUnmodifiedGroupSizeProperties" : "true" }, "AutoScalingRollingUpdate" : { "MinInstancesInService" : "1", "MaxBatchSize" : "2", "PauseTime" : "PT1M", "WaitOnResourceSignals" : "true" } } }, "LaunchConfig": { "Type": "AWS::AutoScaling::LaunchConfiguration", "Properties": { "ImageId": "ami-16d18a7e", "InstanceType": "t2.micro", "UserData": { "Fn::Base64": { "Fn::Join" : [ "", [ "#!/bin/bash -xe\n", "yum install -y aws-cfn-bootstrap\n", "/opt/aws/bin/cfn-signal -e 0 --stack ", { "Ref": "AWS::StackName" }, " --resource AutoScalingGroup ", " --region ", { "Ref" : "AWS::Region" }, "\n" ] ] } } } }
YAML
AutoScalingGroup: Type: AWS::AutoScaling::AutoScalingGroup Properties: AvailabilityZones: Fn::GetAZs: '' LaunchConfigurationName: Ref: LaunchConfig DesiredCapacity: '3' MinSize: '1' MaxSize: '4' CreationPolicy: ResourceSignal: Count: '3' Timeout: PT15M UpdatePolicy: AutoScalingScheduledAction: IgnoreUnmodifiedGroupSizeProperties: 'true' AutoScalingRollingUpdate: MinInstancesInService: '1' MaxBatchSize: '2' PauseTime: PT1M WaitOnResourceSignals: 'true' LaunchConfig: Type: AWS::AutoScaling::LaunchConfiguration Properties: ImageId: ami-16d18a7e InstanceType: t2.micro UserData: "Fn::Base64": !Sub | #!/bin/bash -xe yum update -y aws-cfn-bootstrap /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource AutoScalingGroup --region ${AWS::Region}

WaitCondition

다음 예제에서는 대기 조건에 생성 정책을 추가하는 방법을 보여줍니다.

JSON
"WaitCondition" : { "Type" : "AWS::CloudFormation::WaitCondition", "CreationPolicy" : { "ResourceSignal" : { "Timeout" : "PT15M", "Count" : "5" } } }
YAML
WaitCondition: Type: AWS::CloudFormation::WaitCondition CreationPolicy: ResourceSignal: Timeout: PT15M Count: 5