CloudFormation コンソールまたは AWS CLI を使用してパラメータ値を上書きする - AWS CloudFormation

CloudFormation コンソールまたは AWS CLI を使用してパラメータ値を上書きする

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

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

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

スタックインスタンスの作成時にスタックセットのパラメータ値を上書きする方法については「スタックをスタックセットに追加する」を参照してください。

CloudFormation コンソールを使用してスタックインスタンスのパラメータを上書きする

  1. AWS Management Console にサインインし、AWS CloudFormation コンソール (https://console.aws.amazon.com/cloudformation) を開きます。

  2. 画面の上部のナビゲーションバーで、スタックセットを作成した AWS リージョン を選択します。

  3. ナビゲーションペインから [StackSets] を選択します。[StackSets] ページで、スタックセットを選択します。

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

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

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

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

      [サービスマネージド型のアクセス許可] 次のいずれかを実行します。

      • [Deploy to organizational units (OUs) (組織単位 (OU) にデプロイ)] を選択します。スタックセットの作成に使用したターゲット OU を 1 つ以上入力します。上書きされたパラメータ値は、ターゲット OU とその子 OU に現在存在するアカウントにのみ適用されます。今後ターゲット OU とその子 OU に追加されるアカウントでは、スタックセットのデフォルト値が使用され、オーバーライドされた値は使用されません。

      • [Deploy to accounts (アカウントにデプロイ)] を選択します。スタックセットの作成に使用した一部またはすべてのターゲット OU ID またはアカウント ID を貼り付けます。

    2. [Specify regions (リージョンの指定)] で、このスタックセットのスタックインスタンスをデプロイした 1 つ以上のリージョンを追加します。

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

    3. [Deployment options (デプロイメントオプション)] で次のようにします。

      • [Maximum concurrent accounts (同時アカウントの最大数)] では、必要に応じて最大同時アカウント数を変更します。

      • [Failure tolerance (障害耐性)] では、必要に応じて障害耐性を変更します。

      • [Region concurrency (リージョンの同時実行)] では、必要に応じてリージョンの同時実行数を変更します。

      • [Concurrency mode (同時実行モード)] では、必要に応じて同時実行モードを変更します。

    4. [Next] を選択します。

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

  7. [Override StackSet parameter values (StackSet パラメータ値の上書き)] ページで、変更を加え、[変更の保存] を選択します。

    注記

    上書きされたパラメータを、スタックセットで指定された値を再度使用するように設定するには、すべてのパラメータを確認し、[Edit override value (上書き値の編集)] メニューから [Set to StackSet value (StackSet 値に設定)] を選択します。これにより、スタックインスタンスを更新すると、すべての上書きされた値が削除されます。

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

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

    CloudFormation によってスタックインスタンスの更新が開始されます。スタックインスタンス作成の進捗と状況は、[送信] を選択した際に開くスタックセット詳細ページで確認できます。

AWS CLI を使用してスタックインスタンスのパラメータを上書きするには

委任された管理者として行動する場合は、StackSets コマンドを実行するたびに --call-as オプションを DELEGATED_ADMIN に設定する必要があります。

--call-as DELEGATED_ADMIN
  1. update-stack-instances 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 に追加されるアカウントでは、スタックセットのデフォルト値が使用され、上書きされた値は使用されません。

    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"]'
  2. describe-stack-set-operation コマンドを実行して更新オペレーションのステータスと結果を表示し、スタックインスタンスでパラメータ値が正常に上書きされたことを確認します。--operation-id には、update-stack-instances コマンドに返されたオペレーション ID を使用します。

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