템플릿 구조 - AWS CloudFormation

템플릿 구조

템플릿은 AWS 인프라를 설명하는 JSON 또는 YAML 형식의 텍스트 파일입니다. 다음 예제에서는 AWS CloudFormation 템플릿 구조 및 관련 섹션을 보여줍니다.

JSON

다음 예제에서는 JSON 형식의 템플릿 조각을 보여줍니다.

{ "AWSTemplateFormatVersion" : "version date", "Description" : "JSON string", "Metadata" : { template metadata }, "Parameters" : { set of parameters }, "Rules" : { set of rules }, "Mappings" : { set of mappings }, "Conditions" : { set of conditions }, "Transform" : { set of transforms }, "Resources" : { set of resources }, "Outputs" : { set of outputs } }

YAML

다음 예제에서는 YAML 형식의 템플릿 조각을 보여줍니다.

--- AWSTemplateFormatVersion: "version date" Description: String Metadata: template metadata Parameters: set of parameters Rules: set of rules Mappings: set of mappings Conditions: set of conditions Transform: set of transforms Resources: set of resources Outputs: set of outputs

템플릿 섹션

템플릿에는 여러 주요 섹션이 포함되어 있습니다. Resources 섹션만 필수 섹션입니다. 템플릿의 일부 섹션은 임의 순서대로 배열할 수 있습니다. 하지만 템플릿을 작성할 때 한 섹션의 값이 이전 섹션의 값을 참조할 수도 있으므로 다음 목록의 논리적 순서를 사용하는 것이 유용할 수 있습니다.

포맷 버전(선택 사항)

템플릿이 따르는 AWS CloudFormation 템플릿 버전입니다. 템플릿 포맷 버전은 API 또는 WSDL 버전과 같지 않습니다. 템플릿 포맷 버전은 API 및 WSDL 버전과 상관없이 변경될 수 있습니다.

Description(선택 사항)

템플릿을 설명하는 텍스트 문자열입니다. 이 섹션은 항상 템플릿 포맷 버전 섹션 다음에 이어져야 합니다.

Metadata(선택 사항)

템플릿에 대한 추가 정보를 제공하는 객체입니다.

Parameters(선택 사항)

(스택을 생성하거나 업데이트할 때) 실행 시간에 템플릿에 전달하는 값입니다. 템플릿의 ResourcesOutputs 섹션에서 파라미터를 참조할 수 있습니다.

규칙(선택 사항)

스택을 생성하거나 업데이트할 때 템플릿에 전달된 파라미터 또는 파라미터의 조합을 검증합니다.

Mappings(선택 사항)

조건부 파라미터 값을 지정하는 데 사용할 수 있는 키와 관련 값의 매핑으로, 조회 테이블과 비슷합니다. ResourcesOutputs 섹션의 Fn::FindInMap 내장 함수를 사용하여 키를 해당 값으로 매핑할 수 있습니다.

Conditions(선택 사항)

스택 생성 또는 업데이트 시 특정 리소스 속성에 값이 할당되는지 또는 특정 리소스가 생성되는지 여부를 제어하는 조건입니다. 예를 들면 스택이 프로덕션용인지 테스트 환경용인지에 따라 달라지는 리소스를 조건부로 생성할 수 있습니다.

Transform(선택 사항)

서버리스 애플리케이션(Lambda 기반 애플리케이션이라고도 함)의 경우 사용할 AWS Serverless Application Model(AWS SAM)의 버전을 지정합니다. 변환을 지정할 경우 AWS SAM 구문을 사용하여 템플릿에 리소스를 선언할 수 있습니다. 이 모델은 사용할 수 있는 구문과 처리 방식을 정의합니다.

또한 AWS::Include 변환을 사용하여 기본 AWS CloudFormation 템플릿과는 별도로 저장되는 템플릿 코드 조각으로 작업할 수 있습니다. Amazon S3 버킷에 코드 조각 파일을 저장한 다음 여러 템플릿 간에 함수를 재사용할 수 있습니다.

Resources(필수)

Amazon Elastic Compute Cloud 인스턴스 또는 Amazon Simple Storage Service 버킷 같은 스택 리소스 및 해당 속성을 지정합니다. 템플릿의 ResourcesOutputs 섹션에서 리소스를 참조할 수 있습니다.

Outputs(선택 사항)

스택의 속성을 볼 때마다 반환되는 값을 설명합니다. 예를 들면 S3 버킷 이름 출력을 선언하고 나서 aws cloudformation describe-stacks AWS CLI 명령을 호출하여 해당 이름을 볼 수 있습니다.

참고

템플릿을 작성할 때 여러 리소스 섹션을 사용하는 것과 같이 중복된 주요 섹션을 사용하지 않도록 합니다. CloudFormation은 템플릿을 수락할 수 있지만 템플릿을 처리할 때 정의되지 않은 동작을 하고 리소스를 잘못 프로비저닝하거나 설명할 수 없는 오류를 반환할 수 있습니다.