記事検索

検索ワードを入力してください。
Sky Tech Blog
【AWS】CloudFormation StackSets入門

【AWS】CloudFormation StackSets入門

AWS CloudFormation StackSetsは、複数のAWSアカウントやリージョンに対して、一度の操作でスタックをデプロイ・更新・削除できる機能です。これにより、複数環境に対して効率的にデプロイ・管理が可能になります。

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を使うことで、複数アカウント・複数リージョンにわたってスタックを効率的に展開・管理できます。 使う機会は多くない機能かと思いますが、知っておくと運用工数を大きく削減できる便利な機能になっています。


\シェアをお願いします!/
  • X
  • Facebook
  • LINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム