

# CloudFormation 스택에 대한 변경 세트 생성
<a name="using-cfn-updating-stacks-changesets-create"></a>

실행 중인 스택에 대한 변경 세트를 생성하려면 수정된 템플릿, 새 입력 파라미터값 또는 둘 다를 제공하여 수행하려는 변경 사항을 제출합니다. CloudFormation은 제출한 변경 사항과 스택을 비교하여 변경 세트를 생성합니다.

변경 세트를 생성하기 전에 또는 변경 세트 생성 중에 템플릿을 수정할 수 있습니다.

------
#### [ Create a change set (console) ]

**변경 세트를 생성하려면 다음을 수행하세요.**

1. CloudFormation 콘솔([https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/))을 엽니다.

1. 화면 상단의 탐색 모음에서 AWS 리전을 선택합니다.

1. **스택** 페이지에서 변경 세트를 생성하려는 실행 중인 스택을 선택합니다.

1. 스택 세부 정보 창에서 **스택 작업**을 선택하고 **변경 세트 생성**을 선택하세요.

1. **Create change set for {{stack-name(스택 이름}}에 대한 변경 세트 만들기)** 페이지에서 다음 중 하나를 수행하여 입력 파라미터값을 수정하거나 업데이트된 템플릿의 위치를 ​​지정하거나 템플릿을 수정하십시오.    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets-create.html)

