View a markdown version of this page

템플릿 스튜디오를 사용하여 템플릿을 시각적으로 편집 - AWS CloudFormation

템플릿 스튜디오를 사용하여 템플릿을 시각적으로 편집

템플릿 스튜디오는 CloudFormation 콘솔의 템플릿 편집기입니다. 템플릿에 선언된 리소스의 다이어그램과 함께 템플릿을 텍스트로 표시합니다. 템플릿을 편집하면 변경 사항에 맞게 다이어그램이 다시 그려집니다. 콘솔을 벗어나지 않고도 템플릿을 검증하고, YAML과 JSON 간에 형식을 변환하고, Amazon S3에 저장할 수 있습니다.

템플릿 텍스트가 기준이 되는 원본입니다. 다이어그램은 해당 텍스트를 시각적으로 표현한 것으로, 별도로 편집할 수 있는 영역이 아닙니다. 모든 변경 사항은 템플릿에서 직접 적용합니다.

고려 사항

템플릿 스튜디오를 사용할 때는 다음 사항에 유의하세요.

  • 다이어그램이 아니라 템플릿에서 작성합니다. 다이어그램에는 템플릿에 선언된 리소스와 리소스 간의 참조 관계가 표시됩니다. 다이어그램을 편집하여 리소스를 추가하거나 구성할 수는 없습니다.

  • 편집 내용은 자동으로 저장되지 않습니다. 저장하지 않은 변경 사항이 있는 상태에서 다른 페이지로 이동하려고 하면 템플릿 스튜디오에서 확인을 요청합니다. 페이지를 나가거나 새로 고치면 저장하지 않은 변경 사항은 삭제됩니다. 페이지를 나가기 전에 템플릿을 Amazon S3에 저장하거나 복사 또는 다운로드하세요.

  • 템플릿을 YAML에서 JSON으로 변환하면 주석이 삭제됩니다. JSON에는 주석을 작성하는 구문이 없기 때문입니다. 다시 YAML로 변환해도 주석은 복원되지 않습니다.

  • 현재 템플릿 스튜디오에서는 크기가 51,200바이트(50KiB)를 초과하는 초안에 대해 CloudFormation 검증을 수행할 수 없습니다. 현재 Validate 작업은 TemplateBody 파라미터를 통해 초안을 전달하며, 이 파라미터에는 이 제한이 적용됩니다. 이는 템플릿 전체에 적용되는 크기 제한이 아닙니다. 템플릿을 저장한 다음 CloudFormation 할당량을 준수하는 범위에서 스택 작업에 사용할 수 있습니다. 자세한 내용은 템플릿 검증을 참조하세요.

  • 저장하면 계정의 버킷에 템플릿이 기록되므로, 저장한 템플릿에는 표준 Amazon S3 요금이 청구됩니다. 자세한 내용은 Amazon S3 요금을 참조하세요.

  • 리소스 다이어그램은 캔버스가 캔버스 또는 둘 다 보기로 표시된 경우에만 다운로드할 수 있습니다.

템플릿 스튜디오에 필요한 권한

필요한 권한은 템플릿의 소스와 수행하는 작업에 따라 달라집니다.

cloudformation:GetTemplate

기존 스택의 템플릿을 열 때 필요합니다. 편집하려는 템플릿이 포함된 스택에 대한 액세스 권한을 부여합니다.

s3:GetObject

자격 증명을 사용하여 Amazon S3에서 템플릿을 읽을 때 필요합니다. 소스 템플릿 객체에 대한 액세스 권한을 부여합니다. 미리 서명된 URL을 사용하면 URL에 포함된 권한 부여 정보가 사용됩니다.

cloudformation:ValidateTemplate

검증을 선택할 때 필요합니다.

s3:PutObject

