CloudFormation 스택 템플릿 입력 점검

새 스택 생성에 필요한 템플릿을 제공하고 기존 템플릿 재사용 의도를 구분하세요.

설명

Ansible로 새 CloudFormation 스택을 만들려면 배포할 리소스를 정의한 템플릿이 필요합니다. 템플릿 없이 새 스택을 만들려고 하면 생성이 실패합니다.

기존 스택의 갱신은 다릅니다. amazon.aws.cloudformation은 새 템플릿 입력을 생략하면 기존 템플릿을 재사용할 수 있으며, 스택 삭제에도 새 템플릿이 필요하지 않습니다.

잠재적 영향

  • 새 스택 생성이 실패해 배포 파이프라인이 중단될 수 있습니다.
  • 기존 템플릿을 의도하지 않게 재사용하면 기대한 리소스 변경이 적용되지 않을 수 있습니다.

해결 방법

  • 새 스택에는 template_body 또는 template_url 등 설치된 모듈이 지원하는 템플릿 입력 하나를 제공하세요. 입력 방식을 중복 지정하지 마세요.
  • 기존 스택에서는 템플릿을 재사용할지 교체할지 명확히 하고 변경 내용을 검토하세요. StackSet을 새로 만들 때도 해당 모듈의 필수 템플릿 입력을 제공하세요.

예시

기존 예시는 새 스택 생성을 가정합니다. URL은 접근 가능한 실제 템플릿으로 바꾸고, 예시 매개변수와 값은 그 템플릿 및 대상 환경에 맞추세요.

변경 전

yaml
- name: CloudFormation 스택 생성
  amazon.aws.cloudformation:
    stack_name: ansible-cloudformation
    state: present
    region: us-east-1
    disable_rollback: true
    template_parameters:
      KeyName: jmartin
      DiskType: ephemeral
      InstanceType: m1.small
      ClusterSize: 3
    tags:
      Stack: ansible-cloudformation

새 스택이라면 템플릿 입력이 없어 생성할 수 없습니다. 이미 존재하는 스택에서는 기존 템플릿 재사용이 가능하므로 작업 목적을 확인해야 합니다.

변경 후

yaml
- name: CloudFormation 스택 생성
  amazon.aws.cloudformation:
    stack_name: ansible-cloudformation
    state: present
    region: us-east-1
    disable_rollback: true
    template_url: https://s3.amazonaws.com/my-bucket/cloudformation.template
    template_parameters:
      KeyName: jmartin
      DiskType: ephemeral
      InstanceType: m1.small
      ClusterSize: 3
    tags:
      Stack: ansible-cloudformation

template_url로 사용할 템플릿을 지정합니다. 템플릿의 유효성과 접근 권한도 확인해야 합니다.

참조