스택 템플릿 업데이트
CloudFormation 스택의 리소스 또는 속성을 수정하려면 스택의 템플릿을 업데이트해야 합니다. 해당 스택의 기존 템플릿으로 시작하여 변경 사항을 적용합니다. 소스 제어 시스템에 저장된 템플릿이 있으면 해당 템플릿의 사본을 시작 지점으로 사용합니다. 아니면 CloudFormation에서 템플릿의 사본을 가져올 수 있습니다.
스택의 파라미터 또는 설정(예: 스택의 Amazon SNS 주제)만 변경하려면 사본을 가져오지 않고 기존 템플릿을 재사용할 수 있습니다.
Infrastructure Composer 또는 텍스트 편집기를 사용하여 CloudFormation 스택 템플릿을 업데이트할 수 있습니다.
Infrastructure Composer를 사용하여 기존 스택 템플릿을 업데이트하려면 다음을 수행하세요.
AWS Management Console에 로그인하여 https://console.aws.amazon.com/cloudformation
에서 AWS CloudFormation 콘솔을 엽니다. -
스택 페이지에서 업데이트하려는 스택 이름을 선택하세요.
-
템플릿 탭을 선택한 다음 인프라 컴포저에서 보기를 선택하세요.
CloudFormation에서는 Infrastructure Composer에서 템플릿을 엽니다.
-
다음 방법 중 하나를 사용하여 템플릿을 업데이트하세요.
-
캔버스 인터페이스: 여기서 리소스 팔레트로부터 끌어서 놓을 수 있습니다. 카드를 두 번 클릭하여 리소스 속성 패널을 열어 리소스를 구성하세요. 필요에 따라 리소스를 연결하세요. Canvas 인터페이스 사용에 대한 자세한 지침은 How to compose in AWS 인프라 컴포저를 참조하세요.
-
템플릿 인터페이스: 캔버스에서 템플릿 인터페이스로 전환합니다. 템플릿 코드에 대한 인라인 업데이트를 수행하세요. 필요에 따라 JSON 및 YAML 형식 간 전환을 수행하세요.
-
-
검증을 선택하여 템플릿에서 구문 오류가 있는지 확인하세요.
-
변경 사항을 CloudFormation으로 내보낼 준비가 되면 템플릿 업데이트를 선택하세요.
AWS CLI를 사용하여 기존 스택 템플릿을 업데이트하는 방법
-
업데이트할 스택의 템플릿을 가져오려면 get-template CLI 명령을 사용합니다.
-
템플릿을 복사하고 텍스트 파일에 붙여 넣은 다음 수정한 후 저장합니다. 템플릿만 복사합니다. 이 명령에서는 템플릿이 따옴표 안에 지정되지만, 따옴표는 복사하지 마십시오. 템플릿 자체는 열기 괄호에서 시작하여 닫기 괄호로 끝납니다. 이 파일에 스택 리소스에 대한 변경 내용을 지정합니다.
템플릿에 변경 사항을 적용할 때는 다음 사항에 유의하세요.
-
업데이트를 지원하지 않는 리소스에서 사용되는 파라미터를 추가, 수정 또는 삭제할 수 없습니다.
-
대부분 리소스의 경우, 리소스의 논리적 이름을 변경하면 해당 리소스가 삭제되고 새 리소스로 대체됩니다. 이름이 변경된 리소스에 종속된 다른 리소스는 모두 업데이트해야 하며 대체될 수도 있습니다. 그 밖의 리소스는 업데이트를 시작하기 위해 (논리적 이름뿐만 아니라) 속성도 업데이트해야 합니다.
-
일부 리소스에는 특정 속성에 설정할 수 있는 값에 대한 제약 조건이 있을 수 있습니다. 예를 들어, RDS 데이터베이스 인스턴스의
AllocatedStorage
속성에 대한 변경은 현재 값보다 커야 합니다. 업데이트에서 이러한 규칙을 위반하면 해당 부분이 실패합니다. -
하나의 리소스를 업데이트하면 해당 리소스를 참조하는 다른 리소스에도 영향을 미칠 수 있습니다. Ref 함수 또는 Fn::GetAtt 함수 같은 함수를 사용하여 다른 리소스를 기반으로 속성을 설정하는 경우 CloudFormation에서는 참조된 리소스가 변경되면 참조하는 리소스도 업데이트합니다.
-
특정 리소스 속성 업데이트에 따른 영향에 대한 자세한 내용은 AWS 리소스 및 속성 유형 참조를 참조하세요. 각 속성마다 업데이트의 영향은 다음 중 하나입니다.
-
validate-template CLI 명령을 사용하거나 콘솔에서 템플릿을 지정하여 템플릿의 JSON 또는 YAML 구문을 확인할 수 있습니다. 콘솔은 유효성 검사를 자동으로 수행합니다. 하지만 이러한 방법은 템플릿의 구문만 확인하고 리소스에 지정한 속성 값이 해당 리소스에 유효한지는 확인하지 않습니다. 더 복잡한 유효성 검사 또는 모범 사례 검사의 경우 CloudFormation Linter(cfn-lint)
및 CloudFormation Rain(rain fmt) 같은 추가 도구를 사용할 수 있습니다.
참고
가끔 CloudFormation에서는 적용하려는 특정 변경 사항을 허용하지 않고, 변경이 허용되지 않는다고 알려줍니다. 이 메시는 비동기적으로 발생할 수 있지만, 리소스가 CloudFormation에 의해 기본적으로 비확정적인 순서에 따라 생성 및 업데이트됩니다.