AWS CloudFormation 스택이 REVIEW_IN_PROGRESS 상태에서 멈추는 이유는 무엇인가요?

2분 분량
0

AWS CloudFormation 스택이 REVIEW_IN_PROGRESS 상태에서 멈췄습니다.

간략한 설명

스택이 REVIEW_IN_PROGRESS 상태에서 멈춘 경우 실행되지 않은 변경 세트를 사용해 스택을 만들었다는 뜻입니다. 새 스택 변경 세트를 생성하면 CloudFormation에서 고유한 스택 ID를 생성하나 리소스는 생성하지 않습니다. 변경 세트를 실행하지 않으면 스택이 REVIEW_IN_PROGRESS 상태로 유지됩니다.

참고: AWS CLI 명령을 실행할 때 오류가 발생하면 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.

해결 방법

다음 중 원하는 방법을 선택해 변경 세트를 실행하세요.

AWS CloudFormation 콘솔 사용

  1. AWS CloudFormation 콘솔을 엽니다.
  2. 탐색 창에서 스택을 선택하고 멈춘 스택을 찾습니다.
  3. 변경 세트 탭을 선택합니다.
  4. 최신 변경 세트를 선택하고 변경 내용을 검토합니다.
  5. 실행을 선택해 스택을 생성합니다.

AWS Command Line Interface(AWS CLI) 사용

  1. 다음 list-change-sets 명령을 실행해 전체 변경 세트 목록을 봅니다.

    aws cloudformation list-change-sets --stack-name StackName
  2. 변경 세트를 찾은 다음 execute-change-set 명령을 실행합니다.

    aws cloudformation execute-change-set --change-set-name ChangeSetName

AWS CodePipeline 사용

AWS CodePipeline을 사용해 변경 세트 생성 또는 대체 작업 모드로 CloudFormation에 배포하면 변경 세트를 생성 또는 대체만 가능합니다. 실행은 자동으로 되지 않습니다. 변경 세트를 실행하려면 변경 세트 실행 작업 모드를 추가해야 합니다.

  1. AWS CodePipeline 콘솔을 엽니다.
  2. CloudFormation에 배포 중인 파이프라인을 찾습니다.
  3. 편집을 선택하고 배포 단계 편집을 클릭합니다.
  4. 작업 그룹 추가를 선택합니다.
  5. 작업 이름에 작업 이름을 입력합니다.
  6. 작업 제공자에서 AWS CloudFormation을 선택합니다.
  7. 작업 모드에서 변경 세트 실행을 선택합니다.
  8. 저장을 선택합니다.

AWS CLI 사용

  1. 다음 get-pipeline 명령을 실행해 파이프라인 구조를 JSON 파일에 복사합니다.

    aws codepipeline get-pipeline --name MyPipeline >pipeline.json
  2. 배포 단계에서 CHANGE_SET_EXECUTEActionMode로 추가합니다.

    {
      "name": "Deploy",
      "blockers": null,
      "actions": [
        {
          "name": "Deploy",
          "actionTypeId": {
            "category": "Deploy",
            "owner": "AWS",
            "provider": "CloudFormation",
            "version": "1"
          },
          "runOrder": 1,
          "configuration": {
            "TemplatePath": "SourceArtifact::ssm.yml",
            "ActionMode": "CHANGE_SET_REPLACE",
            "Capabilities": "CAPABILITY_IAM,CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND",
            "ChangeSetName": "CFNTest-CS",
            "RoleArn": "arn:aws:iam::xxxxx:role/xxx",
            "StackName": "CFNTest"
          },
          "outputArtifacts": [],
          "inputArtifacts": [
            {
              "name": "SourceArtifact"
            }
          ],
          "roleArn": null,
          "region": "us-east-1",
          "namespace": "DeployVariables"
        },
        {
          "name": "ExecuteChangeSet",
          "actionTypeId": {
            "category": "Deploy",
            "owner": "AWS",
            "provider": "CloudFormation",
            "version": "1"
          },
          "runOrder": 2,
          "configuration": {
            "ActionMode": "CHANGE_SET_EXECUTE",
            "ChangeSetName": "CFNTest-CS",
            "StackName": "CFNTest"
          },
          "outputArtifacts": [],
          "inputArtifacts": [
            {
              "name": "SourceArtifact"
            }
          ],
          "roleArn": null,
          "region": "us-east-1",
          "namespace": null
        }
      ]
    }
  3. 다음 update-pipeline 명령을 실행해 파이프라인을 JSON 파일에 복사합니다.

    aws codepipeline update-pipeline --cli-input-json file://pipeline.json
AWS 공식
AWS 공식업데이트됨 2년 전