변경 세트 보기 - AWS CloudFormation

변경 세트 보기

변경 세트를 생성한 후 변경 세트를 실행하기 전에 제안된 변경 사항을 확인할 수 있습니다. CloudFormation 콘솔, AWS CLI 또는 CloudFormation API를 사용하여 변경 세트를 확인할 수 있습니다. CloudFormation 콘솔에서는 변경 사항 요약 및 자세한 변경 사항 목록을 JSON 형식으로 제공합니다. AWS CLI와 AWS CloudFormation API는 자세한 변경 사항 목록을 JSON 형식으로 반환합니다.

View a change set for nested stack (console)
중첩 스택에 대한 변경 사항 확인(콘솔)
  1. AWS CloudFormation 콘솔스택에서 확인하고자 하는 변경 세트가 포함된 스택의 이름을 선택하십시오.

  2. 탐색 창에서 변경 세트를 선택하여 스택의 변경 세트 목록을 봅니다.

  3. 확인하고자 하는 변경 세트의 이름을 선택합니다.

    CloudFormation 콘솔에서 변경 세트의 세부 정보 페이지로 이동합니다. 여기서 변경 세트 생성 시간, 상태, 변경 세트 생성에 사용된 입력 및 변경 요약을 볼 수 있습니다.

    [변경 사항(Changes)] 섹션에서 각 행은 CloudFormation이 추가, 수정, 제거하거나 동적인 상태를 표시할 리소스를 나타냅니다.

    • [추가(Add)] – CloudFormation이 스택 템플릿에 리소스를 추가할 때 리소스를 생성합니다.

    • [수정(Modify)] – CloudFormation이 스택 템플릿에서 리소스 속성을 변경할 때 리소스를 수정합니다.

    • [제거(Remove)] – CloudFormation이 스택 템플릿에서 리소스를 삭제할 때 리소스를 삭제합니다.

    • [동적(Dynamic)] – CloudFormation이 중첩 스택 템플릿에서 정확한 리소스 변경 작업을 확인할 수 없습니다.

    참고

    수정으로 인해 리소스가 중단되거나 바뀔(다시 생성될) 수 있습니다. 리소스 업데이트 동작에 대한 자세한 내용은 스택 리소스의 업데이트 동작 단원을 참조하십시오.

    특정 변경 사항을 중점적으로 살펴보려면 필터 보기를 사용합니다. 예를 들어, 특정 리소스 유형(예: AWS::CloudFormation::Stack)를 필터링합니다. 특정 리소스를 필터링하려면 논리적 ID 또는 물리적 ID(예: DeadLetterQueue 또는 NestedStack)를 지정합니다.

  4. 변경 사항 섹션에서 확인하고자 하는 중첩된 변경 세트의 [중첩된 변경 세트 보기]를 선택합니다.

    CloudFormation 콘솔에서 중첩된 변경 세트의 세부 정보 페이지로 이동합니다. [루트 변경 세트로 이동]을 선택하여 루트 변경 세트를 확인하거나 [상위 변경 세트 보기]를 선택하여 상위 변경 세트를 확인할 수도 있습니다. 자세한 내용은 중첩 스택에 대한 변경 세트를 참조하세요.

  5. 리소스 속성 값에 대한 자세한 변경 사항을 보려면 변경 섹션에서 속성 수준 변경 사항 열의 세부 정보 보기를 선택합니다.

  6. CloudFormation 콘솔이 리소스의 속성 수준 변경 사항 페이지로 안내합니다. 이 페이지에서 변경 세트를 실행하기 전의 리소스 템플릿 구성과 변경 세트를 실행한 후의 템플릿 구성을 확인할 수 있습니다.

    속성 수준 변경 사항 섹션 표에는 영향을 받는 속성의 경로, 변경 유형, 이전 값이후 값이 표시됩니다. 표에서 템플릿의 이전이후 보기에서 강조 표시하려는 각 변경 사항의 확인란을 선택하여 속성 수준에서 어떤 변경 사항이 적용되는지 확인할 수 있습니다.

    • 추가 - 추가된 속성이 녹색으로 강조 표시됩니다.

    • 수정 - 수정된 속성이 파란색으로 강조 표시됩니다.

    • 제거 - 제거된 속성이 빨간색으로 강조 표시됩니다.

