スタックセットの更新 - AWS CloudFormation

スタックセットの更新

AWS マネジメントコンソール 内で、または AWS CLI で AWS CloudFormation コマンドを使用することでスタックセットを更新できます。このウォークスルーでは、送信チャネル設定のデフォルトスナップショット送信頻度を、[24hours (24 時間)] から [12hours (12 時間)] に変更します。

特定のスタックインスタンスのパラメータ値を上書きするには、「スタックインスタンスのパラメータを上書きする」を参照してください。

AWS CloudFormation コンソールを使用してスタックセットを更新する

  1. AWS CloudFormation コンソール (https://console.aws.amazon.com/cloudformation) を開きます。

  2. ナビゲーションパネルから [StackSets] を選択します。

  3. StackSets ページで、「スタックセットの作成」で作成したスタックセットを選択します。このウォークスルーで、my-awsconfig-stackset という名前のスタックセットを作成しました。

  4. スタックセットを選択した状態で、[アクション] メニューから [Edit StackSet details (StackSet 詳細の編集)] を選択します。

    
                        スタックセットページでスタックセットを更新する
  5. [テンプレートの選択] ページで、現在のテンプレートを更新するか、他のテンプレートに S3 URL を指定するか、AWS CloudFormation に新しいテンプレートをアップロードするかを選択します。このウォークスルーでは、現在のテンプレートを使用しています。[現在のテンプレートの使用] を選択し、[次へ] を選択します。

  6. [Specify StackSet details (スタックセットの詳細の指定)]ページで、パラメータ値を変更し、デプロイターゲットを指定します。

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

      [サービスマネージド型のアクセス許可] [Deployment targets (デプロイターゲット)] で、デプロイ先の組織のアカウントを選択します。

      
                                組織の一部の OU 内のすべてのアカウントにスタックセットの更新をデプロイします。
    2. [頻度] パラメータの値を [24hours] から [12hours] に変更します。

      この手順の詳細、および AWS Config で使用される値を指定する他のパラメータの詳細については、『AWS Config 開発者ガイド』の「コンソールによる AWS Config の設定」を参照してください。

      他のパラメータは変更しないでください。このウォークスルーでは、Amazon SNS の更新は設定しません。

      終了したら、[次へ] を選択します。

  7. [Configure StackSet options (StackSet オプションの設定)] ページでは、変更は必要ありませんが、必要に応じてタグを更新、削除、または新しいタグを追加することができます。AWS でのタグの使用方法に関する詳細については、『AWS Billing and Cost Management ユーザーガイド』の「コスト配分タグの使用」を参照してください。

    [アクセス権限] を変更せずに、[次へ] を選択します。

  8. [Set deployment options (デプロイオプションの設定)] ページで、デフォルト値の [1] および [Maximum concurrent accounts (同時アカウントの最大数)] の [By number (数値)] を保持します。[Failure tolerance (障害耐性)] をデフォルトの [0] のままにし、By number (数値) デフォルトオプションをそのままにします。[次へ] を選択します。

    注記

    ここではアカウントとリージョンを変更することはできません。つまり、いくつかのアカウントやリージョンにはスタックセットの変更をデプロイし、他のアカウントやリージョンにはデプロイしない、ということはできません。

  9. [確認] ページで、設定とスタックセットのプロパティを確認します。変更するには、プロパティを変更する領域の右上隅で [Edit (編集)] を選択します。スタックセットを更新する前に、[CAPABILITY] 領域のチェックボックスをオンにし、スタックセットで更新しているリソースの一部が IAM リソースやアクセス権限を必要とする場合があることを認識します。必要となる可能性があるアクセス権限の詳細については、本ガイドの「AWS CloudFormation テンプレートで IAM リソースを認識する」を参照してください。スタックセットを作成する準備ができたら、[送信] を選択します。

    AWS CloudFormation によってスタックセットへの更新の適用が開始され、スタックセット詳細ページの [オペレーション] タブが表示されます。

  10. [オペレーション] タブで更新オペレーションの進捗と状況を確認できます。更新された [頻度] パラメータは [パラメータ] タブに表示されます。

AWS CLI を使用してスタックセットを更新する

update-stack-set AWS CLI コマンドを実行して、スタックセットを変更します。このウォークスルーでは、MaximumExecutionFrequency パラメータの値を更新します。AWS Config ルールを作成または更新するためのパラメータ名、および値の詳細については、AWS CLI リファレンスの put-config-rule を参照してください。テンプレートのパラメータ値を変更するには、--parameters パラメータを追加します。--parameters の値として指定できるものについての詳細は、AWS CloudFormation API リファレンスの Parameter および AWS CLI コマンドリファレンスupdate-stack を参照してください。

ここで示すサンプルコマンドでは、--parameters を使用してスタックセットを更新します。具体的には、送信チャネル設定のデフォルトスナップショット送信頻度を [TwentyFour_Hours] から [Twelve_Hours] に変更します。現在のテンプレートをまだ使用しているため、--use-previous-template パラメータを追加します。

  1. 次のコマンドを実行します。stack set name には、スタックセット名 my-awsconfig-stackset を指定します。

    次の例で示している通り、FailureToleranceCount パラメータで 0MaxConcurrentCount に、1--operation-preferences に設定することで、障害耐性および同時アカウントの最大数を設定します。代わりに割合を適用するには、FailureTolerancePercentage または MaxConcurrentPercentage を使用します。このウォークスルーでは、割合ではなくカウントを使用します。

    [セルフマネージド型のアクセス許可] 更新のターゲットにするアカウント ID を指定します。

    aws cloudformation update-stack-set --stack-set-name my-awsconfig-stackset --use-previous-template --parameters ParameterKey=MaximumExecutionFrequency,ParameterValue=TwentyFour_Hours\\,Twelve_Hours --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1 --accounts

    [サービスマネージド型のアクセス許可] 更新のターゲットにする組織 (ルート) ID、OU ID、AWS 組織のアカウント ID のいずれかを指定します。

    aws cloudformation update-stack-set --stack-set-name my-awsconfig-stackset --use-previous-template --parameters ParameterKey=MaximumExecutionFrequency,ParameterValue=TwentyFour_Hours\\,Twelve_Hours --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1 --deployment-targets OrganizationalUnitIds='["ou-rcuk-1x5j1lwo", "ou-rcuk-slr5lh0a"]' --regions '["eu-west-1"]'
  2. describe-stack-set-operation コマンドを実行して更新オペレーションのステータスおよび結果を表示し、スタックセットが正常に更新されたことを確認します。--operation-id には、update-stack-set コマンドに返されたオペレーション ID を使用します。

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