こんにちは。AWS CLIが好きな福島です。
はじめに
今回は、先日記載したブログの続きとなり、StackSetの実行方法を記載いたします。 StackSetの実行は、サービスマネージド型またはセルフマネージド型により変わるため、 今回は、サービスマネージド型の場合の実行方法を記載いたします。 ※それぞれの型についての詳細は、以下のブログを参照ください。
StackSet実行
StackSetの作成
CloudFormationサービス画面の左にあるStackSetsをクリックします。
「StackSetの作成」をクリックします。
テンプレートの選択
通常のスタック作成と同様に「テンプレートの選択」を行います。
StackSet の詳細を指定
通常のスタック作成と同様に「Stackset名」等を入力します。
StackSet オプションの設定
ここからStackSet特有の設定値になります。
今回は、Organizationsの機能を利用し、ターゲットアカウントにIAMロールを作成しているため、
「サービスマネージドアクセス許可」を選択します。
デプロイオプションの設定
デプロイオプション①
「組織へのデプロイ」を選択します。 デプロイ方法の違いは、以下の通りです。
- 組織へのデプロイ:
Organizations配下全部のメンバーアカウントにスタックを作成します。
※マネジメントアカウント(マスターアカウント)は除外されます。 - 組織単位(OU)へのデプロイ:
OUに所属しているメンバーアカウントにのみスタックを作成します。 ※OUに所属させることはないと思いますが、マネジメントアカウント(マスターアカウント)は除外されます。
デプロイオプション②
自動デプロイは、「有効」を選択します。
この設定が有効になっていると
組織へのデプロイの場合:
アカウントが追加される度に自動的にスタックをデプロイします。組織単位(OU)へのデプロイの場合:
OUにアカウントが追加される度に自動的にスタックをデプロイします。
デプロイオプション③
OUからアカウント削除時の動作は、「スタックを削除」を選択します。
デプロイオプション④
リージョンの指定は、「アジアパシフィック(東京)」を選択します。
※すべてのリージョンを追加する場合、デフォルトで無効のリージョンである
中東 (バーレーン)、アフリカ (ケープタウン)なども追加されるため、注意が必要です。
デプロイオプション⑤
同時アカウントの最大数は、「数値:1」、障害耐性は、「数値:0」を設定します。
同時アカウントの最大数
スタックを並列にデプロイするAWSアカウント数になります。 AWSアカウント数が多い場合は、この値を増やすことでデプロイの時間を短縮することが可能です。障害耐性
StackSetを停止する基準に利用されます。 StackSetは、テンプレートの内容やアカウント数によりますが、かなり時間がかかる場合があるため、この値は重要になります。
例) 数値が0の場合、1つのアカウントまたはリージョンでスタックの作成に失敗すると、StackSetが停止されます。 数値が10の場合、9つのアカウントまたリージョンでスタックの作成が失敗しても、StackSetは実行され続けます。
レビュー
最後に設定した内容を確認し、実行します。
ステータス確認
StackSetには、以下の2つの項目でステータスを確認することができます。
・オペレーション
StackSet実行の全体ステータス。
・スタックインスタンス
各インスタンス(AWSアカウント)ごとの実行ステータス。
それぞれのステータスの詳細は、以下を参照ください。
オペレーション
StackSet実行後は、ステータスが「RUNNING」となります。
全AWSアカウントへのスタック実行が完了すると、ステータスが「SUCCEEDED」となります。 各AWSアカウントごとの進捗は、「スタックインスタンス」の項目を確認します。
スタックインスタンス
StackSet実行後は、ステータスが「OUTDATED」となります。
OUTDATEDは、各AWSアカウントのスタックがStackSetと同じ最新状態になっていないことを示します。
時間が経過するとステータスが「CURRENT」となります。
CURRENTは、各AWSアカウントのスタックがStackSetと同じ最新状態になっていることを示します。
おまけ
実は、StackSetを更新する際は、以下の通り、
・組織単位(OU)へのデプロイ
・アカウントへのデプロイ
しかなく、 組織へのデプロイが存在しません。
しかし、Organizaionsのコンソールから確認できる「r-」から始まる識別子を入力することで 組織全体へのデプロイが可能となります。
※もし無効なIDが入力されている場合、「無効な OU ID」と表示されます。
おわりに
今回は、StackSet実行方法(サービスマネージド型編)について、記載いたしました。
次回は、セルフマネージド型編についてのブログを記載したいと思います。
※基本的には、サービスマネージド型を利用すれば問題ないかと思いますが、
ある特定のAWSアカウントにのみ適用したいスタックがある場合は、
セルフマネージド型を利用する必要があるかと思います。