1. **스택 세부 정보 지정** 페이지에서 변경 세트의 이름을 지정하고 선택적으로 변경 세트의 설명을 지정하여 **개요** 섹션에서 스택의 용도를 식별합니다. 템플릿에 파라미터가 포함되어 있는 경우 **Specify stack details(스택 세부 정보 지정)** 페이지에서 해당 입력 파라미터값을 입력하거나 수정하고 **다음**을 선택합니다.

   스택 템플릿을 재사용할 경우 CloudFormation에서는 `NoEcho` 속성으로 선언된 파라미터를 제외하고 스택의 현재 값으로 각 파라미터를 채웁니다. 이러한 파라미터에 기존 값을 사용하려면 **기존 값 사용**을 선택합니다.

   동적 파라미터를 사용하여 보안 암호를 관리하는 방법 및 `NoEcho`를 사용하여 민감한 정보를 마스킹 처리하는 방법에 대한 자세한 내용은 [템플릿에 자격 증명을 포함하지 않음](security-best-practices.md#creds) 모범 사례를 참조하세요.

1. **구성 스택 옵션** 페이지에서 스택 태그, IAM 서비스 역할, 스택 정책, 롤백 구성, Amazon SNS 알림 주제(해당할 경우) 또는 변경 세트를 업데이트합니다.
**참고**  
중첩 스택에 대한 변경 세트는 기본적으로 **활성화**됩니다. 그러면 템플릿에 지정된 모든 중첩 세트에 대해 변경 세트가 생성됩니다. 현재 스택에 대해서만 변경 세트를 생성하려면 [**Disabled(비활성화)**]를 선택합니다. 중첩 스택에 대한 변경 세트에 대한 자세한 내용은 [중첩 스택에 대한 변경 세트](change-sets-for-nested-stacks.md) 섹션을 참조하세요.

1. 템플릿에 IAM 리소스가 포함된 경우 **기능**에서 **CloudFormation에서 IAM 리소스를 생성할 수 있음을 확인함**을 선택합니다. IAM 리소스는 AWS 계정의 권한을 수정할 수 있습니다. 이러한 리소스를 검토하여 의도한 작업만 허용하는지 확인하세요. 자세한 내용은 [CloudFormation 템플릿에서 IAM 리소스 승인](control-access-with-iam.md#using-iam-capabilities) 섹션을 참조하세요.

1. **다음**을 선택하여 계속 진행합니다.

1. **{{스택 이름}} 검토** 페이지에서 이 변경 세트의 변경 사항을 검토하십시오. 

1. **제출**을 선택합니다.

   변경 세트 세부 정보 페이지의 **변경 사항** 탭으로 리디렉션됩니다. CloudFormation에서 변경 세트를 생성하는 동안 변경 세트의 상태는 `CREATE_PENDING`입니다. 변경 세트가 생성된 후 CloudFormation에서 상태가 `CREATE_COMPLETE`로 설정됩니다. [**변경(Changes)**] 섹션의 CloudFormation에서 스택에 적용된 모든 변경 사항을 나열합니다. 자세한 내용은 [CloudFormation 스택에 대한 변경 세트 보기](using-cfn-updating-stacks-changesets-view.md) 섹션을 참조하세요.

   속성 수준에 적용된 변경 사항을 보려면 **속성 수준 변경 사항** 열의 **세부 정보 보기**를 선택합니다.

   CloudFormation에서 변경 세트 생성에 실패하면(`FAILED` 상태 보고) [**상태(Status)**] 필드에 표시된 오류를 수정한 다음 변경 세트를 다시 생성합니다.

1. 변경 사항이 올바른지 확인한 후 **변경 세트 실행**을 선택합니다.

------
#### [ Create a change set for nested stacks (console) ]

**중첩 스택에 대해 변경 세트를 생성하려면 다음을 수행하세요.**

1. CloudFormation 콘솔([https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/))을 엽니다.

1. 화면 상단의 탐색 모음에서 AWS 리전을 선택합니다.

1. **스택** 페이지에서 변경 세트를 생성하려는 실행 중인 스택을 선택합니다.

1. 스택 세부 정보 창에서 **스택 작업**을 선택하고 **변경 세트 생성**을 선택하세요.

1. **Create change set for {{stack-name(스택 이름}}에 대한 변경 세트 만들기)** 페이지에서 다음 중 하나를 수행하여 입력 파라미터값을 수정하거나 업데이트된 템플릿의 위치를 ​​지정하거나 템플릿을 수정하십시오.    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets-create.html)

1. **스택 세부 정보 지정** 페이지에서 변경 세트의 이름을 지정하고 선택적으로 변경 세트의 설명을 지정하여 **개요** 섹션에서 스택의 용도를 식별합니다. 템플릿에 파라미터가 포함되어 있는 경우 **Specify stack details(스택 세부 정보 지정)** 페이지에서 해당 입력 파라미터값을 입력하거나 수정하고 **다음**을 선택합니다.

   스택 템플릿을 재사용할 경우 CloudFormation에서는 `NoEcho` 속성으로 선언된 파라미터를 제외하고 스택의 현재 값으로 각 파라미터를 채웁니다. 이러한 파라미터에 기존 값을 사용하려면 **기존 값 사용**을 선택합니다.

   동적 파라미터를 사용하여 보안 암호를 관리하는 방법 및 `NoEcho`를 사용하여 민감한 정보를 마스킹 처리하는 방법에 대한 자세한 내용은 [템플릿에 자격 증명을 포함하지 않음](security-best-practices.md#creds) 모범 사례를 참조하세요.

1. **구성 스택 옵션** 페이지에서 스택 태그, IAM 서비스 역할, 스택 정책, 롤백 구성, Amazon SNS 알림 주제(해당할 경우) 또는 변경 세트를 업데이트합니다. 자세한 내용은 [스택 옵션 구성](cfn-console-create-stack.md#configure-stack-options) 섹션을 참조하세요.
**참고**  
중첩 스택에 대한 변경 세트는 기본적으로 **활성화**됩니다. 그러면 템플릿에 지정된 모든 중첩 세트에 대해 변경 세트가 생성됩니다. 중첩 스택에 대한 변경 세트에 대한 자세한 내용은 [중첩 스택에 대한 변경 세트](change-sets-for-nested-stacks.md) 섹션을 참조하세요.

1. 템플릿에 IAM 리소스가 포함된 경우 **기능**에서 **CloudFormation에서 IAM 리소스를 생성할 수 있음을 확인함**을 선택합니다. IAM 리소스는 AWS 계정의 권한을 수정할 수 있습니다. 이러한 리소스를 검토하여 의도한 작업만 허용하는지 확인하세요. 자세한 내용은 [CloudFormation 템플릿에서 IAM 리소스 승인](control-access-with-iam.md#using-iam-capabilities) 섹션을 참조하세요.

1. **다음**을 선택하여 계속 진행합니다.

1. **{{스택 이름}} 검토** 페이지에서 이 변경 세트의 변경 사항을 검토하십시오. 

1. **제출**을 선택합니다.
**참고**  
중첩 스택에 대한 변경 세트를 생성할 때 CloudFormation 속성 수준 변경 세트는 교차 스택 참조를 확인하지 않습니다. 변경 세트는 상위 스택의 출력을 참조하고 상위 스택이 수정된 경우 조건부 교체를 위해 하위 스택의 리소스에 표시를 할 수 있습니다.

   변경 세트 세부 정보 페이지의 **변경 사항** 탭으로 리디렉션됩니다. CloudFormation에서 변경 세트를 생성하는 동안 변경 세트의 상태는 `CREATE_PENDING`입니다. 변경 세트가 생성된 후 CloudFormation에서 상태가 `CREATE_COMPLETE`로 설정됩니다. [**변경(Changes)**] 섹션의 CloudFormation에서 스택에 적용된 모든 변경 사항을 나열합니다. 자세한 내용은 [CloudFormation 스택에 대한 변경 세트 보기](using-cfn-updating-stacks-changesets-view.md) 섹션을 참조하세요.

   CloudFormation에서 변경 세트 생성에 실패하면(`FAILED` 상태 보고) [**상태(Status)**] 필드에 표시된 오류를 수정한 다음 변경 세트를 다시 생성합니다.

1. 변경 사항이 올바른지 확인한 후 **변경 세트 실행**을 선택합니다.

------

**변경 세트를 생성하려면(AWS CLI)**
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-change-set.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-change-set.html) 명령을 사용합니다.

  변경 사항을 명령 옵션으로 제출합니다. 새 파라미터값, 수정된 템플릿 또는 둘 다를 지정할 수 있습니다. 예를 들어 다음 명령은 `SampleChangeSet` 스택에 대해 `MyStack`이라는 변경 세트를 생성합니다. 변경 세트에서 현재 스택의 템플릿을 사용하지만 다음 `Purpose` 파라미터의 값이 다릅니다.

  ```
  aws cloudformation create-change-set --stack-name {{MyStack}} \
      --change-set-name {{SampleChangeSet}} --use-previous-template \
      --parameters \
        {{ParameterKey="InstanceType",UsePreviousValue=true ParameterKey="KeyPairName",UsePreviousValue=true ParameterKey="Purpose",ParameterValue="production"}}
  ```