

# CloudFormation StackSets を更新する
<a name="stacksets-update"></a>

CloudFormation コンソールまたは AWS CLI を使用して StackSet を更新できます。

StackSet からアカウントとリージョンを追加および削除するには、「[StackSets にスタックを追加する](stackinstances-create.md)」および「[StackSets からスタックを削除する](stackinstances-delete.md)」を参照してください。スタックのパラメータ値を上書きするには、「[スタックのパラメータを上書きする](stackinstances-override.md)」を参照してください。

**Topics**
+ [StackSet を更新する (コンソール)](#stacksets-update-console)
+ [StackSet を更新する (AWS CLI)](#stacksets-update-cli)

## StackSet を更新する (コンソール)
<a name="stacksets-update-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]** ページで、更新する StackSet を選択します。

1. StackSet を選択した状態で、**[アクション]** メニューから **[StackSet の詳細を編集]** を選択します。

1. [**テンプレートの選択**] ページで、必要に応じて[**アクセス許可**] セクションを更新するか、次のステップに進みます。

1. **前提条件 - テンプレートを準備する**には、[**現在のテンプレートを使用する**] を選択して現在のテンプレートを使用するか、[**現在のテンプレートを置き換える**] を選択して別のテンプレートに S3 URL を指定するか、新しいテンプレートをアップロードします。

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

1. **[StackSet の詳細を指定]** ページの **[StackSet の説明]** で、必要に応じて StackSet の説明を更新します。

1. **パラメータ** の場合、必要に応じてパラメータ値を更新します。

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

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

1. [**実行設定**] では、必要に応じて実行設定を更新できます。
**注記**  
オペレーションが実行中またはキューに入っている場合、実行設定を変更することはできません。

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. [**デプロイオプションの設定**] ページで、更新用のアカウントとリージョンを指定します。

   CloudFormation は、リージョンのデプロイ失敗が指定された耐障害性を超えない限り、最初のリージョン内の指定されたアカウントにスタック更新をデプロイし、次のリージョンに移行し、それが繰り返されます。

   1. [セルフマネージド型のアクセス許可] [**アカウント**] の[**Deployment locations (デプロイ先)**] で [**Deploy stacks in accounts (スタックをアカウントにデプロイ)**] を選択します。StackSet の作成に使用したターゲットアカウント ID をテキストボックスに貼り付け、複数の数字をカンマで区切ります。

      [サービスマネージド型のアクセス許可] 次のいずれかを実行します。
      + [**Deploy to organizational units (OUs) (組織単位 (OU) にデプロイ)**] を選択します。StackSet の作成に使用したターゲット OU を入力します。
      + [**Deploy to accounts (アカウントにデプロイ)**] を選択します。StackSet の作成に使用したターゲット OU ID またはアカウント ID を貼り付けます。

   1. [**Specify regions (リージョンの指定)**] では、CloudFormation で更新をデプロイする順序を指定します。

   1. **[デプロイオプション]** で、次の操作を行います。
      + **[同時アカウントの最大数]** で、同時に処理されるアカウントの数を指定します。
      + **[耐障害性]** には、リージョンごとに許可されるアカウント障害の最大数を指定します。この制限に達すると、オペレーションは停止し、他のリージョンには進みません。
      + **[リージョンの同時実行]** で、リージョンの処理方法を選択します。**[順次]** (一度に 1 つのリージョン) または **[並列]** (複数のリージョンを同時に) を選択できます。
      + **[同時実行モード]** で、オペレーションの実行中に同時実行がどのように動作するかを選択します。
        + **[厳格な耐障害性]** – 障害発生時の同時実行レベルを下げ、**[耐障害性]** の値を \$11 の範囲内にとどめます。
        + **[ソフトな障害耐性]** – 障害に関係なく、指定された同時実行レベル (**[同時アカウントの最大数]** の値) を維持します。
      + [サービスマネージドアクセス許可] StackSet の**依存関係**では、依存する StackSet ARN を追加して、最大 10 個以内で依存関係を維持します。詳細については、「[AWS Organizations で StackSets の自動デプロイを有効または無効にする](stacksets-orgs-manage-auto-deployment.md)」を参照してください。

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

1. **[確認]** ページで選択内容を確認します。変更するには、関連セクションで [**編集**] をクリックします。

1. 続行する準備ができたら、[**送信**] を選択します。

   CloudFormation によって StackSet への更新の適用が開始され、StackSet 詳細ページの **[オペレーション]** タブが表示されます。[**オペレーション**] タブで更新オペレーションの進捗と状況を確認できます。

## StackSet を更新する (AWS CLI)
<a name="stacksets-update-cli"></a>

**注記**  
委任管理者として操作する場合は、コマンドに `--call-as DELEGATED_ADMIN` を含める必要があります。

1. 

**StackSet を更新するには**

   [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack-set.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack-set.html) コマンドを実行して、StackSet を変更します。

   次の例では、`--parameters` オプションを使用して StackSet を更新します。特に、送信チャネル設定のデフォルトスナップショット送信頻度を、[`TwentyFour_Hours`] から [`Twelve_Hours`] に変更します。現在のテンプレートをまだ使用しているため、`--use-previous-template` オプションを追加します。

   `--operation-preferences` オプションを使用して、同時アカウント処理およびその他のデプロイ設定を設定します。これらの例では、カウントベースの設定を使用します。`MaxConcurrentCount` は `FailureToleranceCount` \$1 1 を超えることはできません。パーセンテージベースの設定の場合は、代わりに `FailureTolerancePercentage` または `MaxConcurrentPercentage` を使用します。

   [セルフマネージド型のアクセス許可] `--accounts` オプションでは、更新のターゲットにするアカウント ID を指定します。

   ```
   aws cloudformation update-stack-set --stack-set-name my-stackset \
     --use-previous-template \
     --parameters ParameterKey=MaximumExecutionFrequency,ParameterValue=Twelve_Hours \
     --accounts account_ID_1 account_ID_2 \
     --regions us-west-2 us-east-1 \
     --operation-preferences MaxConcurrentCount=1,FailureToleranceCount=0
   ```

   [サービスマネージド型のアクセス許可] `--deployment-targets` オプションでは、更新のターゲットにする組織ルート ID または 組織単位 (OU) ID を指定します。

   ```
   aws cloudformation update-stack-set --stack-set-name my-stackset \
     --use-previous-template \
     --parameters ParameterKey=MaximumExecutionFrequency,ParameterValue=Twelve_Hours \
     --deployment-targets OrganizationalUnitIds=ou-rcuk-1x5j1lwo,ou-rcuk-slr5lh0a \
     --regions us-west-2 us-east-1 \
     --operation-preferences MaxConcurrentCount=1,FailureToleranceCount=0
   ```

   詳細については、*AWS CloudFormation API リファレンス*の「[UpdateStackSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)」を参照してください。

1. **describe-stack-set-operation** コマンドを実行して更新オペレーションのステータスおよび結果を表示し、StackSet が正常に更新されたことを確認します。`--operation-id` には、**update-stack-set** コマンドに返されたオペレーション ID を使用します。

   ```
   aws cloudformation describe-stack-set-operation \
     --operation-id operation_ID
   ```