쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

UpdatePolicy 속성

포커스 모드
UpdatePolicy 속성 - AWS CloudFormation
필터 보기

UpdatePolicy 속성을 사용하여 AWS CloudFormation에서 스택 업데이트 작업 중 특정 리소스에 대한 업데이트를 처리하는 방법을 지정합니다.

개요

UpdatePolicy 속성을 사용하면 여기에 설명된 대로 다음 리소스가 업데이트되는 방식을 제어할 수 있습니다.

  • AWS::AppStream::Fleet – CloudFormation이 플릿을 중지하고 시작할 수 있으며, 이로 인해 플릿의 인스턴스가 교체됩니다. 이렇게 하면 스택을 업데이트한 후 즉시 모든 인스턴스에 최신 변경 사항이 적용됩니다.

  • AWS::AutoScaling::AutoScalingGroup – Auto Scaling 그룹에서는 하나 이상의 업데이트 정책을 사용하여 CloudFormation이 특정 업데이트를 처리하는 방식을 제어할 수 있습니다. 이러한 정책에는 다음이 포함됩니다.

    • AutoScalingReplacingUpdateAutoScalingRollingUpdate 정책 - CloudFormation은 AutoScalingReplacingUpdate 정책을 사용하여 Auto Scaling 그룹 및 해당 인스턴스를 교체하거나 AutoScalingRollingUpdate 정책을 사용하여 인스턴스만 교체할 수 있습니다. 이러한 대체 작업은 다음 중 하나 이상을 변경한 경우 발생합니다.

      • Auto Scaling 그룹의 AWS::AutoScaling::LaunchConfiguration을 변경합니다.

      • auto scaling의 VPCZoneIdentifier 속성을 변경합니다.

      • auto scaling의 LaunchTemplate 속성을 변경합니다.

      • auto scaling의 PlacementGroup 속성을 변경합니다.

      • 현재 LaunchConfiguration과 일치하지 않는 인스턴스가 포함된 Auto Scaling 그룹을 업데이트합니다.

      AutoScalingReplacingUpdateAutoScalingRollingUpdate 정책이 둘 다 지정된 경우 WillReplace 속성을 true로 설정하면 AutoScalingReplacingUpdate가 우선 적용됩니다.

    • AutoScalingScheduledAction 정책 - 특정 시간에 그룹의 규모 조정 작업을 수행하는 예약된 작업을 사용하여 Auto Scaling 그룹을 포함하는 스택을 업데이트하는 경우 이 정책이 적용됩니다. CloudFormation은 그룹의 최소 크기, 최대 크기 또는 원하는 용량을 수정할 수 없으며, 이러한 값은 스택 템플릿에서 명시적으로 변경되어야 합니다. 이 정책은 예약된 규모 조정 활동을 방해할 수 있는 예상치 못한 업데이트를 방지하는 데 도움이 됩니다.

  • AWS::ElastiCache::ReplicationGroup - CloudFormation에서 전체 리소스를 대체하는 대신 샤드를 추가 또는 제거함으로써 복제 그룹의 샤드를 수정할 수 있습니다.

  • AWS::OpenSearchService::DomainAWS::Elasticsearch::Domain(레거시) – CloudFormation은 전체 리소스를 대체하지 않고도 OpenSearch Service 도메인을 OpenSearch 또는 Elasticsearch의 새 버전으로 업그레이드할 수 있습니다.

  • AWS::Lambda::Alias – CloudFormation에서 별칭 버전이 변경될 때 CodeDeploy 배포 작업을 수행할 수 있습니다.

다음 섹션에서는 각 리소스 유형에서 지원하는 UpdatePolicy 속성의 구문 및 속성을 설명합니다.

AppStream 2.0 업데이트 정책

업데이트 전에 AppStream 2.0 플릿을 중지하고 업데이트 후에 다시 시작하려면 AppStream 2.0 업데이트 정책을 사용하세요.

구문

JSON

{ "UpdatePolicy": { "StopBeforeUpdate": { "Type": "Boolean" }, "StartAfterUpdate": { "Type": "Boolean" } } }

YAML

UpdatePolicy: StopBeforeUpdate: Type: Boolean StartAfterUpdate: Type: Boolean
StopBeforeUpdate

