Amazon 내부에서는 2000년대 중반 "두 피자 팀"(Two-Pizza Team) 원칙이 나왔다. 팀 규모는 피자 두 판을 먹을 수 있는 인원(5~8명)으로 제한하고, 각 팀은 독립적으로 서비스를 소유하고 배포한다. 이 원칙이 마이크로서비스 아키텍처의 씨앗이 됐다.
CloudFormation에서도 같은 고민이 있다. 수천 줄짜리 단일 Template는 "한 팀이 전부 소유하고 이해하는" 범위를 넘어선다. 팀 경계에 따라 IaC를 분리하고, 팀 간에 필요한 정보를 안전하게 공유하며, 조직 전체에 표준을 배포하는 방법이 필요하다. Nested Stack, Cross-Stack Reference, StackSets가 이 문제를 해결한다. 이 세 가지는 각각 "하나의 애플리케이션 내 모듈화", "팀 간 리소스 공유", "조직 전체 표준 배포"라는 서로 다른 규모의 문제를 다룬다.
Nested Stack은 하나의 Stack 안에 다른 Stack을 리소스(AWS::CloudFormation::Stack)로 포함하는 패턴이다. 큰 Template를 작은 컴포넌트로 분리해 재사용성을 높이고, 각 컴포넌트의 변경 영향 범위를 제한한다.
Nested Stack의 기술적 동작: