CloudFormation StackSetsとは?
AWS CloudFormation StackSets は、複数のアカウントやリージョンに対して、
一度の操作でスタックをデプロイ・更新・削除ができる機能です。
通常、CloudFormationは1つのアカウント内で、1つのリージョンにのみデプロイしますが、
StackSetsを使うことで複数環境に対して、まとめてデプロイ・管理ができるようになります。
利用の流れはシンプルで、まずStackSetを作成し、その後にスタックインスタンスを
対象のアカウントやリージョンに展開する、という二段階になっています。
(構成イメージ)

使用方法
0. 前準備
StackSetsを利用するには、事前に管理アカウント及びターゲットアカウントにIAMロールの用意が必要です。 このIAMロールの準備方法は2通りあります。
➀サービスマネージド型
AWS Organizations が有効であることが前提となりますが、この場合Organizationsが自動的に各アカウントにデプロイしてくれます。
この方法の場合、基本的にOrganizationsのマスターアカウントが管理アカウントになります。
※委任管理者として別のメンバーアカウントも登録可能です
➁セルフマネージド型
各アカウントにIAMロールを自身でデプロイする必要があります。
作成手順はAWS公式に記載がありますので、以下を参照ください。
1. StackSetの作成
StackSetを作成します。 これは、複数アカウントや複数リージョンに展開するスタックをひとまとめに管理する単位になります。
aws cloudformation create-stack-set \
--stack-set-name MyStackSet \
--template-body file://template.yaml \
--permission-model SELF_MANAGED \
--administration-role-arn "<管理アカウントのIAMロールのARN>" \
--execution-role-name "<メンバーアカウントのIAMロール名>"
2. スタックインスタンスの作成
作成したStackSetsをもとに、各アカウントやリージョンに実際のスタックを展開します。
aws cloudformation create-stack-instances \
--stack-set-name MyStackSet \
--accounts 111111111111 222222222222 \
--regions ap-northeast-1
ユースケース
複数のAWSアカウントに「共通で入れておきたい設定やリソース」を一括展開したい、以下のケースなどでは特に便利です。
- 監査・セキュリティ系サービスの有効化(例:AWS CloudTrail, AWS Config)
- 各アカウントの共通リソースをデプロイ(例:S3バケット, IAM)
また注意点として、2025/9/25時点で、StackSetsは変更セットを直接サポートしていません。 そのため、更新を安全に適用したい場合は、個別のスタックで事前に変更セットを作成して検証する・テスト用のスタックを先に更新するなどの工夫が必要です。
まとめ
StackSetsを使うことで、複数アカウント・複数リージョンにわたってスタックを効率的に展開・管理できます。 使う機会は多くない機能かと思いますが、知っておくと運用工数を大きく削減できる便利な機能になっています。