템플릿을 저장할 때 필요합니다. 이 권한의 범위는 모든 리소스가 아니라 대상 버킷(예: arn:aws:s3:::destination-bucket/*)의 객체로 제한합니다.

s3:CreateBucket

콘솔에서 존재하지 않는 대상 버킷을 생성할 때만 필요합니다. 콘솔 관리형 버킷이나 직접 지정한 버킷 이름을 사용할 수 있습니다. 기존 버킷을 재사용하는 경우에는 이 권한이 필요하지 않습니다.

s3:ListBucket

직접 지정한 기존 버킷에 저장할 때 필요합니다. 템플릿 스튜디오는 업로드하기 전에 HeadBucket을 사용하여 액세스 권한, 예상 버킷 소유자 및 버킷의 AWS 리전을 확인합니다.

콘솔 관리형 버킷의 경우 이 권한은 선택 사항입니다. 이 권한이 없어도 저장 대화 상자에는 버킷 이름이 표시됩니다. 저장하려면 s3:PutObject가 필요하며, 버킷을 생성해야 하는 경우에는 s3:CreateBucket도 필요합니다.

템플릿 스튜디오 열기

템플릿 스튜디오를 여는 위치에 따라 열리는 템플릿과 저장 후 수행되는 작업이 달라집니다.

새 템플릿을 시작하려면
  1. CloudFormation 콘솔을 엽니다.

  2. 화면 상단의 탐색 모음에서 배포할 AWS 리전을 선택합니다.

  3. 탐색 창에서 템플릿 스튜디오를 선택합니다.

스택을 생성하는 동안 템플릿을 빌드하려면
  1. 스택 생성 페이지에서 템플릿 스튜디오로 빌드를 선택합니다.

  2. 템플릿을 빌드한 다음 저장 후 계속을 선택합니다.

  3. 스택 마법사는 저장한 템플릿을 사용하여 계속 진행되므로 템플릿을 별도로 업로드할 필요가 없습니다.

기존 스택의 템플릿을 편집하려면
  1. 스택 페이지에서 스택 이름을 선택합니다.

  2. 스택을 직접 업데이트하거나 변경 세트를 생성합니다.

  3. 템플릿 준비 페이지에서 템플릿 스튜디오에서 열기를 선택합니다. 스택의 현재 템플릿이 열립니다.

  4. 저장 후 계속을 선택하여 편집한 템플릿과 함께 업데이트 또는 변경 세트로 돌아갑니다.

콘솔의 다른 위치에서도 템플릿이 표시되는 곳이라면 템플릿 스튜디오에서 열기를 선택하여 해당 템플릿을 편집할 수 있습니다.

템플릿 및 다이어그램 작업

템플릿 스튜디오를 열면 템플릿과 다이어그램이 나란히 표시됩니다. 화면에 표시할 내용을 선택하려면 보기 제어 기능을 사용합니다.

템플릿

템플릿만 전체 너비로 표시합니다. 다이어그램 없이 템플릿을 읽거나 작성할 때 사용합니다.

캔버스

다이어그램만 전체 너비로 표시합니다. 다이어그램에 전체 너비가 필요한 대형 템플릿에서 사용합니다.

둘 다

템플릿과 다이어그램을 함께 표시합니다. 두 영역 사이의 구분선을 드래그하여 각 영역의 공간을 조정합니다.

다이어그램은 서로 관련된 리소스를 그룹화하고, 한 리소스가 Ref, Fn::GetAtt, Fn::Sub 또는 DependsOn을 통해 다른 리소스를 참조하는 경우 연결선을 표시합니다. 어떤 리소스에서도 참조하지 않는 리소스는 독립적으로 표시되므로, 실수로 연결되지 않은 리소스를 쉽게 식별할 수 있습니다.

참고

예를 들어, 세 함수가 동일한 IAM 역할을 수임할 수 있습니다. 다이어그램은 각 함수 내부에 해당 역할을 표시하지만, 템플릿은 역할이 하나만 선언합니다. 몇 개의 리소스가 존재하는지 확인하려면 템플릿을 살펴보세요.

YAML과 JSON 간 변환

저장하는 형식에 따라 템플릿 스튜디오가 Amazon S3에 기록하는 객체의 파일 이름과 콘텐츠 유형이 결정됩니다.

편집 중인 템플릿을 변환하려면
  1. 현재 사용 중인 형식이 표시된 형식 제어를 선택합니다.

  2. 다른 형식을 선택합니다.

  3. YAML에서 JSON으로 변환하면 주석을 유지할 수 없으므로 확인 메시지가 표시됩니다. 계속 진행하려면 변환을 선택합니다.

중요

JSON에는 주석을 작성하는 구문이 없습니다. 주석이 포함된 YAML 템플릿을 JSON으로 변환하면 해당 주석이 삭제되며, 다시 YAML로 변환해도 주석은 복원되지 않습니다. 변환 후에도 유지해야 하는 내용이 있다면 변환 전에 복사해 두세요.

템플릿을 읽을 수 없는 상태에서는 변환할 수 있을 만큼 완전한 템플릿이 존재하지 않으므로 형식 제어를 사용할 수 없습니다. 먼저 템플릿의 오류를 수정하세요.

입력 중 구문 오류

편집기는 템플릿을 작성하는 동안 구문을 검사하고, 읽을 수 없는 부분, 즉 닫히지 않은 대괄호, 잘못된 들여쓰기, 중복 키 등에 밑줄을 표시합니다. 밑줄 위로 마우스를 가져가면 문제를 확인할 수 있습니다. 한 줄에 여러 문제가 있는 경우 번호를 매겨 각 문제를 구분합니다.

이 검사는 템플릿의 내용이 아니라 구문을 확인하는 것입니다. 편집기는 어떤 리소스 유형이 있는지 또는 각 리소스 유형에서 어떤 속성을 사용하는지 알지 못하므로 YAML 구문이 완벽하게 올바른 템플릿이라도 CloudFormation에서만 확인할 수 있는 오류가 있을 수 있습니다. 이 오류를 확인하려면 검증을 선택합니다.

템플릿 검증

검증은 스택 작업에 템플릿을 사용하기 전에 편집기에서 템플릿의 구문을 검사하고 CloudFormation을 통해 템플릿을 확인합니다. 두 검사 모두 저장하지 않은 변경 사항을 포함하여 현재 초안을 사용합니다. CloudFormation 검사가 성공하더라도 편집기에서 보고한 구문 오류가 무시되는 것은 아닙니다.

참고

템플릿 스튜디오는 TemplateBody 파라미터를 사용하여 초안을 ValidateTemplate API로 보냅니다. 이 파라미터에는 51,200바이트(50KiB)의 제한이 있습니다.

초안의 크기가 이 제한을 초과하면 템플릿 스튜디오는 CloudFormation 요청을 보내지 않습니다. 따라서 CloudFormation 검사를 사용할 수 없지만, 이것이 템플릿이 유효하지 않다는 의미는 아닙니다. 편집기에서는 여전히 구문 오류를 보고할 수 있습니다.

동일한 API는 TemplateURL을 통해 최대 1MB의 템플릿도 지원합니다. 템플릿 스튜디오는 URL 기반 검증을 위해 편집 중인 초안을 업로드하지 않습니다. 템플릿을 Amazon S3에 저장한 다음 CloudFormation 할당량을 준수하는 범위에서 스택 작업을 통해 검증할 수 있습니다.

편집 중인 템플릿을 검증하려면
  1. 검증을 선택합니다.

  2. 두 검사를 모두 통과한 템플릿은 유효로 표시됩니다.

  3. 어느 한 검사에서라도 오류가 발견되면 검증 메시지에서 오류를 확인합니다. 편집기 오류에는 줄 번호와 열 번호가 표시됩니다. 편집기에서 오류를 수정하고 다시 검증합니다.

Amazon S3에 템플릿 저장

CloudFormation은 스택 작업에 사용할 템플릿을 Amazon S3에서 읽으므로 템플릿을 저장해야 콘솔의 다른 기능에서도 해당 템플릿을 사용할 수 있습니다.

저장된 템플릿에 일반 텍스트 보안 암호를 포함하는 대신, Secrets Manager에 저장된 보안 암호 또는 Systems Manager Parameter Store의 보안 문자열에 대한 동적 참조를 사용합니다. 자세한 내용은 동적 참조를 사용하여 다른 서비스에 저장된 값 가져오기 섹션을 참조하세요.

편집 중인 템플릿을 저장하려면
  1. 저장 후 계속을 선택합니다.

  2. 저장 위치를 확인합니다. 기본적으로 템플릿은 현재 AWS 리전에서 업로드된 템플릿을 위해 CloudFormation이 관리하는 Amazon S3 버킷에 저장됩니다. 버킷이 아직 없는 경우, CloudFormation은 저장 시 버킷을 생성하고 나중에 저장하는 템플릿에도 동일한 버킷을 재사용합니다.

    1. 다른 저장 위치를 직접 선택하려면 다른 버킷 사용을 선택하고 버킷 이름을 입력합니다. 버킷이 아직 없는 경우 생성됩니다.

  3. 확인 및 계속을 선택합니다.

참고

Amazon S3에 저장된 템플릿에는 어느 버킷에 저장하든 표준 Amazon S3 요금이 부과됩니다. 자세한 내용은 Amazon S3 요금을 참조하세요.

저장하기 위해 검증을 성공적으로 통과할 필요는 없습니다. 검증에서 오류가 발견되면 템플릿 스튜디오는 오류가 있더라도 저장할 것인지 확인합니다. 저장한다고 해서 오류가 수정되는 것은 아닙니다. 스택 작업에 템플릿을 사용하기 전에 오류를 검토하고 수정하세요.

템플릿이나 다이어그램 복사 또는 다운로드

콘솔에서 템플릿이나 다이어그램을 내보내려면 템플릿 작업을 선택합니다.

템플릿 복사

편집기에 표시된 템플릿을 클립보드에 복사합니다.

템플릿 다운로드

현재 편집 중인 형식으로 템플릿을 파일로 저장합니다.

리소스 다이어그램 다운로드

다이어그램을 PNG 이미지로 저장합니다. 이 이미지는 다이어그램의 캡처이므로 다이어그램이 화면에 있을 때만 이 기능을 사용할 수 있습니다.