템플릿 개요 - AWS CloudFormation

템플릿 개요

AWS CloudFormation 템플릿은 스택의 일부로 생성, 업데이트 또는 삭제하려는 AWS 리소스를 정의합니다. 템플릿에는 여러 섹션이 있지만 Resources 섹션은 하나 이상의 리소스를 선언해야 하는 유일한 필수 섹션입니다.

  • 사용 가능한 모든 섹션이 포함된 전체 템플릿 구조는 템플릿 형식의 내용을 참조하세요.

  • 각 섹션에 대한 자세한 내용은 템플릿 섹션의 내용을 참조하세요.

템플릿은 JSON(JavaScript Object Notation) 또는 YAML 표준을 사용하여 특정 형식 지정 규칙을 따르는 파일입니다. JSON은 더 장황하고 엄격한 반면, YAML은 가독성과 유연성이 더 뛰어납니다. 자세한 내용은 템플릿 형식 단원을 참조하십시오.

템플릿이 저장되는 위치

Amazon S3 버킷

CloudFormation 템플릿을 Amazon S3 버킷에 저장할 수 있습니다. 스택을 생성하거나 업데이트할 때 직접 업로드하는 대신 템플릿의 S3 URL을 지정할 수 있습니다.

AWS Management Console 또는 AWS CLI를 통해 템플릿을 직접 업로드하는 경우 S3 버킷이 자동으로 생성됩니다. 자세한 내용은 CloudFormation 콘솔에서 스택 생성 단원을 참조하십시오.

Git 리포지토리

Git 동기화를 사용하면 Git 리포지토리에 템플릿을 저장할 수 있습니다. 스택을 생성하거나 업데이트할 때 직접 업로드하거나 S3 URL을 참조하는 대신 템플릿이 포함된 Git 리포지토리 위치와 브랜치를 지정할 수 있습니다. CloudFormation은 지정된 리포지토리와 브랜치를 자동으로 모니터링하여 템플릿 변경을 확인합니다.

템플릿 유효성 검사

구문 유효성 검사

validate-template CLI 명령을 사용하거나 콘솔에서 템플릿을 지정하여 템플릿의 JSON 또는 YAML 구문을 확인할 수 있습니다. 콘솔은 유효성 검사를 자동으로 수행합니다. 하지만 이러한 방법은 템플릿의 구문만 확인하고 리소스에 지정한 속성 값은 확인하지 않습니다.

추가 유효성 검사 도구

더 복잡한 유효성 검사 및 모범 사례 검사의 경우 다음과 같은 추가 도구를 사용할 수 있습니다.

  • CloudFormation Linter(cfn-lint) - 리소스 공급자 스키마를 기준으로 템플릿 유효성을 검사합니다. 리소스 속성의 유효한 값과 모범 사례를 검사하는 것이 포함됩니다.

  • CloudFormation Rain(rain fmt) - CloudFormation 템플릿을 일관된 표준으로 형식을 지정하거나 템플릿을 JSON에서 YAML로(또는 YAML에서 JSON으로) 형식을 재지정합니다. YAML을 사용할 때 주석을 보존하고 가능한 경우 내장 함수 사용을 짧은 구문으로 전환합니다.

템플릿 시작하기

CloudFormation 템플릿 생성을 시작하려면 다음 단계를 따릅니다.

  1. 리소스 선택 - EC2 인스턴스, VPC, 보안 그룹 등과 같이 스택에 포함하려는 AWS 리소스를 식별합니다.

  2. 템플릿 작성 - 리소스와 속성을 정의하여 JSON 또는 YAML 형식으로 템플릿을 작성합니다.

  3. 템플릿 유효성 검사 - 템플릿 유효성 검사 섹션에서 설명하는 방법을 사용하여 템플릿의 유효성을 검사합니다.

  4. 스택 생성 - 유효성 검사가 완료된 템플릿을 사용하여 스택을 생성합니다.

추가 리소스

  • AWS 리소스 및 속성 유형 참조에서는 다양한 리소스 유형을 선언하기 위한 구문을 제공합니다.

  • 내장 함수 참조에서는 문자열 결합 또는 템플릿 내의 다른 리소스 참조와 같은 작업을 수행하는 데 사용할 수 있는 함수를 문서화합니다. 일반적으로 사용되는 내장 함수는 다음과 같습니다.

    • Ref - 리소스의 파라미터 또는 물리적 ID 값을 가져옵니다.

    • Sub - 문자열의 자리 표시자를 실제 값으로 대체합니다.

    • GetAtt - 템플릿의 리소스에서 속성 값을 반환합니다.

    • Join - 값 세트를 단일 문자열로 결합합니다.

  • 리소스 속성 참조에서는 다음을 포함하여 사용할 수 있는 특수 속성을 문서화합니다.

    • DependsOn - 이 속성을 사용하면 한 리소스 다음에 다른 리소스 하나를 생성하도록 지정할 수 있습니다.

    • DeletionPolicy - 이 속성을 사용하면 CloudFormation에서 리소스 삭제를 처리하는 방법을 지정할 수 있습니다.

    • Metadata - 이 속성을 사용하면 리소스와 함께 구조화된 데이터를 지정할 수 있습니다.