스택 템플릿 수정 - AWS CloudFormation

스택 템플릿 수정

스택 템플릿에 선언된 리소스 및 속성을 수정하려면 스택의 템플릿을 수정해야 합니다. 원하는 리소스만 업데이트하려면 기존 스택용 템플릿에서 출발하여 그 템플릿을 업데이트합니다. 소스 제어 시스템에서 템플릿을 관리하려면 해당 템플릿의 사본에서 출발합니다. 아니면 AWS CloudFormation에서 스택 템플릿의 사본을 가져올 수 있습니다.

스택의 파라미터 또는 설정(스택의 Amazon SNS 주제)만 수정하려면 기존 스택 템플릿을 재사용할 수 있습니다. 스택 템플릿의 사본을 가져오거나 스택 템플릿을 수정할 필요가 없습니다.

참고

템플릿에 지원되지 않는 변경 사항이 포함되어 있는 경우 AWS CloudFormation에서는 변경이 허용되지 않는다는 메시지를 반환합니다. 이 메시는 비동기적으로 발생할 수 있지만, 리소스가 AWS CloudFormation에 의해 기본적으로 비확정적인 순서에 따라 생성 및 업데이트됩니다.

스택 템플릿 업데이트(콘솔)

  1. AWS CloudFormation 콘솔Stacks(스택) 페이지에서 업데이트할 스택의 이름을 클릭합니다.

  2. 선택한 스택의 스택 세부 정보 창에서 템플릿 창을 선택하고 Designer에서 보기를 클릭합니다.

    AWS CloudFormation은 AWS CloudFormation Designer에서 스택 템플릿의 사본을 엽니다.

  3. 템플릿을 수정합니다.

    AWS CloudFormation Designer 끌어서 놓기 인터페이스 또는 통합 JSON 및 YAML 편집기를 사용하여 템플릿을 수정할 수 있습니다. AWS CloudFormation Designer 사용에 대한 자세한 내용을 알아보려면 AWS CloudFormation Designer란 무엇인가요? 섹션을 참조하세요.

    업데이트할 리소스만 수정합니다. 업데이트하려는 리소스 및 속성에 대해 현재 스택 구성과 동일한 값을 사용합니다. 다음 작업 중 하나를 완료하여 템플릿을 수정할 수 있습니다.

    • 새 리소스를 추가하거나 기존 리소스를 제거합니다.

      대부분 리소스의 경우, 리소스의 논리적 이름을 변경하면 해당 리소스가 삭제되고 새 리소스로 대체됩니다. 이름이 변경된 리소스에 종속된 다른 리소스는 모두 업데이트해야 하며 대체될 수도 있습니다. 그 밖의 리소스는 업데이트를 시작하기 위해 (논리적 이름뿐만 아니라) 속성도 업데이트해야 합니다.

    • 기존 리소스의 속성을 추가, 수정 또는 삭제합니다.

      특정 리소스 속성 업데이트에 따른 영향에 대한 자세한 내용을 알아보려면 AWS 리소스 유형 참조를 참조하세요. 각 속성마다 업데이트의 영향은 다음 중 하나입니다.

    • 리소스에 대한 속성(Metadata, DependsOn, CreationPolicy, UpdatePolicyDeletionPolicy)을 추가, 수정 또는 삭제합니다.

      중요

      CreationPolicy 또는 UpdatePolicy 속성을 자체적으로 업데이트할 수 없습니다. 이들 속성은 리소스를 추가, 수정 또는 삭제하는 변경 내용을 포함할 때만 업데이트할 수 있습니다. 예를 들면 리소스의 메타데이터 속성을 추가하거나 수정할 수 있습니다.

    • 파라미터 선언을 추가, 수정 또는 삭제합니다. 하지만 업데이트를 지원하지 않는 리소스에서 사용되는 파라미터를 추가, 수정 또는 삭제할 수 없습니다.

    • 매핑 선언을 추가, 수정 또는 삭제합니다.

      중요

      매핑의 값이 스택에서 사용되고 있지 않은 경우 매핑을 자체적으로 업데이트할 수 없습니다. 리소스를 추가, 수정 또는 삭제하는 변경 내용을 포함해야 합니다. 예를 들면 리소스의 메타데이터 속성을 추가하거나 수정할 수 있습니다. 스택에서 사용 중인 매핑 값을 업데이트하는 경우 다른 변경을 수행하여 업데이트를 시작할 필요가 없습니다.

    • 조건 선언을 추가, 수정 또는 삭제합니다.

      중요

      조건은 자체적으로 업데이트할 수 없습니다. 조건은 리소스를 추가, 수정 또는 삭제하는 변경 내용을 포함할 때만 업데이트할 수 있습니다. 예를 들면 리소스의 메타데이터 속성을 추가하거나 수정할 수 있습니다.

    • 출력 값 선언을 추가, 수정 또는 삭제합니다.

    일부 리소스 또는 속성에 속성 값에 대한 제한이나 이러한 값에 대한 변경 내용이 있을 수 있습니다. 예를 들면, AWS::RDS::DBInstance 리소스의 AllocatedStorage 속성에 대한 변경은 현재 설정보다 더 커야 합니다. 업데이트에 지정된 값이 이러한 제약을 충족하지 않으면 해당 리소스의 업데이트가 실패합니다. AllocatedStorage 변경에 대한 구체적인 제약은 ModifyDBInstance를 참조하십시오.

    리소스에 대한 업데이트는 다른 리소스의 속성에 영향을 줄 수 있습니다. Ref 함수 또는 Fn::GetAtt 함수를 사용하여 업데이트된 리소스의 속성을 템플릿에 있는 다른 리소스의 속성 값으로 지정한 경우, AWS CloudFormation은 변경된 속성에 대한 참조가 들어 있는 리소스도 업데이트합니다. 예를 들어 AWS::RDS::DBInstance 리소스의 MasterUsername 속성을 업데이트했고 Ref 함수를 사용하여 DB 인스턴스 이름에 대한 참조를 포함한 UserData 속성이 있는 AWS::AutoScaling::LaunchConfiguration 리소스가 있는 경우, AWS CloudFormation은 이 DB 인스턴스를 새 이름으로 다시 생성하고 LaunchConfiguration 리소스도 업데이트합니다.

  4. 템플릿의 구문 오류를 검사하려면 AWS CloudFormation Designer 도구 모음에서 Validate template(템플릿 확인)( )을 선택합니다.

    메시지 창에 오류가 있으면 확인해 수정한 다음 템플릿을 다시 확인합니다. 오류가 보이지 않으면 템플릿의 구문이 유효한 것입니다.

  5. AWS CloudFormation Designer 도구 모음에서 File(파일) 메뉴( )를 선택한 다음 Save(저장)를 선택하여 템플릿을 S3 버킷에 또는 로컬에 저장합니다.

  6. 수정된 템플릿을 사용하여 스택을 직접 업데이트하거나 변경 세트를 사용하여 스택을 업데이트합니다.

스택 템플릿 가져오기 및 업데이트(CLI)

  1. 업데이트할 스택의 템플릿을 가져오려면 aws cloudformation get-template 명령을 사용합니다.

  2. 템플릿을 복사하고 텍스트 파일에 붙여 넣은 다음 수정한 후 저장합니다. 템플릿 복사합니다. 이 명령에서는 템플릿이 따옴표 안에 지정되지만, 따옴표는 복사하지 마십시오. 템플릿 자체는 열기 괄호에서 시작하여 닫기 괄호로 끝납니다. 이 파일에 스택 리소스에 대한 변경 내용을 지정합니다.

  3. 수정된 템플릿을 사용하여 스택을 직접 업데이트하거나 변경 세트를 사용하여 스택을 업데이트합니다.