CI2部 技術2課の山﨑です。
複数のAWSアカウントならびに複数のリージョンにワンオペレーションでAWSリソースをデプロイすることができるCloudFormation StackSetsはとても便利で、マルチアカウント運用をしている場合は重宝されている方もいらっしゃるのではないかと思います。
この度、CloudFormation StackSetsのOU単位のデプロイにおいてアカウント単位でデプロイ可能なオプションが追加されましたので、簡単にご紹介したいと思います。
おさらい
CloudFormation StackSets とは?
AWS CloudFormationの機能の1つで、複数のAWSアカウントおよび複数のAWSリージョンに対して1度のオペレーションでAWSリソースの作成/更新/削除を実行することができる機能です。
AWS Organizations を利用している場合、デプロイ時に「自動デプロイ設定」を有効にすることで新規発行したAWSアカウントが指定のOUに配置されると自動でStackSetsをすることができるため、AWSアカウントの初期セットアップにとても便利です。
その他、CloudFormation StackSetsの詳細については以下のブログを合わせてご覧ください。
デプロイターゲットについて
CloudFormation StackSetsで指定可能なデプロイターゲットの単位は、デプロイを実行するAWSアカウントの特性によって異なります
No | AWSのアカウント特性 | 組織単位 | OU単位 | AWSアカウント単位 |
---|---|---|---|---|
1 | AWS Organizationsを利用している 且つ Management アカウント |
○ | ○ | ✕ |
2 | AWS Organizationsを利用している 且つ Member アカウント |
○ | ✕ | ○ |
3 | AWS Organizationsを利用していないアカウント | ○ | ✕ | ○ |
今回のアップデートの恩恵を受けるのは「AWS Organizationsを利用している且つManagement アカウント」で、AWSアカウント単位のデプロイが可能になります。
アップデート概要
アカウントフィルタータイプ が指定可能になりました
今回のAWSアップデートにより「アカウントフィルタータイプ」というオプションが追加され、以下の表で整理したいずれかのオプションを指定することでデプロイ先のAWSアカウントを指定/絞り込むことができます。
以降はAWSドキュメントに掲載されているイメージ図もとにアカウントフィルタータイプの内容をご紹介します。
共通集合(INTERSECTION)
デプロイターゲットとして特定のAWSアカウントを指定することができるデプロイオプションです。
上記のイメージ図では、デプロイターゲットとして「OU1」を指定し、実際にデプロイするAWSアカウントとして「A1」と「A2」を指定しています。
差分(DIFFERENCE)
デプロイターゲットから除外するAWSアカウントを指定することができるデプロイオプションです。
上記のイメージ図では、デプロイターゲットとして「OU1」を指定し、実際にデプロイするAWSアカウントとして「A3」のみを除外しています。
和集合(UNION)
複数のOUをデプロイ対象に指定した場合、指定した複数のOU内のAWSアカウントのうち、どのAWSアカウントにデプロイするかを指定することができるデプロイオプションです。
上記のイメージ図では、デプロイターゲットとして「OU1」「OU2」を指定し、実際にデプロイするAWSアカウントとして「A1」「A2」「A4」のみを指定しています。
なし(NONE)
イメージ図は割愛しますが、指定のOU内の全てのAWSアカウントをターゲットとしてデプロイすることができるデプロイオプションです。
まとめ
今回のAWSアップデートにより「アカウントフィルタータイプ」というオプションが追加されたことで、より柔軟にCloudFormation StackSetsのデプロイターゲットをコントロールすることができるようになりましたので是非ご活用ください。
山﨑 翔平 (Shohei Yamasaki) 記事一覧はコチラ
2019/12〜2023/2までクラウドインテグレーション部でお客様のAWS導入支援を行っていました。現在はIE(インターナルエデュケーション)課にて採用周りのお手伝いや新卒/中途オンボーディングの業務をしています。2023 Japan AWS Top Engineers/2023 Japan AWS Ambassadors