CloudFormation 템플릿 작업
AWS CloudFormation 템플릿은 스택의 일부로 생성, 업데이트 또는 삭제하려는 AWS 리소스를 정의합니다. 템플릿에는 여러 섹션이 있지만 Resources 섹션은 하나 이상의 리소스를 선언해야 하는 유일한 필수 섹션입니다.
다음 방법을 사용하여 템플릿을 생성할 수 있습니다.
-
AWS 인프라 컴포저 - 템플릿 디자인을 위한 시각적 인터페이스입니다.
-
텍스트 편집기 - JSON 또는 YAML 구문으로 직접 템플릿을 작성합니다.
-
IaC 생성기 - 계정에 프로비저닝된 리소스 중 현재 CloudFormation에서 관리하지 않는 리소스에서 템플릿을 생성합니다. IaC 생성기는 사용자 리전의 Cloud Control API에서 지원하는 다양한 리소스 유형과 함께 작동합니다.
이 섹션에서는 CloudFormation 템플릿의 다양한 섹션을 사용하는 방법과 스택 템플릿 생성을 시작하는 방법에 대한 포괄적인 가이드를 제공합니다. 다음과 같은 주제를 다룹니다.
주제
템플릿이 저장되는 위치
Amazon S3 버킷
CloudFormation 템플릿을 Amazon S3 버킷에 저장할 수 있습니다. 스택을 생성하거나 업데이트할 때 직접 업로드하는 대신 템플릿의 S3 URL을 지정할 수 있습니다.
AWS Management Console 또는 AWS CLI를 통해 템플릿을 직접 업로드하는 경우 S3 버킷이 자동으로 생성됩니다. 자세한 내용은 CloudFormation 콘솔에서 스택 생성 섹션을 참조하세요.
Git 리포지토리
Git 동기화를 사용하면 Git 리포지토리에 템플릿을 저장할 수 있습니다. 스택을 생성하거나 업데이트할 때 직접 업로드하거나 S3 URL을 참조하는 대신 템플릿이 포함된 Git 리포지토리 위치와 브랜치를 지정할 수 있습니다. CloudFormation은 지정된 리포지토리와 브랜치를 자동으로 모니터링하여 템플릿 변경을 확인합니다. 자세한 내용은 Git 동기화를 사용하여 리포지토리 소스 코드에서 스택 생성 섹션을 참조하세요.
템플릿 유효성 검사
배포 전에 템플릿을 검증하여 문제를 조기에 발견하고 수정하세요. CloudFormation 서비스와 이 섹션의 도구는 템플릿의 여러 부분을 검사합니다. 이들을 함께 사용할 수 있습니다.
validate-template CLI 명령을 사용하거나 AWS Management Console에 템플릿을 지정하여 템플릿이 유효한 JSON 또는 YAML을 사용하는지 확인할 수 있습니다. 콘솔은 자동으로 이 검사를 수행합니다. 이러한 서비스 측 검사는 다음 도구에서 제공하는 추가 속성, 보안 또는 모범 사례 검사를 실행하지 않습니다.
-
CloudFormation 언어 서버 – 편집기에서 템플릿을 작성하는 동안 제안, 설명서 및 검증 피드백을 확인할 수 있습니다.
-
CloudFormation Linter – 명령줄, 편집기 또는 자동 빌드에서 리소스 속성, 허용되는 값 및 일반적인 문제를 검사할 수 있습니다.
-
CloudFormation 검증 – 명령줄이나 라이브러리에서 로컬 오프라인 검사를 실행하고, 사용자 지정 Rego
또는 Guard 규칙을 추가할 수 있습니다. AWS CDK는 템플릿을 합성한 후 자동으로 이 검증자를 사용합니다. -
CloudFormation Guard – 조직의 보안, 규정 준수 및 거버넌스 요구 사항에 따라 정책 규칙을 작성하고 템플릿을 검사할 수 있습니다.
AI 코딩 에이전트와 함께 사용
AI 코딩 에이전트는 GitHub의 Agent Toolkit for AWSaws-cloudformation 스킬을 사용하여 CloudFormation 템플릿 작성, 검증 및 문제 해결을 도울 수 있습니다. 설치 지침은 에이전트 설정 가이드을 확인하세요.
검증 범위 이해
로컬 도구는 템플릿과 사용자 제공 규칙을 검사합니다. AWS 계정 및 AWS 리전의 현재 리소스, 권한 및 할당량으로 배포가 성공할 것이라고 보장할 수 없습니다. 배포하기 전에 변경 세트를 검토하고 CloudFormation 서비스에서 보고된 문제를 해결하세요.
템플릿 시작하기
CloudFormation 템플릿 생성을 시작하려면 다음 단계를 따릅니다.
-
리소스 선택 - EC2 인스턴스, VPC, 보안 그룹 등과 같이 스택에 포함하려는 AWS 리소스를 식별합니다.
-
템플릿 작성 - 리소스와 속성을 정의하여 JSON 또는 YAML 형식으로 템플릿을 작성합니다.
-
템플릿 저장 -
.json,.yaml,.txt등의 파일 확장자를 사용하여 템플릿을 로컬에 저장합니다. -
템플릿 유효성 검사 - 템플릿 유효성 검사 섹션에서 설명하는 방법을 사용하여 템플릿의 유효성을 검사합니다.
-
스택 생성 - 유효성 검사가 완료된 템플릿을 사용하여 스택을 생성합니다.
CloudFormation 템플릿 참조 사용 계획
템플릿을 작성할 때 AWS 리소스 및 속성 유형 참조에서 다양한 리소스 유형에 대한 자세한 구문에 대한 설명서를 찾을 수 있습니다.
스택 템플릿에는 런타임까지 사용할 수 없는 속성 값을 할당하는 내재 함수와 리소스의 동작을 제어하는 특수 속성이 필요한 경우가 많습니다. 템플릿을 작성할 때 다음 리소스를 참조하여 지침을 확인하세요.
-
내장 함수 참조 - 일반적으로 사용되는 일부 내장 함수는 다음과 같습니다.
-
Ref- 리소스의 파라미터 또는 물리적 ID 값을 가져옵니다. -
Sub- 문자열의 자리 표시자를 실제 값으로 대체합니다. -
GetAtt- 템플릿의 리소스에서 속성 값을 반환합니다. -
Join- 값 세트를 단일 문자열로 결합합니다.
-
-
리소스 속성 참조 - 일반적으로 사용되는 일부 특수 속성은 다음과 같습니다.
-
DependsOn- 이 속성을 사용하면 한 리소스 다음에 다른 리소스 하나를 생성하도록 지정할 수 있습니다. -
DeletionPolicy- 이 속성을 사용하면 CloudFormation에서 리소스 삭제를 처리하는 방법을 지정할 수 있습니다.
-
샘플 템플릿
CloudFormation은 시작하는 데 사용할 수 있는 오픈 소스 스택 템플릿을 제공합니다. 자세한 내용은 GitHub의 CloudFormation Sample Templates
이러한 템플릿은 프로덕션에 바로 사용할 수 있는 것이 아니라는 점에 유의하세요. 시간을 내어 이러한 프레임워크의 작동 방식을 알아보고, 필요에 맞게 조정하고, 회사의 규정 준수 기준을 충족하는지 확인해야 합니다.
이 리포지토리의 각 템플릿은 CloudFormation Linter