업데이트 전에 지정된 플릿을 중지합니다.

필수 항목 여부: 아니요

StartAfterUpdate

업데이트 후 지정된 플릿을 시작합니다.

필수 항목 여부: 아니요

AutoScalingReplacingUpdate 정책

Auto Scaling 그룹 및 이 그룹에 포함된 인스턴스를 대체하려면 AutoScalingReplacingUpdate 정책을 사용합니다.

업데이트를 시도하기 전에 이전 및 새 Auto Scaling 그룹에 대한 Amazon EC2 용량이 충분한지 확인하십시오.

구문

JSON

"UpdatePolicy" : { "AutoScalingReplacingUpdate" : { "WillReplace" : Boolean } }

YAML

UpdatePolicy: AutoScalingReplacingUpdate: WillReplace: Boolean

속성

WillReplace

Auto Scaling 그룹 및 이 그룹이 포함된 인스턴스를 업데이트 중 바꿀지 여부를 지정합니다. 이를 바꾸는 동안 CloudFormation에서 새 그룹 생성이 완료될 때까지 이전 그룹을 보존합니다. 업데이트에 실패하는 경우, CloudFormation에서 이전 Auto Scaling 그룹으로 롤백하고 새 Auto Scaling 그룹을 삭제할 수 있습니다.

CloudFormation은 새 그룹을 생성하는 동안 어떠한 인스턴스도 분리 또는 연결하지 않습니다. 새 Auto Scaling 그룹이 생성된 후 CloudFormation은 정리 프로세스 중 이전 Auto Scaling 그룹을 삭제합니다.

WillReplace 파라미터를 설정하는 경우 일치하는 CreationPolicy를 지정합니다. 최소 인스턴스 수(MinSuccessfulInstancesPercent 속성으로 지정)가 Timeout 기간(CreationPolicy 정책으로 지정됨) 이내에 성공 신호를 보내지 않으면 대체 업데이트는 실패하고 CloudFormation은 이전 Auto Scaling 그룹으로 롤백합니다.

유형: 부울

필수 항목 여부: 아니요

AutoScalingRollingUpdate 정책

규모 조정 활동이 이전 인스턴스를 새 인스턴스로 점진적으로 교체할 때까지 기다리는 대신 Auto Scaling 그룹 내 인스턴스의 롤링 업데이트를 수행하려면 AutoScalingRollingUpdate 정책을 사용하세요. 이 정책을 사용하면 CloudFormation에서 전체 리소스를 교체하지 않고 Auto Scaling 그룹에 있는 인스턴스를 배치 단위로 교체할지, 아니면 한 번에 교체할지 여부를 융통성 있게 지정할 수 있습니다.

AutoScalingRollingUpdate 정책을 사용할 때 고려할 사항:

  • CloudFormation에서 업데이트를 롤백할 때 현재 스택 업데이트 전에 템플릿에 지정된 UpdatePolicy 구성을 사용합니다. 예를 들어, UpdatePolicy에서 MaxBatchSize를 1에서 10으로 변경하고 스택 업데이트를 수행했지만 업데이트가 실패했습니다. 이 경우 CloudFormation에서는 롤백할 때 최대 배치 크기로 10이 아닌 1을 사용합니다. 이 시나리오를 방지하려면 롤링 업데이트를 시작할 가능성이 높은 Auto Scaling 그룹에 업데이트가 적용되기 전에 별도의 업데이트에서 UpdatePolicy를 변경하세요.

  • CloudFormation은 롤링 업데이트를 방해하고 실패하게 할 수 있는 Amazon EC2 Auto Scaling 프로세스를 일시적으로 중단하도록 SuspendProcesses 속성을 지정할 것을 권장합니다. 자세한 내용은 CloudFormation 스택을 업데이트할 때 Auto Scaling 그룹을 올바르게 업데이트하려면 어떻게 해야 합니까?를 참조하세요.

  • CloudFormation에서는 인스턴스를 시작 또는 종료할 때 Amazon EC2 Auto Scaling 수명 주기 후크 사용을 지원합니다. 따라서 인스턴스가 다음 상태로 이동하기 전에 인스턴스에 사용자 지정 작업을 수행할 시간을 확보할 수 있습니다. 새 인스턴스가 InService 상태에 도달하도록 하려면 사용자 지정 작업을 마칠 때 CONTINUE 결과를 포함하여 수명 주기 후크를 완료하세요. 기본적으로 응답이 수신되지 않고 수명 주기 후크 제한 시간이 초과되면 인스턴스 시작이 실패하고 중단된 것으로 간주됩니다. InService 상태에 도달한 인스턴스가 없는 경우 롤링 업데이트는 결국 실패합니다.

  • 인스턴스 유지 관리 정책, 종료 정책, 스케일 인 보호와 같은 Amazon EC2 Auto Scaling 기능은 CloudFormation 롤링 업데이트와 함께 사용할 수 없습니다. 이에 따라 롤링 업데이트를 계획하세요.

  • AutoScalingRollingUpdate 정책을 사용하고 배치 그룹 설정을 제거하면 Auto Scaling 그룹 및 CloudFormation 템플릿에서 배치 그룹이 제거됩니다. 또한 이 작업은 롤링 업데이트를 트리거하므로 새 인스턴스가 배치 그룹으로 시작되지 않습니다.