View a change set (console)
변경 세트를 확인하려면(콘솔)
  1. AWS CloudFormation 콘솔스택에서 확인하고자 하는 변경 세트가 포함된 스택의 이름을 선택하십시오.

  2. 탐색 창에서 변경 세트를 선택하여 스택의 변경 세트 목록을 봅니다.

  3. 확인하고자 하는 변경 세트의 이름을 선택합니다.

    CloudFormation 콘솔에서 변경 세트의 세부 정보 페이지로 이동합니다. 여기서 변경 세트 생성 시간, 상태, 변경 세트 생성에 사용된 입력 및 변경 요약을 볼 수 있습니다.

    [변경 사항(Changes)] 섹션에서 각 행은 CloudFormation이 추가, 수정 또는 제거할 리소스를 나타냅니다.

    • [추가(Add)] – CloudFormation이 스택 템플릿에 리소스를 추가할 때 리소스를 생성합니다.

    • [수정(Modify)] – CloudFormation이 스택 템플릿에서 리소스 속성을 변경할 때 리소스를 수정합니다.

    • [제거(Remove)] – CloudFormation이 스택 템플릿에서 리소스를 삭제할 때 리소스를 삭제합니다.

    참고

    수정으로 인해 리소스가 중단되거나 바뀔(다시 생성될) 수 있습니다. 리소스 업데이트 동작에 대한 자세한 내용은 스택 리소스의 업데이트 동작 단원을 참조하십시오.

    특정 변경 사항을 중점적으로 살펴보려면 필터 보기를 사용합니다. 예를 들어, 특정 리소스 유형(예: AWS::EC2::Instance)를 필터링합니다. 특정 리소스를 필터링하려면 논리적 ID 또는 물리적 ID(예: myWebServer 또는 i-123abcd4)를 지정합니다.

  4. 리소스에 적용된 속성 값 변경 사항을 보려면 변경 섹션에서 속성 수준 변경 사항 열의 세부 정보 보기를 선택합니다.

  5. CloudFormation 콘솔이 리소스의 속성 수준 변경 사항 페이지로 안내합니다. 이 페이지에서 변경 세트를 실행하기 전의 리소스 템플릿 구성과 변경 세트를 실행한 후의 템플릿 구성을 확인할 수 있습니다.

    속성 수준 변경 사항 섹션 표에는 영향을 받는 속성의 경로, 변경 유형, 이전 값이후 값이 표시됩니다. 표에서 템플릿의 이전이후 보기에서 강조 표시하려는 각 변경 사항의 확인란을 선택하여 속성 수준에서 어떤 변경 사항이 적용되는지 확인할 수 있습니다.

    • 추가 - 추가된 속성이 녹색으로 강조 표시됩니다.

    • 수정 - 수정된 속성이 파란색으로 강조 표시됩니다.

    • 제거 - 제거된 속성이 빨간색으로 강조 표시됩니다.

