CloudFormation 템플릿 섹션
모든 CloudFormation 템플릿은 하나 이상의 섹션으로 구성되며, 각 섹션에는 특정한 목적이 있습니다.
Resources 섹션은 모든 CloudFormation 템플릿에 필요하고 템플릿의 핵심을 구성합니다. 이 섹션은 Amazon EC2 인스턴스 또는 Amazon S3 버킷 같은 스택 리소스 및 해당 속성을 지정합니다. 각 리소스는 고유한 논리적 ID, 유형 및 특정 구성 세부 정보로 정의됩니다.
Parameters 섹션은 선택 사항이지만 템플릿을 보다 유연하게 만드는 데 중요한 역할을 합니다. 이를 통해 사용자는 스택을 생성하거나 업데이트할 때 런타임에서 값을 전달할 수 있습니다. Resources
및 Outputs
섹션에서 이러한 파라미터를 참조할 수 있으므로 템플릿 자체를 변경하지 않고도 사용자 지정할 수 있습니다. 예를 들어, 파라미터를 사용하여 배포마다 달라지는 인스턴스 유형이나 환경 설정을 지정할 수 있습니다.
선택 사항이기도 한 Outputs 섹션에서는 스택의 속성을 볼 때 반환되는 값을 정의합니다. Outputs는 리소스 식별자 또는 URL과 같은 유용한 정보를 제공하며, 이러한 정보는 운영 목적이나 다른 스택과의 통합에 활용할 수 있습니다. 이 섹션을 통해 사용자는 템플릿에 의해 생성된 리소스에 대한 중요한 세부 정보를 검색하고 사용할 수 있습니다.
기타 선택 사항인 섹션에는 조건부 값을 관리하는 조회 테이블과 같은 기능을 하는 Mappings이 있습니다. 매핑을 사용하면 키-값 페어를 정의하고 Resources
및 Outputs
섹션의 Fn::FindInMap
내장 함수와 함께 이를 사용할 수 있습니다. 이는 AWS 리전 또는 환경 등의 조건에 따라 구성을 조정해야 하는 시나리오에 유용합니다.
Metadata 및 Rules 섹션은 자주 사용되지 않지만 추가 기능을 제공합니다. Metadata
는 템플릿에 대한 추가 정보를 포함할 수 있고, Rules
는 스택 생성 또는 업데이트 중에 파라미터 또는 파라미터 조합의 유효성을 검사하여 특정 기준을 충족하는지 확인합니다. Conditions 섹션에서는 환경 유형과 같은 조건에 따라 특정 리소스가 생성되는지 또는 속성에 값이 할당되는지 제어하여 유연성을 더욱 높입니다.
마지막으로 Transform 섹션은 템플릿 처리 중 매크로를 적용하는 데 사용됩니다. 서버리스 애플리케이션(Lambda 애플리케이션이라고도 함)의 경우 사용할 AWS Serverless Application Model(AWS SAM)AWS::Include
변환을 사용하여 기본 CloudFormation 템플릿과는 별도로 저장되는 템플릿 스니펫을 포함시킬 수 있습니다.
다음 주제에서는 각 섹션 사용에 대한 자세한 정보와 예제를 제공합니다.