

# セルフマネージド型のアクセス許可を持つ CloudFormation StackSets の作成
<a name="stacksets-getting-started-create-self-managed"></a>

このトピックでは、AWS アカウント およびリージョンにスタックをデプロイするための*セルフマネージド型*のアクセス許可を持つ StackSets を作成する方法について説明します。

**注記**  
続行する前に、StackSets に必要な IAM サービスロールを作成して、StackSet の管理元アカウントとスタックのデプロイ先のアカウントとの間に信頼関係を確立します。詳細については、「[セルフマネージド型のアクセス許可を付与する](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 マネジメントコンソール にサインインし、CloudFormation コンソール ([https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)) を開きます。

1. 画面の上部のナビゲーションバーで、StackSet を管理する AWS リージョン を選択します。

1. ナビゲーションペインから [**StackSets**] を選択します。

1. [**StackSets**] ページの上部から [**StackSets の作成**] を選択します。

1. **[アクセス許可]** で、**[セルフサービスのアクセス許可]** を選択し、作成した IAM ロールを選択します。

1. [**前提条件 − テンプレートの準備**] で、[**テンプレートの準備完了**] を選択します。

1. [**Specify template (テンプレートの指定)**] で、スタックテンプレートを含む S3 バケットの URL を指定するか、スタックテンプレートファイルをアップロードするかを選択します。その後、**[Next]** を選択します。

1. **[StackSet の詳細を指定]** ページで、StackSet の名前を指定し、パラメータを指定して、**[次へ]** を選択します。

1. **[次へ]** を選択して続行します。

1. [**StackSet オプションの設定**] ページの [**タグ**] で、スタックのリソースに適用するタグを指定します。AWS でのタグの使用方法に関する詳細については、*AWS Billing and Cost Management ユーザーガイド*の「[AWS コスト配分タグを使用してコストを整理および追跡する](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)」を参照してください。

1. **[実行設定]** で、**[アクティブ]** を選択して CloudFormation の最適化されたオペレーション処理を有効にします。
   + 競合しないオペレーションは、デプロイ時間を短縮するために同時に実行されます。
   + 競合するオペレーションは自動的にキューに入れられ、リクエストされた順序で処理されます。

   オペレーションが実行中またはキューに入れられている間、CloudFormation ではオペレーションが競合しない場合でもすべての受信オペレーションがキューに入ります。この間は実行設定を変更できません。

1. テンプレートに IAM リソースが含まれる場合は、[**機能**] で[**I acknowledge that this template may create IAM resources (このテンプレートが IAM リソースを作成する可能性を認識しています)**] を選択して、テンプレート内の IAM リソースを使用することを指定します。詳細については、「[CloudFormation テンプレートでの IAM リソースの承認](control-access-with-iam.md#using-iam-capabilities)」を参照してください。

1. **[Next]** (次へ) を選択します。

1. **[デプロイオプションの設定]** ページの **[StackSet にスタックを追加]** で、**[新しいスタックのデプロイ]** オプションを選択します。

1. [**アカウント**] で [**Deploy stacks in accounts (スタックをアカウントにデプロイ)**] を選択します。ターゲット AWS アカウント 番号をテキストボックスに貼り付け、複数の数字をカンマで区切ります。
**注記**  
管理者アカウントにもスタックをデプロイする場合は、管理者アカウント ID を含めることができます。

1. **[リージョンの指定]** で、スタックをデプロイするリージョンを選択します。

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 内にスタックをデプロイします。次の例では、2 つのリージョン (`us-west-2` と `us-east-1`) にわたって 2 つの 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
   ```