AWS CloudFormation 스택 세트에 있는 스택 인스턴스가 업데이트 중에도 PENDING 상태로 유지됩니다.
간략한 설명
스택 세트를 업데이트하면 대부분의 인스턴스가 업데이트되어 CURRENT 상태로 표시됩니다. 하지만 업데이트의 나머지 인스턴스 중 일부는 PENDING 상태로 표시될 수 있습니다.
이 동작은 CloudFormation에서 스택 세트 장애를 처리하는 기능 때문에 발생합니다. 해당 기능은 ListStackInstances API를 수정하여 스택 인스턴스의 STATUS 대신 DETAILED STATUS를 표시합니다.
참고: 스택 세트 작업에는 스택 세트 업데이트와 스택 세트 내에서의 스택 인스턴스 삭제가 포함됩니다.
PENDING 상태는 스택 세트 인스턴스에 대한 특정 배포 대상 없이 스택 세트를 업데이트할 때 발생합니다. 배포 대상이 없는 경우 PENDING 상태의 인스턴스는 최신 스택 세트 템플릿으로 업데이트되기를 기다립니다.
이 문제를 해결하려면 CloudFormation 콘솔 또는 AWS Command Line Interface(AWS CLI)를 사용하여 스택 세트를 업데이트하십시오.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
CloudFormation 콘솔 사용
스택 세트를 업데이트할 때는 현재 스택 템플릿을 사용하십시오. 배포 옵션 설정 페이지에서 스택 세트를 생성하는 데 사용한 계정의 AWS 계정 ID를 입력하고 AWS 리전을 선택합니다. 스택을 업데이트하면 인스턴스 상태가 OUTDATED에서 CURRENT로 변경됩니다.
AWS CLI 사용
다음 단계를 완료합니다.
- list-stack-instance 명령을 실행하여 PENDING 상태인 인스턴스를 확인합니다.
aws cloudformation list-stack-instances --stack-set-name XXXXXXXXXXXXX
--filters Name=DETAILED_STATUS,Values=PENDING
참고: stack-set-name을 스택 세트 이름으로 바꾸십시오.
- update-stack-set 명령을 실행하여 스택 세트와 PENDING 상태인 관련 인스턴스를 업데이트합니다.
aws cloudformation update-stack-set \
--stack-set-name my-stack-set \
--use-previous-template \
--accounts xxxxxx \
--regions xxxxxx \
--administrator-role-arn xxxxxxxxxxxx
참고: stack-set-name을 스택 세트 이름으로 바꾸고 계정 ID, 리전 및 관리자 역할의 ARN을 포함하십시오. use-previous-template 옵션은 현재 스택 템플릿을 사용하여 스택 세트를 업데이트합니다.