피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Fn::GetStackOutput 도입을 통한 Cross-Region 참조 구조의 Native 최적화
Fn::GetStackOutput: How CloudFormation and CDK Solved Cross-Region References Together
AI 요약
Context
CloudFormation의 Fn::ImportValue가 동일 리전 내에서만 작동함에 따라 Cross-Region 리소스 참조 시 Custom Resource와 Lambda, SSM Parameter Store를 조합한 복잡한 우회 구조를 사용함. 이러한 강한 참조(Strong Reference) 방식은 리소스 간 의존성 잠금 현상인 Deadly Embrace를 유발하여 스택 업데이트 및 삭제를 불가능하게 만드는 아키텍처적 병목을 생성함.
Technical Solution
- Custom Resource 기반의 중간 상태 저장소(SSM)를 제거하고 CloudFormation 엔진이 배포 시점에 직접 값을 해결하는 Fn::GetStackOutput Native Primitive 도입
- Producer Stack의 출력값을 Consumer Stack이 리전과 RoleArn을 명시하여 직접 조회하는 Direct Resolution 구조 설계
- Lambda 기반의 CrossRegionExportWriter/Reader 로직을 플랫폼 레벨로 내재화하여 Cold Start 및 Timeout 리스크 제거
- CDK 2.254.0 버전부터 해당 Primitive를 Construct Reference 모델에 통합하여 개발자 경험(DX) 추상화 계층 구현
- Strong Reference에서 Weak Reference로의 점진적 이전을 위해 'both' 컨텍스트 설정을 통한 2단계 마이그레이션 전략 적용
실천 포인트
- Cross-Region/Account 참조 시 Custom Resource 기반 우회책 대신 Fn::GetStackOutput 사용 검토 - 스택 간 의존성 잠금(Deadly Embrace) 방지를 위해 Weak Reference 도입 여부 확인 - 기존 강한 참조 제거 시 'both' 설정 단계 거쳐 서비스 중단 없는 마이그레이션 수행