はじめに
リソース構築を複数のAWSアカウントに対して同時に行いたいことってありますよね。例えば、ハンズオンセミナーを開催する時等では、参加者のAWSアカウントに同じ環境を用意する必要があります。 2~3アカウントであれば、マネジメントコンソールからポチポチ進められるかもしれませんが、アカウント数が多いと大変です。
もしこれが、ボタンぽち、で複数のAWSアカウントへの環境構築を一気に出来たら便利だと思いませんか?出来ますよ、そう、CloudFormation スタックセットならね。
参考:AWS CloudFormation が StackSet で複数のアカウントとリージョンのプロビジョニングをサポート
CloudFormation スタックセット概要
CloudFormation スタックセットにより、CloudFormationのスタックを複数アカウントに対してプロビジョニングできます。(CloudFormationについては弊社ブログでも記事がありますので、適宜参照ください)
CloudFormation スタックセットでは、管理者アカウント(CloudFormationのスタックセットを作成するアカウント)と、ターゲットアカウント(CloudFormationスタックが実行され、リソースが構築されるアカウント)の2種類のAWSアカウントが存在します。
スタックセットを作成する前にあらかじめ両方のアカウントにスタックセットのオペレーションを実行するためのIAMロールを作成しておく必要があります。それらのIAMロールを用いてクロスアカウントでのスタックセットのオペレーションが実行されます。
概要手順
それでは、以下、CloudFormation スタックセットを作成する手順の概要を紹介します。
前提条件
- 管理者アカウントのAWSアカウント、ターゲットアカウントのAWSアカウントが準備されていること
- リソースを構築するためのCloudFormationテンプレートが準備されていること
- ターゲットアカウントのAWSアカウントナンバーが記載されたCSVファイルが準備されていること
- 以下のようにターゲットアカウントすべてのAWSアカウントナンバーが記載されたCSVファイルを準備しておきます
IAMロールの作成
管理者アカウントでIAMロール AWSCloudFormationStackSetAdministrationRole
を作成します。
ターゲットアカウントでIAMロール AWSCloudFormationStackSetExecutionRole
を作成します。
これらのIAMロールを作成するためのCloudFormationのテンプレートがAWSから提供されているため、これを使うとよいと思います。以下ページを参照ください。 前提条件: スタックセットオペレーションのアクセス権限の付与
スタックセットの作成
CloudFormationのページから左上の「CloudFormation」を選択し、「スタックセット」を選択します。
「スタックセットの作成」ボタンを選択します。
「テンプレートをAmazon S3にアップロード」を選択し、「テンプレートのアップロード」から「参照」ボタンを選択し、事前に準備しておいたCloudFormationのテンプレートファイルを選択します。 準備が出来たら「次へ」を選択します。
任意のスタックセット名を入力し、「次へ」を選択します。
「アカウントの設定」から「スタックがデプロイされている有効なアカウントのカンマ区切り値(CSV)のファイルをアップロード」を選択し、事前に準備したターゲットアカウントのAWSアカウントナンバーが記載されたCSVファイルを選択します。 「リージョンの指定」からスタックをデプロイするリージョンを選択します。 必要に応じて「デプロイオプション」を調整します、今回はデフォルトのまま「次へ」を選択します。
必要に応じて「オプション」を編集します。今回はデフォルトのまま「次へ」を選択します。
「AWS CloudFormationによってカスタム名のついたIAMリソースが作成される場合があることを承認します。」にチェックを入れ、「作成」を選択します。
無事にスタックのデプロイが完了すると、「スタックセットのプロパティ」ページで以下のようにステータスが「SUCCEEDED」になります。
おわりに
CloudFormation スタックセットで複数のAWS環境構築を一気に行う内容を紹介しました。 さて、実際にこの機能を準備に利用しているセミナーでもあるCloud Automatorのハンズオンセミナーが東京・大阪で開催されます。Cloud AutomatorやAWS運用自動化に興味のある方がいらっしゃれば、是非ご参加頂けたらと思います。お申込みは以下ページよりお願いします。
(大阪)大阪にてAWS運用自動化ツール「Cloud Automator」のハンズオンセミナーを開催します (東京)AWS運用自動化ツール「Cloud Automator」のハンズオンセミナーを開催します