구문

JSON

"UpdatePolicy" : { "AutoScalingRollingUpdate" : { "MaxBatchSize" : Integer, "MinActiveInstancesPercent" : Integer, "MinInstancesInService" : Integer, "MinSuccessfulInstancesPercent" : Integer, "PauseTime" : String, "SuspendProcesses" : [ List of processes ], "WaitOnResourceSignals" : Boolean } }

속성

MaxBatchSize

동시에 바꿀 수 있는 최대 인스턴스 수를 지정합니다.

기본값: 1

최대: 100

유형: 정수

필수 항목 여부: 아니요

MinActiveInstancesPercent

업데이트가 성공하려면 롤링 업데이트 중 해당 그룹의 원하는 용량과 비교하여 InService 상태에 있어야 하는 Auto Scaling 그룹의 인스턴스 비율을 지정합니다. 0~100 범위의 값을 지정할 수 있습니다. CloudFormation은 이를 10분의 1퍼센트 단위로 반올림합니다. 예를 들어 최소 InService 비율이 50인 5개의 인스턴스를 업데이트하는 경우 3개 이상의 인스턴스가 InService 상태여야 합니다. 인스턴스가 1시간이라는 정해진 시간 내에 InService 상태로 전환되지 않으면 CloudFormation은 인스턴스가 업데이트되지 않은 것으로 간주합니다.

UpdatePolicy에서 MinActiveInstancesPercent를 설정하면 AWS::AutoScaling::AutoScalingGroup 리소스의 DesiredCapacity 속성이 해당 Auto Scaling 그룹의 현재 원하는 용량보다 높게 설정된 경우 시작되는 인스턴스에도 영향을 미칩니다.

기본값: 100

유형: 정수

필수 항목 여부: 아니요

MinInstancesInService

CloudFormation에서 이전 인스턴스를 업데이트하는 동안 Auto Scaling 그룹 내에서 작동해야 하는 최소 인스턴스 수를 지정합니다. 이 값은 Auto Scaling 그룹의 MaxSize보다 작아야 합니다.

주의

MinInstancesInService 속성 값을 Auto Scaling 그룹의 MinSize 이상으로 설정하는 것이 좋습니다. 이렇게 하면 롤링 업데이트 중 고객 트래픽을 처리하는 인스턴스가 0개여서 발생할 수 있는 가용성 문제를 방지할 수 있습니다.

기본값: 0

유형: 정수

필수 항목 여부: 아니요

MinSuccessfulInstancesPercent

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

MinSuccessfulInstancesPercent 속성 값을 0보다 큰 값으로 설정하는 것이 좋습니다. MinSuccessfulInstancesPercent 속성이 0으로 설정되면 CloudFormation은 용량 인스턴스의 0%가 InService 상태가 될 때까지 기다립니다. MinSuccessfulInstancesPercent는 Auto Scaling 그룹 상태를 UPDATE_COMPLETE로 간주하기 전에 즉시 반환되어 스택 템플릿에 정의된 후속 리소스로 이동합니다. 다른 auto scaling이 CloudFormation 템플릿에 정의되어 있으면 동시에 업데이트됩니다. 모든 auto scaling이 InService 상태에서 한 번에 0%의 용량 인스턴스로 배포되면 0개의 인스턴스가 고객 트래픽을 처리하므로 가용성 문제가 발생합니다.

