SAP-C02-045 · 理解確認
理解確認:CloudFormationを利用した大規模Deployment
ネストされたスタック / StackSets / マルチアカウント / マルチリージョン / 依存関係 / デプロイ範囲 · 13問
1つのCloudFormation テンプレートが巨大化し、ネットワーク・セキュリティ・アプリケーションを再利用可能なテンプレートへ分割したい。デプロイ先は1つのアカウント / リージョンのままである。最も適切な設計はどれか。
B. ネストされたスタックによるテンプレート内部の分割でインフラストラクチャを構成単位へ分割する
C. StackSetsの自動デプロイで複数OUへ同じ構成を展開する
D. StackSetsの運用設定で複数リージョンへ順次展開する
答えと解説
答え:B
要件はデプロイ範囲の拡大ではなく構成の分割です。テンプレート分割・再利用にはネストされたスタックを利用します。
ルートスタックの配下に複数ネストされたスタックがある。階層全体のテンプレートを更新したい。ライフサイクル管理として最も適切なのはどれか。
B. StackSetsへ変換してから更新する
C. 基本的にルートスタックから更新操作を開始する
D. ネストされたスタックのリソースをコンソールから直接変更する
答えと解説
答え:C
ネストされたスタックのライフサイクル操作は基本的にルートスタックから開始し、階層全体を一貫して管理します。
同じセキュリティベースラインのCloudFormation テンプレートを20のAWSアカウントと3つのAWSリージョンへ展開したい。最も適切なCloudFormation機能はどれか。
B. ネストされたスタック
C. ドリフト検知によるデプロイ後の差分確認
D. 変更セットによる更新内容の事前確認
答えと解説
答え:A
同じスタックを複数アカウント / リージョンへ配布するディストリビューション問題にはStackSetsが適します。
AWS Organizationsの本番 OU配下にあるメンバーアカウントへ共通ベースラインを展開し、新規アカウント追加にも追従したい。クロスアカウントロールを各アカウントへ手作業で用意したくない。最も適切なのはどれか。
B. セルフマネージド権限だけを使い、全メンバーへIAMロールを手作業で作る
C. 各メンバーアカウントで個別スタックを作成し、新規追加時も手動展開する
D. 信頼済みアクセスを利用するサービス-マネージド StackSetsを使用する
答えと解説
答え:D
Organizations配下のメンバーアカウントへOU単位で展開し、メンバーシップ変化にも追従する要件ではサービス-マネージド権限が適します。必要ならアカウントフィルターで範囲を絞れます。
サービス-マネージド StackSetsの自動デプロイについて正しいものを3つ選択してください。
B. 組織 / OUへ新しいメンバーアカウントが追加されたときスタックインスタンスを自動デプロイできる
C. 管理アカウントにも自動的にスタックインスタンスを作成する
D. 対象OUからアカウントが外れた場合、スタックを削除するかリソースを保持する動作を設定できる
E. Organizations外アカウントにもクロスアカウントロールなしで自動展開できる
F. 自動デプロイはサービス-マネージド StackSetsでOrganizationsのメンバーシップ変化へ追従するために利用できる
答えと解説
答え:B / D / F
自動デプロイはOrganizationsの範囲変化へ追従します。運用 設定はAutoDeploymentには適用されず、管理アカウントもデプロイ対象ではありません。
Organizationsに所属していないパートナーアカウントを含めて同じCloudFormation スタックを展開する必要がある。最も適切なStackSets権限モデルはどれか。
B. ネストされたスタックでパートナーアカウント自体を子スタックとして管理する
C. セルフマネージド権限を利用し、必要なクロスアカウント IAMロール / 信頼を構成する
D. 自動デプロイだけを有効にして、クロスアカウント権限の設定を省略する
答えと解説
答え:C
Organizations外アカウントを含むデプロイではセルフマネージド権限が候補となり、クロスアカウント IAMロール / 信頼を自分で準備します。
数百アカウントへ重要セキュリティベースラインの更新を展開する。障害発生時の影響範囲を抑えることがデプロイ速度より重要である。最も適切な方針はどれか。
B. 最大同時実行数を抑え、障害許容度を保守的に設定する
C. 自動デプロイだけに任せ、障害許容度は個別に設定しない
D. 全リージョンを同時かつ最大並列で更新し、段階展開を行わない
答えと解説
答え:B
安全性優先なら同時実行範囲を抑え、障害許容度を保守的にして段階的にロールアウトします。
StackSet 運用 設定で制御できる項目として正しいものを4つ選択してください。
B. OUへのアカウント追加時の自動デプロイ有効化
C. 障害許容度
D. リージョン同時実行
E. 管理アカウントをデプロイ対象へ含める設定
F. 同時実行モード
答えと解説
答え:A / C / D / F
運用 設定は明示的なStackSet 運用の同時実行数、障害許容度、リージョン同時実行、同時実行モードなどを制御します。
AWS CloudFormation StackSetsで複数アカウント・複数リージョンへ標準構成を展開している。特定アカウントの特定リージョンだけ失敗し、その展開単位を特定して再実行したい。スタックインスタンスとして扱う単位はどれか。
B. StackSet テンプレートを保存するS3 オブジェクト
C. OrganizationsのOUそのものをスタックインスタンスとして扱う
D. ネストされたスタックのルートスタックだけを指す名称
答えと解説
答え:A
スタックインスタンスはアカウント × リージョンごとの展開単位で、その場所に展開されるスタックをStackSet側から管理します。
CloudFormationの依存関係設計について正しいものを3つ選択してください。
B. ネストされたスタックの出力は親テンプレートがGetAtt等で取得し、別ネストされたスタックへパラメータとして渡せる
C. Ref / GetAtt / SubなどからCloudFormationは暗黙的な依存関係を認識できる
D. すべてのリソースへDependsOnを付けるほど並列デプロイしやすくなる
E. サービス-マネージド + 自動デプロイではStackSet間依存関係で自動デプロイ運用の順序を制御できる
F. StackSet 依存関係はすべての手動運用へ自動的に依存関係グラフを適用する
答えと解説
答え:B / C / E
ネストされたスタック間の値は含む テンプレートを介し、リソース参照は暗黙的な依存関係を形成します。StackSet 依存関係は自動デプロイの運用順序を制御する用途です。
同じStackSet テンプレートを複数リージョンへ展開したところ、一意名を要求するリソースで作成障害が発生した。設計時に最も確認すべきだったものはどれか。
B. ネストされたスタックの階層深さだけをリージョンごとに確認する
C. グローバルリソース / グローバル名前とリージョンごとのリソース可用性
D. ドリフト検知を実行する時間間隔だけをリージョン別に調整する
答えと解説
答え:C
マルチリージョンデプロイでは、Amazon S3 バケットなどのグローバル名前、IAM系のグローバルリソース、リージョン可用性を確認します。
ネストされたスタックとStackSetsの選択・制約について正しいものを4つ選択してください。
B. ネストされたスタックは大きなインフラストラクチャを複数テンプレートへ分割・再利用する構成 問題に適する
C. StackSetsは同じスタックを複数アカウント / リージョンへ展開するディストリビューション問題に適する
D. サービス-マネージド StackSetsではネストされたスタックを含むテンプレートを問題なく展開できる
E. ネストされたスタックとStackSetsは解く問題が異なるため、要件を構成とディストリビューションに分けて判断する
F. サービス-マネージド StackSetsではネストされたスタックを含むテンプレートはサポートされない
答えと解説
答え:B / C / E / F
ネストされたスタックは構成、StackSetsはディストリビューションを主に解決します。またサービス-マネージド StackSetsではネストされたスタックを含むテンプレートはサポートされません。
サービス-マネージド StackSetsで組織配下のOUへ共通ベースラインを展開した。AWS Organizationsの管理アカウントにも同じベースラインを適用する必要がある。最も適切な判断はどれか。
B. 管理アカウントをアカウントフィルターへ追加すれば通常どおりデプロイできる
C. 自動デプロイを緩やかな障害許容度にすれば管理アカウントも対象になる
D. サービス-マネージド StackSetsは管理アカウントを対象にしないため、別途デプロイを設計する
答えと解説
答え:D
サービス-マネージド StackSetsのデプロイ対象はOrganizations配下のメンバーアカウントであり、管理アカウントは対象外です。同じベースラインが必要なら別途デプロイを設計します。