

# CloudFormation StackSet 内のスタックのパラメータ値を上書きする
<a name="stackinstances-override"></a>

場合によっては、特定のリージョンまたはアカウントのスタックのプロパティ値を、StackSet そのものに指定されたものとは異なる値にすることがあります。たとえば、アカウントが開発に使用されているか本稼働に使用されているかに基づいて、指定されたパラメータに異なる値を指定する場合を考えます。このような状況の場合、CloudFormation では、アカウントおよびリージョン別にスタックのパラメータ値を上書きできます。スタックを初めて作成する際に、テンプレートパラメータの値を上書きできます。また、既存のスタックのパラメータ値を上書きすることもできます。スタックで以前に上書きしたパラメータは、StackSet に指定されている値にのみ戻すことができます。

パラメータ値の上書きは、選択したアカウントとリージョンのスタックに適用されます。StackSet の更新中、スタックで上書きされたすべてのパラメータ値は更新されず、上書きされた値を保持します。

StackSet で指定されたパラメータ*値*のみを上書きできます。パラメータそのものを追加または削除するには、StackSet のテンプレートを更新する必要があります。StackSet テンプレートにパラメータを追加する場合、スタックのパラメータ値を上書きするには、まずすべてのスタックを StackSet に指定された新しいパラメータと値で更新する必要があります。すべてのスタックが新しいパラメータに更新されたら、個々のスタックのパラメータ値を必要に応じて上書きできます。

スタックの作成時に StackSet のパラメータ値を上書きする方法については、「[StackSets にスタックを追加する](stackinstances-create.md)」を参照してください。

**Topics**
+ [スタックのパラメータを上書きする (コンソール)](#stackinstances-override-console)
+ [スタックのパラメータを上書きする (AWS CLI)](#stackinstances-override-cli)

## スタックのパラメータを上書きする (コンソール)
<a name="stackinstances-override-console"></a>

**特定のスタックのパラメータを上書きするには**

1. AWS マネジメントコンソール にサインインし、CloudFormation コンソール ([https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)) を開きます。

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

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

1. StackSet を選択した状態で、**[アクション]** メニューから **[StackSet パラメータを上書き]** を選択します。

1. **[デプロイオプションの設定]** ページで、パラメータを上書きするスタックのアカウントとリージョンを指定します。

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

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

      [サービスマネージド型のアクセス許可] 次のいずれかを実行します。
      + [**Deploy to organizational units (OUs) (組織単位 (OU) にデプロイ)**] を選択します。StackSet の作成に使用したターゲット OU を 1 つ以上入力します。上書きされたパラメータ値は、ターゲット OU とその子 OU に現在存在するアカウントにのみ適用されます。今後ターゲット OU とその子 OU に追加されるアカウントでは、StackSet のデフォルト値が使用され、オーバーライドされた値は使用されません。
      + [**Deploy to accounts (アカウントにデプロイ)**] を選択します。StackSet の作成に使用した一部またはすべてのターゲット OU ID またはアカウント ID を貼り付けます。

   1. **[リージョンの指定]** で、この StackSet のスタックをデプロイしたリージョンを 1 つまたは複数追加します。

      複数のリージョンを追加すると、[**Specify regions (リージョンの指定)**] のリージョンの順序に従って、デプロイの順序が決まります。

   1. **[デプロイオプション]** で、次の操作を行います。
      + **[同時アカウントの最大数]** で、同時に処理されるアカウントの数を指定します。
      + **[耐障害性]** には、リージョンごとに許可されるアカウント障害の最大数を指定します。この制限に達すると、オペレーションは停止し、他のリージョンには進みません。
      + **[リージョンの同時実行]** で、リージョンの処理方法を選択します。**[順次]** (一度に 1 つのリージョン) または **[並列]** (複数のリージョンを同時に) を選択できます。
      + **[同時実行モード]** で、オペレーションの実行中に同時実行がどのように動作するかを選択します。
        + **[厳格な耐障害性]** – 障害発生時の同時実行レベルを下げ、**[耐障害性]** の値を \$11 の範囲内にとどめます。
        + **[ソフトな障害耐性]** – 障害に関係なく、指定された同時実行レベル (**[同時アカウントの最大数]** の値) を維持します。

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

1. [**Specify Overrides (上書きの指定)**] ページで、上書きするパラメータのチェックボックスをオンにし、[**Edit override value (上書き値の編集)**] メニューから [**Override StackSet value (StackSet 値の上書き)**] を選択します。

1. [**Override StackSet parameter values (StackSet パラメータ値の上書き)**] ページで、変更を加え、[**変更の保存**] を選択します。
**注記**  
上書きされたパラメータを、StackSet で指定された値を再度使用するように設定するには、すべてのパラメータを確認し、**[上書き値の編集]** メニューから **[StackSet 値に設定]** を選択します。これにより、スタックを更新すると、すべての上書きされた値が削除されます。

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

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

   CloudFormation がスタックの更新を開始します。スタックの進捗状況とステータスは、**[送信]** を選択した際に開く StackSet 詳細ページで確認できます。

## スタックのパラメータを上書きする (AWS CLI)
<a name="stackinstances-override-cli"></a>

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

**特定のスタックのパラメータを上書きするには**

1. [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack-instances.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack-instances.html) AWS CLI コマンドを使用し、`--parameter-overrides` オプションを指定します。

   [セルフマネージド型のアクセス許可] `--accounts` オプションでは、スタックのパラメータ値を上書きするアカウント ID を指定します。

   ```
   aws cloudformation update-stack-instances --stack-set-name my-stackset \
     --parameter-overrides ParameterKey=Subnets,ParameterValue=subnet-1baa3351\\,subnet-27b86940 \
     --accounts account_id --regions us-east-1
   ```

   [サービスマネージド型のアクセス許可] `--deployment-targets` オプションでは、スタックのパラメータ値を上書きする組織のルート ID、OU ID、または AWS Organizations アカウント ID を指定します。この例では、OU 内のすべてのアカウントのスタックのパラメータ値を `ou-rcuk-1x5j1lwo` ID で上書きします。

   上書きされたパラメータ値は、ターゲット OU とその子 OU に現在存在するアカウントにのみ適用されます。今後ターゲット OU とその子 OU に追加されるアカウントでは、StackSet のデフォルト値が使用され、上書きされた値は使用されません。

   ```
   aws cloudformation update-stack-instances --stack-set-name my-stackset \
     --parameter-overrides ParameterKey=Subnets,ParameterValue=subnet-1baa3351\\,subnet-27b86940 \
     --deployment-targets OrganizationalUnitIds=ou-rcuk-1x5j1lwo \
     --regions us-east-1
   ```

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

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