

# 자체 관리형 권한으로 CloudFormation StackSet 생성
<a name="stacksets-getting-started-create-self-managed"></a>

이 주제에서는 AWS 계정 및 리전에 스택을 배포할 *자체 관리형* 권한이 있는 StackSet를 생성하는 방법을 설명합니다.

**참고**  
계속하려면 먼저 StackSet를 관리하는 계정과 스택을 배포할 계정 간에 신뢰할 수 있는 관계를 설정하하기 위해 StackSet에 필요한 IAM 서비스 역할을 생성해야 합니다. 자세한 내용은 [자체 관리형 권한 부여](stacksets-prereqs-self-managed.md) 섹션을 참조하세요.

**Topics**
+ [자체 관리형 권한으로 StackSet 생성(콘솔)](#stacksets-getting-started-create-self-managed-console)
+ [자체 관리형 권한으로 StackSet 생성(AWS CLI)](#stacksets-getting-started-self-managed-cli)

## 자체 관리형 권한으로 StackSet 생성(콘솔)
<a name="stacksets-getting-started-create-self-managed-console"></a>

**StackSet를 생성하려면**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)에서 CloudFormation 콘솔을 엽니다.

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

1. 탐색 창에서 **스택 세트**를 선택합니다.

1. **StackSet** 페이지의 상단에서 **StackSet 만들기**를 선택합니다.

1. **권한**에서 **셀프 서비스 권한**을 선택하고 생성한 IAM 역할을 선택합니다.

1. **사전 조건 - 템플릿 준비**에서 **템플릿 준비 완료**를 선택합니다.

1. **템플릿 지정**, 아래에서 스택 템플릿을 포함하는 S3 버킷의 URL을 지정하거나 스택 템플릿 파일을 업로드하도록 선택합니다. 그리고 **다음**을 선택합니다.

1. **StackSet 세부 정보 지정** 페이지에서 StackSet의 이름을 제공하고 파라미터를 지정한 후 **다음**을 선택합니다.

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

1. **StackSet 옵션 구성** 페이지의 **태그** 아래에서 스택의 리소스에 적용할 태그를 지정합니다. AWS에서 태그를 사용하는 방법에 대한 자세한 내용은 *AWS 결제 및 비용 관리 사용 설명서*의 [Organizing and tracking costs using AWS cost allocation tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)를 참조하세요.

1. **실행 구성**에서 **활성**을 선택하여 CloudFormation의 최적화된 작업 처리를 활성화합니다.
   + 배포 시간을 단축하기 위해, 서로 충돌하지 않는 작업이 동시에 실행됩니다.
   + 서로 충돌하는 작업은 요청된 순서대로 자동으로 대기열에 추가되고 처리됩니다.

   실행 중이거나 대기 중인 작업이 있는 경우 CloudFormation은 충돌하지 않더라도 모든 수신 작업을 대기열에 넣습니다. 이 시간 동안에는 실행 설정을 변경할 수 없습니다.

1. 템플릿에 IAM 리소스가 포함되어 있는 경우 **기능**에서 **이 템플릿이 IAM 리소스를 생성할 수 있음을 확인합니다**를 선택하여 템플릿에서 IAM 리소스를 사용하도록 지정합니다. 자세한 내용은 [CloudFormation 템플릿에서 IAM 리소스 승인](control-access-with-iam.md#using-iam-capabilities) 섹션을 참조하세요.

1. **다음**을 선택합니다.

1. **배포 옵션 설정** 페이지의 **StackSet에 스택 추가**에서 **새 스택 배포**를 선택합니다.

1. **계정**의 경우 **Deploy stacks in accounts(계정에 스택 배포)**를 선택하십시오. 숫자 여러 개를 쉼표로 구분하여 대상 AWS 계정 번호를 텍스트 상자에 붙여 넣습니다.
**참고**  
관리자 계정에도 스택을 배포하려는 경우 해당 계정 ID를 포함하면 됩니다.

1. **리전 지정**에서 스택을 배포하려는 리전을 선택하세요.

1. **배포 옵션**에서 다음을 수행하세요.
   + **최대 동시 계정**에서 동시에 처리되는 계정 수를 지정하세요.
   + **내결함성**에서 리전당 허용되는 최대 계정 실패 횟수를 지정합니다. 이 한도에 도달하면 작업이 중지되고 다른 리전으로 진행되지 않습니다.
   + **리전 동시성**에서 리전을 처리하는 방법(**순차**: 한 번에 하나의 리전 또는 **병렬**: 동시에 여러 리전)을 선택하세요.
   + **동시성 모드**에서 작업 실행 중에 동시성이 작동하는 방식을 선택하세요.
     + **엄격한 내결함성** - **내결함성** \$11의 범위를 유지하면서 장애가 발생하는 경우 계정 동시성 수준을 줄입니다.
     + **소프트한 내결함성** - 장애에 관계없이 지정된 동시성 수준(**최대 동시 계정**의 값)을 유지합니다.

1. **다음**을 선택합니다.

1. [**검토**] 페이지에서 선택 사항을 검토합니다. 변경하려면 관련 섹션에서 **편집**을 선택합니다.

1. StackSet를 생성할 준비가 되면 **제출**을 선택합니다.

   CloudFormation이 StackSet 생성을 시작합니다. **제출**을 선택하면 열리는 StackSet 세부 정보 페이지에서 StackSet의 스택 생성 진행률 및 상태를 봅니다.

## 자체 관리형 권한으로 StackSet 생성(AWS CLI)
<a name="stacksets-getting-started-self-managed-cli"></a>

이 섹션의 다음 단계를 따라 AWS CLI을 사용합니다.
+ StackSet 컨테이너를 생성합니다.
+ 스택 인스턴스를 배포합니다.

**StackSet를 생성하려면**

1. [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack-set.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack-set.html) 명령을 사용하여 `my-stackset`라는 이름의 새 StackSet를 생성합니다. 다음 예에서는 S3 버킷에 저장된 템플릿을 사용하고, `KeyPairName` 값을 `TestKey`으로 설정하는 파라미터를 포함합니다.

   ```
   aws cloudformation create-stack-set \
     --stack-set-name my-stackset \
     --template-url https://s3.region-code.amazonaws.com/amzn-s3-demo-bucket/MyApp.template \
     --parameters ParameterKey=KeyPairName,ParameterValue=TestKey
   ```

1. **create-stack-set** 명령이 완료되면 [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-stack-sets.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-stack-sets.html) 명령을 실행하여 StackSet가 생성되었는지 확인합니다. 결과에 새 StackSet가 표시됩니다.

   ```
   aws cloudformation list-stack-sets
   ```

1. [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack-instances.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack-instances.html) 명령을 사용하여 StackSet 내에 스택을 배포합니다. 다음 예에서는 두 리전(`us-west-2` 및 `us-east-1`)의 두 AWS 계정(`account_ID_1` 및 `account_ID_2`)에 스택을 배포합니다.

   `--operation-preferences` 옵션을 사용하여 동시 계정 처리 및 기타 배포 기본 설정을 지정하세요. 이 예제에서는 개수 기반 설정을 사용합니다. `MaxConcurrentCount`는 `FailureToleranceCount` \$1 1을 초과해서는 안 됩니다. 백분율 기반 설정의 경우 대신 `FailureTolerancePercentage` 또는 `MaxConcurrentPercentage`를 사용하세요.

   ```
   aws cloudformation create-stack-instances \
     --stack-set-name my-stackset \
     --accounts account_ID_1 account_ID_2 \
     --regions us-west-2 us-east-1 \
     --operation-preferences MaxConcurrentCount=1,FailureToleranceCount=0
   ```

   자세한 내용은 *AWS CloudFormation API 참조*의 [CreateStackInstances](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStackInstances.html)를 참조하세요.

1. [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-stack-set-operation.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-stack-set-operation.html) 명령을 사용하여, 스택이 성공적으로 생성되었는지 확인합니다. `--operation-id` 옵션에서, **create-stack-instances** 출력의 일부로 반환된 작업 ID를 지정합니다.

   ```
   aws cloudformation describe-stack-set-operation \
     --stack-set-name my-stackset \
     --operation-id operation_ID
   ```