문제 (Problem)
스택 작업(Stack Operation)이 실패하면서 스택 인스턴스 상태가 OUTDATED
로 표시됨.
원인 (Cause)
주요 원인은 다음과 같다
- 권한 부족 (Insufficient Permissions)
타겟 계정(Target Account)에 리소스를 생성할 권한이 부족함. 적절한 IAM 권한이 필요하다. - 템플릿 오류 (Template Errors)
AWS CloudFormation 템플릿에 오류가 포함되어 있음. - 글로벌 리소스의 이름이 겹친다 (Global Resource Name Conflict)
S3 버킷과 같은 글로벌 리소스는 전역적으로 고유해야 합니다. 동일한 이름으로 생성하려고 하면 실패한다. - 잘못된 타겟 계정 번호 (Invalid Target Account Number)
설정된 타겟 계정 번호가 존재하지 않거나 잘못 입력됨. - 신뢰 관계 없음 (Lack of Trust Relationship)
관리자 계정(Administrator Account)과 타겟 계정(Target Account) 간에 신뢰 관계가 설정되지 않음. - 리소스 한도 초과 (Resource Limit Exceeded)
타겟 계정에서 이미 리소스 최대 한도를 초과했음. - 스택 세트 한도 초과 (Stack Set Limit Exceeded)
스택 세트에서 허용된 최대 스택 수를 초과했음.
Troubleshooting AWS CloudFormation StackSets - AWS CloudFormation
Troubleshooting AWS CloudFormation StackSets This topic contains some common AWS CloudFormation StackSets issues, and suggested solutions for those issues. Common reasons for stack operation failure Problem: A stack operation failed, and the stack instance
docs.aws.amazon.com
🤔 문제
SysOps 관리자가 AWS CloudFormation StackSets를 사용하여 동일한 AWS 계정의 두 개의 AWS 리전에서 AWS 리소스를 생성하고 있습니다. 하나의 리전에서 stack 작업이 실패하고 stack instance 상태가 OUTDATED로 반환됩니다. 이 실패의 원인은 무엇인가요?
- CloudFormation 템플릿이 로컬 디스크에서 변경되었지만 CloudFormation에 제출되지 않았습니다.
- CloudFormation 템플릿이 고유하지 않은 글로벌 리소스를 생성하려고 합니다.
- Stack이 아직 해당 리전에 배포되지 않았습니다.
- SysOps 관리자가 구버전의 CloudFormation API를 사용하고 있습니다.
정답
정답. 2번
CloudFormation StackSet을 통해 리소스를 생성할 때, 리소스 이름이 고유해야 한다. 예를 들어 S3는 글로벌 리소스이기 때문에 S3 버킷 이름이 겹치면 안 된다. 하지만 StackSet으로 리소스를 생성할 때 리전별로 같은 S3 버킷 이름으로 생성하려고 할 때 OUTDATED 에러가 나올 수 있다. 그렇기 때문에 리전별로 S3 버킷 이름이 다르게 만들어야 한다.
예시) 아래와 같은 코드는 문제를 야기할 수 있다.
Resources:
MyBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: my-unique-bucket
리전별로 S3 버킷 이름 다르게 만들기
BucketName: !Sub 'my-bucket-${AWS::Region}-${AWS::AccountId}'
1번 (오답 ❌)
CloudFormation StackSets는 로컬 디스크에 저장된 템플릿이 아니라, S3에 업로드되거나 AWS Management Console에서 등록된 템플릿을 사용한다.
따라서 로컬 디스크 변경 사항은 StackSets의 동작에 영향을 미치지 않는다.
4번 (오답 ❌)
CloudFormation API의 버전은 StackSets 작업에 영향을 미치지 않는다.
'클라우드(AWS) > SOA-C02' 카테고리의 다른 글
[AWS] S3 Server Access Logging이란? 쉽게 정리 (0) | 2025.01.21 |
---|---|
[AWS] [RDS] Backtracking vs. PITR (Point in time recovery) 쉽게 비교 정리 (0) | 2025.01.20 |
[AWS] RDS Performance Insights란? 쉽게 정리 (0) | 2025.01.18 |
[AWS] CloudFormation Custom Resource 란? 쉽게 정리 (0) | 2025.01.17 |
[AWS] Lambda에서 사용되는 주요 CloudWatch metrics(지표) 쉽게 정리 (0) | 2025.01.16 |