Stack Sets から一部のアカウント・リージョンのスタックを削除する方法を教えてください

2024.01.31

困っていた内容

マルチアカウント・リージョンにデプロイしている Stack Sets において、一部のアカウント・リージョンのリソースが不要になりました。
一部のアカウント・リージョンのスタックを削除したいのですが、必要なスタックの削除を避けるためにも、Stack Sets そのものは削除したくありません。
Stack Sets は削除せずに、一部のアカウント・リージョンのデプロイ済みのスタックを削除することは可能でしょうか。

どう対応すればいいの?

Stack Sets は削除せずに、一部のアカウント・リージョンのスタックを削除することは可能です

StackSets の概念 - AWS CloudFormation

スタックの削除
スタックを削除する場合は、指定したリージョン内の指定したターゲットアカウントから、スタックおよび関連付けられているリソースを削除します。スタックは次の方法で削除できます。
・一部のターゲットアカウントからスタックを削除し、実行中の他のターゲットアカウントの他のスタックはそのままにしておきます。
・一部のリージョンからスタックを削除し、実行中の他のリージョンのスタックはそのままにしておきます。

やってみた

マネジメントコンソールの StackSets の項目から、対象の StackSets を選択し、「アクション」から「StackSets からスタックを削除」の項目を選択します。

「アカウント」の項目で、削除対象のアカウント ID を入力します。

「リージョンの指定」の項目で、削除対象のリージョンを入力します。
選択可能リージョンはスタックをデプロイしているリージョンのみです。
(画像の StackSets では東京リージョンとバージニア北部リージョンにスタックをデプロイしています)

ステップ 2 「レビュー」まで進み、「送信」を押下します。
これでスタックの削除手順は完了です。

なお、スタック削除時の影響がご心配な場合は、事前の検証環境による検証を推奨します。

参考資料

StackSets の概念 - AWS CloudFormation
スタックセットからのスタックインスタンスの削除 - AWS CloudFormation