기본값: 100

유형: 정수

필수 항목 여부: 아니요

PauseTime

인스턴스에 소프트웨어 애플리케이션을 시작할 시간을 주기 위해 인스턴스 배치를 변경한 후 CloudFormation이 일시 정지하는 시간입니다.

PauseTimeISO8601 기간 형식입니다(PT#H#M#S 형식, 여기서 #은 각각 시간, 분 및 초를 나타내는 숫자임). 최대 PauseTime은 1시간입니다(PT1H).

주의

WaitOnResourceSignalstrue로 설정되면 PauseTime이 제한 시간 값으로 작동합니다. 롤링 업데이트 중 대체되는 인스턴스와 AWS::AutoScaling::AutoScalingGroup 리소스의 DesiredCapacity 속성을 늘려 추가되는 새 인스턴스에서 필요한 수의 유효한 신호를 수신하기 위해 CloudFormation이 기다리는 최대 시간을 결정합니다. CloudFormation이 예상 신호를 수신하기 전에 PauseTime을 초과하면 업데이트가 실패합니다. 최적의 결과를 얻으려면 애플리케이션의 시작 시간이 넉넉하도록 기간을 지정하세요. 업데이트를 롤백해야 하는 경우 PauseTime이 짧으면 롤백에 실패할 수 있습니다.

기본값: WaitOnResourceSignals 속성이 true로 설정된 경우 PT5M(5분)입니다. 그렇지 않으면 기본값이 설정되지 않습니다.

유형: 문자열

필수 항목 여부: 아니요

SuspendProcesses

스택 업데이트 중 일시 중지할 Auto Scaling 프로세스를 지정합니다. 프로세스를 일시 중지하면 Auto Scaling이 스택 업데이트를 방해하지 않습니다. 예를 들어, Amazon EC2 Auto Scaling에서 경고와 연결된 조정 정책을 시작하지 않도록 경보를 일시 중지할 수 있습니다. 유효한 값은 Amazon EC2 Auto Scaling 사용 설명서의 프로세스 유형을 참조하세요.

기본값: 지정되지 않음

유형: Auto Scaling 프로세스 목록

필수 항목 여부: 아니요

WaitOnResourceSignals

CloudFormation이 업데이트를 계속하기 전에 새 인스턴스의 성공 신호를 기다릴지 여부를 지정합니다. CloudFormation은 지정된 PauseTime 기간 동안 성공 신호를 기다립니다.

Auto Scaling 그룹에 신호를 보내려면 cfn-signal 도우미 스크립트를 사용합니다. Elastic Load Balancing과 관련된 Auto Scaling 그룹의 경우 cfn-init 헬퍼 스크립트를 사용하여 성공 신호를 보내기 전에 인스턴스가 정상인지 확인하는 상태 확인을 추가하는 것을 고려해 보세요. 예를 들어 GitHub 리포지토리에서 Amazon EC2 Auto Scaling 롤링 업데이트 샘플 템플릿의 verify_instance_health 명령을 참조하세요.

기본값: false

유형: 부울

필수 항목 여부: 조건부. MinSuccessfulInstancesPercent 속성을 지정하는 경우 WaitOnResourceSignals 속성을 true로 설정해야 합니다.

AutoScalingScheduledAction 정책

AWS::AutoScaling::AutoScalingGroup 리소스에 예약된 작업이 연결되어 있는 경우 CloudFormation에서 MinSize, MaxSizeDesiredCapacity 속성 업데이트를 처리하는 방법을 지정하려면 AutoScalingScheduledAction 정책을 사용합니다.

Auto Scaling 그룹의 그룹 크기 속성은 예약된 작업을 통해 언제든지 변경할 수 있습니다. Auto Scaling 그룹 및 예약된 작업을 사용하여 스택을 업데이트할 때 예약된 작업이 적용되더라도 CloudFormation은 항상 Auto Scaling 그룹의 그룹 크기 속성값을 템플릿의 AWS::AutoScaling::AutoScalingGroup 리소스에 정의된 값으로 설정합니다.

예약된 작업이 적용되는 경우 CloudFormation이 그룹 크기 속성값을 변경하지 않도록 하려면 AutoScalingScheduledAction 업데이트 정책을 사용하고 IgnoreUnmodifiedGroupSizePropertiestrue로 설정하여 사용자가 템플릿에서 MinSize, MaxSize 또는 DesiredCapacity 속성값을 수정하지 않는 한 CloudFormation에서 이러한 값을 변경하지 않도록 합니다.

구문

JSON

"UpdatePolicy" : { "AutoScalingScheduledAction" : { "IgnoreUnmodifiedGroupSizeProperties" : Boolean } }

속성

IgnoreUnmodifiedGroupSizeProperties

true이면 CloudFormation에서 스택 업데이트 중 현재 Auto Scaling 그룹과 템플릿의 AWS::AutoScaling::AutoScalingGroup 리소스에 설명된 Auto Scaling 그룹 간의 그룹 크기 속성 차이를 무시합니다. 템플릿에서 그룹 크기 속성값을 수정하면 CloudFormation은 수정된 값을 사용하고 Auto Scaling 그룹을 업데이트합니다.

기본값: false

유형: 부울

필수 항목 여부: 아니요

UseOnlineResharding 정책

전체 AWS::ElastiCache::ReplicationGroup 리소스를 대체하는 대신 샤드를 추가 또는 제거함으로써 복제 그룹의 샤드를 수정하려면 UseOnlineResharding 업데이트 정책을 사용합니다.

UseOnlineReshardingtrue로 설정된 경우 AWS::ElastiCache::ReplicationGroup 리소스의 NumNodeGroupsNodeGroupConfiguration 속성을 업데이트할 수 있고, CloudFormation에서는 중단 없이 이러한 속성을 업데이트합니다. UseOnlineReshardingfalse로 설정되거나 지정되지 않은 경우 NumNodeGroupsNodeGroupConfiguration 속성을 업데이트하면 CloudFormation에서 전체 AWS::ElastiCache::ReplicationGroup 리소스를 교체합니다.

UseOnlineResharding 업데이트 정책에는 속성이 없습니다.

UseOnlineResharding 업데이트 정책을 true로 설정할 때 고려해야 할 사항은 다음과 같습니다.

  • 해당 스택 업데이트 작업의 유일한 업데이트로 NumNodeGroupsNodeGroupConfiguration 속성에 대한 업데이트를 수행하는 것이 좋습니다.

    복제 그룹의 노드 그룹 구성 업데이트는 리소스 집약적 작업입니다. 스택 업데이트가 실패하는 경우 CloudFormation에서는 복제 그룹의 노드 그룹 구성에 대한 변경 사항을 롤백하지 않습니다. 하지만 CloudFormation에서 실패한 업데이트 작업의 일부분으로 변경된 나머지 속성을 롤백합니다.

  • 노드 그룹을 업데이트하려면 모든 노드 그룹을 식별해야 합니다.

    NodeGroupConfiguration 속성을 지정하는 경우 CloudFormation에서 중단 없이 노드 수를 업데이트하도록 각 노드 그룹 구성에 대한 NodeGroupId 또한 지정해야 합니다.

    복제 그룹 생성 시 각 노드 그룹에 대한 ID를 지정하지 않는 경우 ElastiCache에서 자동으로 각 노드 그룹에 대한 ID를 생성합니다. 중단 없이 복제 그룹을 업데이트하려면 ElastiCache 콘솔(https://console.aws.amazon.com/elasticache/) 또는 DescribeReplicationGroups를 사용하여 복제 그룹의 모든 노드 그룹에 대한 ID를 검색합니다. 그런 다음 샤드 추가 또는 제거 시도 전에 스택 템플릿의 각 노드 그룹에 대한 ID를 지정합니다.

    참고

    스택 템플릿에 복제 그룹을 생성할 때 지정한 각 노드 그룹에 대한 ID를 포함시키는 것이 모범 사례입니다.

    추가로 중단 없이 노드 수를 업데이트하려면 각 NodeGroupConfiguration에 대한 PrimaryAvailabilityZone, ReplicaAvailabilityZonesReplicaCount 속성을 정확히 지정해야 합니다. 다시 한 번 ElastiCache 콘솔(https://console.aws.amazon.com/elasticache/) 또는 DescribeReplicationGroups를 사용하여 각 노드 그룹에 대한 실제 값을 검색하고 이를 스택 템플릿의 값과 비교할 수 있습니다. 별도의 스택 업데이트로, 또는 노드 그룹의 수를 변경하는 동일한 스택 업데이트의 일부분으로 노드 그룹의 속성값을 업데이트할 수 있습니다.

    중단 없이 노드 그룹의 수를 업데이트하기 위해 UseOnlineResharding 업데이트 정책을 사용할 때 ElastiCache에서는 지정된 수의 슬롯 사이에 키스페이스를 균등하게 분산합니다. 이는 나중에 업데이트할 수 없습니다. 따라서 이러한 방식으로 노드 그룹의 수를 업데이트한 이후 스택 템플릿에서 각 NodeGroupConfigurationSlots 속성에 지정된 값을 제거해야 합니다. 더 이상 각 노드 그룹의 실제 값을 반영하지 않기 때문입니다.

  • 실제 노드 그룹 제거 결과는 다를 수 있습니다.

    현재 노드 그룹의 수보다 작은 NumNodeGroups 값을 지정하는 경우 CloudFormation에서는 ElastiCache에 지정된 노드 수에 도달하는 데 필요한 만큼 노드 그룹을 제거하도록 지시합니다. 하지만 ElastiCache에서 항상 원하는 수의 노드 그룹을 제거할 수는 없습니다. ElastiCache에서 원하는 수의 노드 그룹을 제거할 수 없는 경우 CloudFormation에서는 스택 이벤트를 생성하여 이를 사용자에게 알립니다. ElastiCache에서 노드 그룹을 전혀 제거할 수 없는 경우 CloudFormation 리소스 업데이트는 실패합니다.

복제 그룹 수정에 대한 자세한 내용을 알아보려면 Amazon ElastiCache API 참조ModifyReplicationGroupShardConfiguration을 참조하세요.

구문

JSON

"UpdatePolicy" : { "UseOnlineResharding" : Boolean }

YAML

UpdatePolicy: UseOnlineResharding: Boolean

EnableVersionUpgrade 정책

전체 AWS::OpenSearchService::Domain 또는 AWS::Elasticsearch::Domain 리소스를 대체하지 않고 OpenSearch Service 도메인을 새 버전의 OpenSearch 또는 Elasticsearch로 업그레이드하려면 EnableVersionUpgrade 업데이트 정책을 사용합니다.

EnableVersionUpgradetrue로 설정된 경우 AWS::OpenSearchService::Domain 리소스의 EngineVersion 속성이나 레거시 AWS::Elasticsearch::Domain 리소스의 ElasticsearchVersion 속성을 업데이트할 수 있으며 CloudFormation는 중단 없이 해당 속성을 업데이트합니다. EnableVersionUpgradefalse로 설정되거나 지정되지 않은 경우 EngineVersion 속성 ElasticsearchVersion 속성을 업데이트하면 CloudFormation에서 전체 AWS::OpenSearchService::Domain/AWS::Elasticsearch::Domain 리소스가 대체됩니다.

EnableVersionUpgrade 업데이트 정책에는 속성이 없습니다.

자세한 내용은 Amazon OpenSearch Service 개발자 안내서의 OpenSearch Service 도메인 업그레이트를 참조하세요.

구문

JSON

"UpdatePolicy" : { "EnableVersionUpgrade" : Boolean }

YAML

UpdatePolicy: EnableVersionUpgrade: Boolean

CodeDeployLambdaAliasUpdate 정책

AWS::Lambda::Alias 리소스 버전이 변경될 때 CodeDeploy 배포 작업을 수행하려면 CodeDeployLambdaAliasUpdate 업데이트 정책을 사용하십시오.

구문

JSON

"UpdatePolicy" : { "CodeDeployLambdaAliasUpdate" : { "AfterAllowTrafficHook" : String, "ApplicationName" : String, "BeforeAllowTrafficHook" : String, "DeploymentGroupName" : String } }

속성

AfterAllowTrafficHook

트래픽 라우팅이 완료된 후 실행시킬 Lambda 함수의 이름.

필수 항목 여부: 아니요

유형: 문자열

ApplicationName

CodeDeploy 애플리케이션의 이름.

필수 항목 여부: 예

유형: 문자열

BeforeAllowTrafficHook

트래픽 라우팅 시작 전에 실행시킬 Lambda 함수의 이름.

필수 항목 여부: 아니요

유형: 문자열

DeploymentGroupName

CodeDeploy 배포 그룹의 이름. 트래픽 전환 정책을 설정하는 장소입니다.

필수 항목 여부: 예

유형: 문자열

AWS::Lambda::Alias 리소스의 UpdatePolicy 속성을 지정하는 방법에 대한 예제는 Lambda 별칭 업데이트 정책 단원을 참조하십시오.

예시

다음 예제에서는 Auto Scaling 그룹에 업데이트 정책을 추가하는 방법과 메타데이터 업데이트 시 가용성 유지 관리 방법을 보여줍니다.

auto scaling에 UpdatePolicy 추가

다음 예에서는 업데이트 정책을 추가하는 방법을 보여 줍니다. 업데이트 중 Auto Scaling 그룹은 인스턴스를 두 개씩 한 배치로 업데이트하고 최소 한 개의 인스턴스는 계속 작동하도록 합니다. WaitOnResourceSignals 플래그가 설정되었으므로 Auto Scaling 그룹에서는 그룹에 추가된 새 인스턴스를 대기합니다. 새 인스턴스는 Auto Scaling 그룹이 인스턴스의 다음 배치를 업데이트하기 전에 해당 그룹에 신호를 보내야 합니다.

JSON

"ASG" : { "Type":"AWS::AutoScaling::AutoScalingGroup", "Properties":{ "VPCZoneIdentifier":[ "subnetIdAz1", "subnetIdAz2", "subnetIdAz3" ], "LaunchTemplate":{ "LaunchTemplateId":{ "Ref":"logicalName" }, "Version":{ "Fn::GetAtt":[ "logicalName", "LatestVersionNumber" ] } }, "MaxSize":"4", "MinSize":"1" }, "UpdatePolicy":{ "AutoScalingScheduledAction":{ "IgnoreUnmodifiedGroupSizeProperties":"true" }, "AutoScalingRollingUpdate":{ "MinInstancesInService":"1", "MaxBatchSize":"2", "WaitOnResourceSignals":"true", "PauseTime":"PT10M", "SuspendProcesses":[ "HealthCheck", "ReplaceUnhealthy", "AZRebalance", "AlarmNotification", "ScheduledActions", "InstanceRefresh" ] } } }

YAML

ASG: Type: 'AWS::AutoScaling::AutoScalingGroup' Properties: VPCZoneIdentifier: - subnetIdAz1 - subnetIdAz2 - subnetIdAz3 LaunchTemplate: LaunchTemplateId: !Ref logicalName Version: !GetAtt logicalName.LatestVersionNumber MaxSize: '4' MinSize: '1' UpdatePolicy: AutoScalingScheduledAction: IgnoreUnmodifiedGroupSizeProperties: 'true' AutoScalingRollingUpdate: MinInstancesInService: '1' MaxBatchSize: '2' WaitOnResourceSignals: 'true' PauseTime: PT10M SuspendProcesses: - HealthCheck - ReplaceUnhealthy - AZRebalance - AlarmNotification - ScheduledActions - InstanceRefresh

AutoScalingReplacingUpdate 정책

다음 예에서는 연결된 Auto Scaling 그룹이 업데이트 중 대체되도록 강제하는 정책을 선언합니다. 업데이트에 성공하려면 (MinSuccessfulPercentParameter 파라미터로 지정된) 비율의 인스턴스가 Timeout 기간 내에 성공 신호를 보내야 합니다.

JSON

"UpdatePolicy" : { "AutoScalingReplacingUpdate" : { "WillReplace" : true } }, "CreationPolicy" : { "ResourceSignal" : { "Count" : { "Ref" : "ResourceSignalsOnCreate"}, "Timeout" : "PT10M" }, "AutoScalingCreationPolicy" : { "MinSuccessfulInstancesPercent" : { "Ref" : "MinSuccessfulPercentParameter" } } }

YAML

UpdatePolicy: AutoScalingReplacingUpdate: WillReplace: true CreationPolicy: ResourceSignal: Count: !Ref 'ResourceSignalsOnCreate' Timeout: PT10M AutoScalingCreationPolicy: MinSuccessfulInstancesPercent: !Ref 'MinSuccessfulPercentParameter'

cfn-init 헬퍼 스크립트에 대한 메타데이터 업데이트 시 가용성 유지 관리

인스턴스에 소프트웨어 애플리케이션을 설치할 때 AWS::CloudFormation::Init 메타데이터 키와 cfn-init 헬퍼 스크립트를 사용하여 auto scaling의 인스턴스를 부트스트랩할 수 있습니다. CloudFormation은 패키지를 설치하고, 명령을 실행하고, 메타데이터에 설명된 기타 부트스트랩 작업을 수행합니다.

메타데이터만 업데이트하는 경우(예: 패키지를 다른 버전으로 업데이트하는 경우) cfn-hup 헬퍼 데몬을 사용하여 업데이트를 감지해 적용할 수 있습니다. 그러나 cfn-hup 데몬은 각 인스턴스에서 독립적으로 실행됩니다. 이 데몬이 모든 인스턴스에서 동시에 실행되면 업데이트 중 애플리케이션 또는 서비스를 사용하지 못할 수 있습니다. 가용성을 보장하기 위해 CloudFormation이 인스턴스를 한 번에 한 배치씩 업데이트하도록 롤링 업데이트를 강제 적용할 수 있습니다.

중요

롤링 업데이트를 강제 적용하려면 CloudFormation에서 새 인스턴스를 생성한 다음 이전 인스턴스를 삭제해야 합니다. 이전 인스턴스에 저장된 모든 정보는 손실됩니다.

롤링 업데이트를 강제 실행하려면 시작 구성 리소스의 논리적 ID를 변경한 다음 스택과 원본 로직 ID(예: 연결된 auto scaling)를 가리키는 참조를 업데이트합니다. CloudFormation은 auto scaling에 대한 롤링 업데이트를 트리거하여 모든 인스턴스를 대체합니다.

원본 템플릿

"LaunchConfig": { "Type" : "AWS::AutoScaling::LaunchConfiguration", "Metadata" : { "Comment" : "Install a simple PHP application", "AWS::CloudFormation::Init" : { ... } } }

업데이트된 논리적 ID

"LaunchConfigUpdateRubygemsPkg": { "Type" : "AWS::AutoScaling::LaunchConfiguration", "Metadata" : { "Comment" : "Install a simple PHP application", "AWS::CloudFormation::Init" : { ... } } }

Lambda 별칭 업데이트 정책

다음은 UpdatePolicy 리소스의 AWS::Lambda::Alias 속성을 지정하는 방법에 대한 예제입니다. 정책으로 전달되는 애플리케이션 및 배포 그룹이 배포와 관련된 모든 세부 정보를 정의합니다.

JSON

"Alias": { "Type": "AWS::Lambda::Alias", "Properties": { "FunctionName": { "Ref": "LambdaFunction" }, "FunctionVersion": { "Fn::GetAtt": [ "FunctionVersionTwo", "Version" ] }, "Name": "MyAlias" }, "UpdatePolicy": { "CodeDeployLambdaAliasUpdate": { "ApplicationName": { "Ref": "CodeDeployApplication" }, "DeploymentGroupName": { "Ref": "CodeDeployDeploymentGroup" }, "BeforeAllowTrafficHook": { "Ref": "PreHookLambdaFunction" }, "AfterAllowTrafficHook": { "Ref": "PreHookLambdaFunction" } } } }

YAML

Alias: Type: 'AWS::Lambda::Alias' Properties: FunctionName: !Ref LambdaFunction FunctionVersion: !GetAtt FunctionVersionTwo.Version Name: MyAlias UpdatePolicy: CodeDeployLambdaAliasUpdate: ApplicationName: !Ref CodeDeployApplication DeploymentGroupName: !Ref CodeDeployDeploymentGroup BeforeAllowTrafficHook: !Ref PreHookLambdaFunction AfterAllowTrafficHook: !Ref PreHookLambdaFunction
프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.