변경 세트를 보려면(AWS CLI)
  1. 변경 세트의 ID를 가져오려면 aws cloudformation list-change-sets 명령을 실행합니다.

    다음 예에서처럼 보려는 변경 세트가 있는 스택의 스택 ID를 지정합니다.

    $ aws cloudformation list-change-sets \ --stack-name arn:aws:cloudformation:us-east-1:123456789012:stack/SampleStack/1a2345b6-0000-00a0-a123-00abc0abc000

    CloudFormation에서는 다음과 유사한 변경 세트 목록을 반환합니다.

    { "Summaries": [ { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/SampleStack/1a2345b6-0000-00a0-a123-00abc0abc000", "Status": "CREATE_COMPLETE", "ChangeSetName": "SampleChangeSet", "CreationTime": "2020-11-18T20:44:05.889Z", "StackName": "SampleStack", "ChangeSetId": "arn:aws:cloudformation:us-east-1:123456789012:changeSet/SampleChangeSet/1a2345b6-0000-00a0-a123-00abc0abc000" }, { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/SampleStack/1a2345b6-0000-00a0-a123-00abc0abc000", "Status": "CREATE_COMPLETE", "ChangeSetName": "SampleChangeSet-conditional", "CreationTime": "2020-11-18T21:15:56.398Z", "StackName": "SampleStack", "ChangeSetId": "arn:aws:cloudformation:us-east-1:123456789012:changeSet/SampleChangeSet-conditional/1a2345b6-0000-00a0-a123-00abc0abc000" }, { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/SampleStack/1a2345b6-0000-00a0-a123-00abc0abc000", "Status": "CREATE_COMPLETE", "ChangeSetName": "SampleChangeSet-replacement", "CreationTime": "2020-11-18T21:03:37.706Z", "StackName": "SampleStack", "ChangeSetId": "arn:aws:cloudformation:us-east-1:123456789012:changeSet/SampleChangeSet-replacement/1a2345b6-0000-00a0-a123-00abc0abc000" } ] }
  2. aws cloudformation describe-change-set 명령을 실행하여 보려는 변경 세트의 ID를 지정합니다. 예제:

    $ aws cloudformation describe-change-set --change-set-name arn:aws:cloudformation:us-east-1:123456789012:changeSet/SampleChangeSet/1a2345b6-0000-00a0-a123-00abc0abc000

    CloudFormation에서는 지정된 변경 세트에 대한 정보를 반환합니다.

    { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/SampleStack/1a2345b6-0000-00a0-a123-00abc0abc000", "Status": "CREATE_COMPLETE", "ChangeSetName": "SampleChangeSet-direct", "Parameters": [ { "ParameterValue": "testing", "ParameterKey": "Purpose" }, { "ParameterValue": "ellioty-useast1", "ParameterKey": "KeyPairName" }, { "ParameterValue": "t2.micro", "ParameterKey": "InstanceType" } ], "Changes": [ { "ResourceChange": { "ResourceType": "AWS::EC2::Instance", "PhysicalResourceId": "i-1abc23d4", "Details": [ { "ChangeSource": "DirectModification", "Evaluation": "Static", "Target": { "Attribute": "Tags", "RequiresRecreation": "Never" } } ], "Action": "Modify", "Scope": [ "Tags" ], "LogicalResourceId": "MyEC2Instance", "Replacement": "False" }, "Type": "Resource" } ], "CreationTime": "2020-11-18T23:35:25.813Z", "Capabilities": [], "StackName": "SampleStack", "NotificationARNs": [], "ChangeSetId": "arn:aws:cloudformation:us-east-1:123456789012:changeSet/SampleChangeSet-direct/9edde307-960d-4e6e-ad66-b09ea2f20255" }

    속성 수준 변경 사항을 나열하려면 describe-change-set과 함께 --include-property-values를 사용합니다.

    Changes 키는 리소스에 대한 변경 사항을 나열합니다. 이 변경 세트를 실행하면 CloudFormation에서는 i-1abc23d4 EC2 인스턴스의 태그를 업데이트해야 합니다. 각 필드의 설명은 AWS CloudFormation API 참조Change 데이터 유형을 참조하세요.

    변경 세트에 대한 예를 더 보려면 변경 세트의 예 단원을 참조하십시오.

변경 세트의 속성 수준 변경 사항을 보려면(AWS CLI)
  • 다음 명령은 AWS::EC2::NetworkInterface 리소스의 변경 세트와 관련된 속성 수준 변경 사항을 나열합니다. 이 변경 세트에서는 Ipv4Prefixes 속성을 제거하고 리소스의 Description을 수정하고 Tag를 추가합니다.

    $ aws cloudformation describe-change-set --include-property-values --change-set-name arn:aws:cloudformation:us-east-1:123456789012:changeSet/ExampleChangeSet/9f7b541b-126b-44f7-998e-932174557841
    "ChangeSetName": "ExampleChangeSet", "ChangeSetId": "arn:aws:cloudformation:us-east-1:803642222207:changeSet/ExampleChangeSet/9f7b541b-126b-44f7-998e-932174557841", "StackId": "arn:aws:cloudformation:us-east-1:803642222207:stack/ExampleStack/ab664180-f686-11ee-9e29-12cd92393671", "StackName": "ExampleStack", "Description": null, "Parameters": null, "CreationTime": "2024-04-09T18:04:59.935000+00:00", "ExecutionStatus": "AVAILABLE", "Status": "CREATE_COMPLETE", "StatusReason": null, "NotificationARNs": [], "RollbackConfiguration": { "RollbackTriggers": [] }, "Capabilities": [], "Tags": null, "ParentChangeSetId": null, "IncludeNestedStacks": true, "RootChangeSetId": null, "OnStackFailure": null, { "Changes": [ { "Type": "Resource", "ResourceChange": { "Action": "Modify", "LogicalResourceId": "EC2NetworkInterface00eni067fd35b649a05b7100Tpyls", "PhysicalResourceId": "eni-067fd35b649a05b71", "ResourceType": "AWS::EC2::NetworkInterface", "Replacement": "False", "Scope": [ "Properties", "Tags" ], "Details": [ { "Target": { "Attribute": "Properties", "Name": "Ipv4Prefixes", "RequiresRecreation": "Never", "Path": "/Properties/Ipv4Prefixes", "BeforeValue": "[]", "AttributeChangeType": "Remove" }, "Evaluation": "Static", "ChangeSource": "DirectModification" }, { "Target": { "Attribute": "Properties", "Name": "Description", "RequiresRecreation": "Never", "Path": "/Properties/Description", "BeforeValue": "", "AfterValue": "Description", "AttributeChangeType": "Modify" }, "Evaluation": "Static", "ChangeSource": "DirectModification" }, { "Target": { "Attribute": "Tags", "RequiresRecreation": "Never", "Path": "/Properties/Tags/0", "AfterValue": "{\"Key\":\"Test\",\"Value\":\"Test\"}", "AttributeChangeType": "Add" }, "Evaluation": "Static", "ChangeSource": "DirectModification" } ], "BeforeContext": "{\"Properties\":{\"Description\":\"\",\"PrivateIpAddress\":\"172.31.76.2\",\"PrivateIpAddresses\":[{\"PrivateIpAddress\":\"172.31.76.2\",\"Primary\":\"true\"}],\"SecondaryPrivateIpAddressCount\":\"0\",\"Ipv6PrefixCount\":\"0\",\"Ipv4Prefixes\":[],\"Ipv4PrefixCount\":\"0\",\"GroupSet\":[\"sg-05a45689b1059e82d\"],\"Ipv6Prefixes\":[],\"SubnetId\":\"subnet-455e8969\",\"SourceDestCheck\":\"true\",\"InterfaceType\":\"interface\",\"Tags\":[]},\"UpdateReplacePolicy\":\"Retain\",\"DeletionPolicy\":\"Retain\"}", "AfterContext": "{\"Properties\":{\"Description\":\"Description\",\"PrivateIpAddress\":\"172.31.76.2\",\"PrivateIpAddresses\":[{\"PrivateIpAddress\":\"172.31.76.2\",\"Primary\":\"true\"}],\"SecondaryPrivateIpAddressCount\":\"0\",\"Ipv6PrefixCount\":\"0\",\"Ipv4PrefixCount\":\"0\",\"GroupSet\":[\"sg-05a45689b1059e82d\"],\"Ipv6Prefixes\":[],\"SubnetId\":\"subnet-455e8969\",\"SourceDestCheck\":\"true\",\"InterfaceType\":\"interface\",\"Tags\":[{\"Value\":\"Test\",\"Key\":\"Test\"}]},\"UpdateReplacePolicy\":\"Retain\",\"DeletionPolicy\":\"Retain\"}" } } ], "ChangeSetName": "ExampleChangeSet", "ChangeSetId": "arn:aws:cloudformation:us-east-1:123456789012:changeSet/ExampleChangeSet/9f7b541b-126b-44f7-998e-932174557841", "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/ExampleStack/ab664180-f686-11ee-9e29-12cd92393671",