

# CloudFormation 템플릿 섹션
<a name="template-anatomy"></a>

모든 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)](https://github.com/awslabs/serverless-application-specification)의 버전을 지정합니다. 변환을 지정할 경우 AWS SAM 구문을 사용하여 템플릿에 리소스를 선언할 수 있습니다. 이 모델은 사용할 수 있는 구문과 처리 방식을 정의합니다. 또한 `AWS::Include` 변환을 사용하여 기본 CloudFormation 템플릿과는 별도로 저장되는 템플릿 스니펫을 포함시킬 수 있습니다.

다음 주제에서는 각 섹션 사용에 대한 자세한 정보와 예제를 제공합니다.

**Topics**
+ [Resources](resources-section-structure.md)
+ [Parameters](parameters-section-structure.md)
+ [Outputs](outputs-section-structure.md)
+ [Mappings](mappings-section-structure.md)
+ [Metadata](metadata-section-structure.md)
+ [Rules](rules-section-structure.md)
+ [Conditions](conditions-section-structure.md)
+ [Transform](transform-section-structure.md)
+ [포맷 버전](format-version-structure.md)
+ [Description](template-description-structure.md)