AWS Management Consoleまたは AWS CLI を使用してスタックセットを更新する
AWS Management Console 内で、または AWS CLI で AWS CloudFormation コマンドを使用することでスタックセットを更新できます。このウォークスルーでは、送信チャネル構成のデフォルトスナップショット送信頻度を、[24hours (24 時間)] から [12hours (12 時間)] に変更します。
特定のスタックインスタンスのパラメータ値を上書きするには、「AWS Management Consoleまたは AWS CLI を使用してパラメータ値を上書きする」を参照してください。
AWS CloudFormation コンソールを使用してスタックセットを更新する
AWS CloudFormation コンソール (https://console.aws.amazon.com/cloudformation
) を開きます。 -
ナビゲーションペインから [StackSets] を選択します。
-
StackSets ページで、AWS Management Consoleまたは AWS CLI を使用してスタックセットを作成する で作成したスタックセットを選択します。このウォークスルーで、
my-awsconfig-stackset
という名前のスタックセットを作成しました。 -
スタックセットを選択した状態で、[Actions] (アクション) メニューから [Edit StackSet details] (StackSet 詳細の編集) を選択します。
-
[テンプレートの選択] ページで、現在のテンプレートを更新するか、他のテンプレートに S3 URL を指定するか、AWS CloudFormation に新しいテンプレートをアップロードするかを選択します。このウォークスルーでは、現在のテンプレートを使用しています。[現在のテンプレートの使用] を選択し、[次へ] を選択します。
-
[Specify StackSet details (スタックセットの詳細の指定)]ページで、パラメータ値を変更し、デプロイターゲットを指定します。
-
[セルフマネージド型のアクセス許可] [Deployment targets (デプロイターゲット)] で、[Deploy stacks in accounts (スタックをアカウントにデプロイ)] を選択します。ターゲットアカウント番号をテキストボックスに貼り付け、複数の数字をカンマで区切ります。
[サービスマネージド型のアクセス許可] [Deployment targets (デプロイターゲット)] で、デプロイ先の組織のアカウントを選択します。
-
リージョンを選択します。
-
[頻度] パラメータの値を [24hours] から [12hours] に変更します。
この手順の詳細、および AWS Config で使用される値を指定する他のパラメータの詳細については、「AWS Config デベロッパーガイド」の「コンソールによる AWS Config の設定」を参照してください。
他のパラメータは変更しないでください。このウォークスルーでは、Amazon SNS の更新は設定しません。
終了したら、[次へ] を選択します。
-
-
[Configure StackSet options (StackSet オプションの設定)] ページでは、変更は必要ありませんが、必要に応じてタグを更新、削除、または新しいタグを追加することができます。AWS でのタグの使用方法に関する詳細については、「AWS Billing and Cost Management ユーザーガイド」の「Using cost allocation tags」(コスト配分タグの使用) を参照してください。実行構成を管理して、StackSets が競合しないオペレーションを同時に実行し、競合するオペレーションをキューに入れるかどうかを指定することもできます。競合するオペレーションが終了すると、StackSets はキューに入っているオペレーションをリクエスト順に開始します。
注記
既に実行中のオペレーションまたはキューに入っているオペレーションがある場合、StackSets はオペレーションが競合しない場合でもすべての受信オペレーションをキューに入れます。
そのスタックセットに実行中のオペレーションまたはキューに入っているオペレーションがある間は、スタックセットの実行構成を変更することはできません。
[Permissions] (アクセス許可) を変更せずに、[Next] (次へ) を選択します。
-
[Set deployment options] (セットデプロイオプション) ページで、デフォルト値の 1 および [Maximum concurrent accounts] (同時アカウントの最大数) の [By number] (数値) を保持します。[Failure tolerance (障害耐性)] をデフォルトの [0] のままにし、By number (数値) デフォルトオプションをそのままにします。[Next] を選択します。
注記
ここではアカウントとリージョンを変更することはできません。つまり、いくつかのアカウントやリージョンにはスタックセットの変更をデプロイし、他のアカウントやリージョンにはデプロイしない、ということはできません。
-
[確認] ページで、設定とスタックセットのプロパティを確認します。変更するには、プロパティを変更する領域の右上隅で [Edit (編集)] を選択します。スタックセットを更新する前に、[CAPABILITY] 領域のチェックボックスをオンにし、スタックセットで更新しているリソースの一部が IAM リソースやアクセス権限を必要とする場合があることを認識します。必要である可能性のある許可の詳細については、「CloudFormation テンプレートでの IAM リソースの承認」を参照してください。スタックセットを作成する準備ができたら、[Submit] (送信) を選択します。
AWS CloudFormation によってスタックセットへの更新の適用が開始され、スタックセット詳細ページの [オペレーション] タブが表示されます。
-
[オペレーション] タブで更新オペレーションの進捗と状況を確認できます。更新された [頻度] パラメータは [パラメータ] タブに表示されます。
AWS CLI を使用してスタックセットを更新する
委任された管理者として行動する場合は、StackSets コマンドを実行するたびに --call-as
パラメータを DELEGATED_ADMIN
に設定する必要があります。
--call-as
DELEGATED_ADMIN
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
パラメータを追加します。
-
以下のコマンドを実行します。
stack set name
には、スタックセット名my-awsconfig-stackset
を指定します。次の例で示している通り、
FailureToleranceCount
パラメータで0
をMaxConcurrentCount
に、1
を--operation-preferences
に設定することで、障害耐性および同時アカウントの最大数を設定します。代わりに割合を適用するには、FailureTolerancePercentage
またはMaxConcurrentPercentage
を使用します。このウォークスルーでは、割合ではなくカウントを使用します。注記
MaxConcurrentCount
の値は、FailureToleranceCount
の値に依存します。MaxConcurrentCount
は、最大でFailureToleranceCount
より 1 だけ多くなります。[セルフマネージド型のアクセス許可] 更新のターゲットにするアカウント ID を指定します。
aws cloudformation update-stack-set --stack-set-name
my-awsconfig-stackset
--use-previous-template --parameters ParameterKey=MaximumExecutionFrequency
,ParameterValue=TwentyFour_Hours
\\,Twelve_Hours
--operation-preferencesFailureToleranceCount=0
,MaxConcurrentCount=1
--accounts '["account_ID_1
","account_ID_2
"]'[Service-managed permissions (サービスマネージド型のアクセス許可)] 更新のターゲットにする組織 (ルート) ID、OU ID、AWS Organizations のアカウント ID のいずれかを指定します。
aws cloudformation update-stack-set --stack-set-name
my-awsconfig-stackset
--use-previous-template --parameters ParameterKey=MaximumExecutionFrequency
,ParameterValue=TwentyFour_Hours
\\,Twelve_Hours
--operation-preferencesFailureToleranceCount=0
,MaxConcurrentCount=1
--deployment-targets OrganizationalUnitIds='["ou-rcuk-1x5j1lwo
", "ou-rcuk-slr5lh0a
"]' --regions '["eu-west-1
"]' -
describe-stack-set-operation
コマンドを実行して更新オペレーションのステータスおよび結果を表示し、スタックセットが正常に更新されたことを確認します。--operation-id
には、update-stack-set
コマンドに返されたオペレーション ID を使用します。aws cloudformation describe-stack-set-operation --operation-id
operation_ID