Auto Scaling 그룹을 업데이트했지만 AWS CloudFormation 스택 업데이트 중 예상한 결과를 얻지 못했습니다.
간략한 설명
AWS::AutoScaling::AutoScalingGroup 리소스는 UpdatePolicy 속성을 사용하여 AWS CloudFormation 스택을 업데이트할 때 Auto Scaling 그룹 리소스가 업데이트되는 방식을 정의합니다. UpdatePolicy 속성에 대해 올바른 설정을 구성하지 않은 경우, 롤링 업데이트로 인해 예기치 않은 결과가 발생할 수 있습니다.
AutoScalingRollingUpdate 정책을 사용하여 AWS CloudFormation이 Auto Scaling 그룹에 대한 롤링 업데이트를 처리하는 방법을 제어할 수 있습니다. 이 일반적인 접근방식은 동일한 Auto Scaling 그룹을 유지한 다음, 설정한 파라미터에 따라 이전 인스턴스를 대체합니다.
참고: 다음 해결 방법은 AutoScalingRollingUpdate 정책에만 중점을 둡니다. AutoScalingReplacingUpdate 정책을 사용하여 오류 없이 스택을 즉시 롤백할 수 있습니다.
AutoScalingRollingUpdate 정책은 다음 구성 옵션을 지원합니다.
"UpdatePolicy": {
"AutoScalingRollingUpdate": {
"MaxBatchSize": Integer,
"MinInstancesInService": Integer,
"MinSuccessfulInstancesPercent": Integer,
"PauseTime": String,
"SuspendProcesses": [ List of processes ],
"WaitOnResourceSignals": Boolean
}
}
해결 방법
스택 업데이트 중 무엇이 Auto Scaling 그룹의 올바른 업데이트를 방지하는지 알려면 다음의 문제 해결 시나리오를 적절히 따르십시오.
성공 신호와 함께 문제가 발생하는 것을 방지하도록 WaitOnResourceSignals 및 PauseTime 구성
AutoScalingRollingUpdate 정책에서 WaitOnResourceSignals 속성을 [false]로 설정합니다.
참고: WaitOnResourceSignals를 [true]로 설정하면 [PauseTime]이 제한 시간 값으로 변경됩니다. AWS CloudFormation은 [PauseTime] 값으로 지정된 최대 시간이 될 때까지 성공 신호 수신을 기다립니다. 신호가 수신되지 않으면 AWS CloudFormation이 업데이트를 취소합니다. 그런 다음 AWS CloudFormation은 동일한 PauseTime 값을 포함하여 동일한 설정으로 스택을 롤백합니다. 자세한 내용은 Auto Scaling 그룹에 UpdatePolicy 추가를 참조하십시오.
스택 롤백을 방지하기 위해 MinSuccessfulInstancesPercent 구성
롤링 업데이트 중에 많은 수의 인스턴스를 교체하고 각 인스턴스에 대한 성공 신호를 기다리는 경우, AutoScalingRollingUpdate 정책에서 MinSuccessfulInstancesPercent 속성의 값을 설정합니다.
참고: [MinSuccessfulInstancesPercent] 속성을 설정하면 하나의 인스턴스만 시작하지 못한 경우에 AWS CloudFormation이 전체 스택을 롤백하는 것을 방지합니다. 자세한 내용은 UpdatePolicy Attribute를 참조하세요.
Auto Scaling 그룹에 대한 예상치 않은 변경을 방지하도록 SuspendProcesses 구성
롤링 업데이트 중에 다음 Auto Scaling 프로세스를 일시 중지합니다.
- HealthCheck
- ReplaceUnhealthy
- AZRebalance
- AlarmNotification
- ScheduledActions
중요: Elastic Load Balancing과 함께 Auto Scaling 그룹을 사용하는 경우, Launch, Terminate, AddToLoadBalancer 프로세스를 일시 중지하지 마십시오. 이러한 프로세스는 롤링 업데이트에 필요합니다.
참고: 예기치 않은 조정 작업으로 인해 롤링 업데이트 중 Auto Scaling 그룹의 상태가 변경되는 경우, 업데이트가 실패할 수 있습니다. 오류는 AWS CloudFormation에 의한 Auto Scaling 그룹의 일관되지 않은 보기로 인해 발생할 수 있습니다.