Route 53 によるリージョン間の自動フェイルオーバー ある決済代行事業者は、加盟店向けの決済 API を AWS 上で運用しています。本番環境はバージニア北部リージョンに配置され、災害対策としてオレゴンリージョンに同等の環境をウォームスタンバイで待機させています。要件として、平常時のリクエストはすべてバージニア北部で処理し、ヘルスチェックによって本番環境の異常が検出されたときにだけ、DNS レベルで自動的にオレゴンへ切り替わることが求められています。ソリューションアーキテクトはどのように構成すべきですか。
A Amazon Route 53 の加重ルーティングポリシーを構成し、バージニア北部の重みを 100、オレゴンの重みを 0 に設定する B Amazon Route 53 のフェイルオーバールーティングポリシーを構成し、オレゴンのエンドポイントをプライマリ、バージニア北部をセカンダリに設定する C Amazon Route 53 のレイテンシールーティングポリシーを構成し、バージニア北部をプライマリ、オレゴンをセカンダリとして扱う D Amazon Route 53 のフェイルオーバールーティングポリシーを構成し、バージニア北部のエンドポイントをプライマリ、オレゴンをセカンダリに設定してヘルスチェックを関連付ける
解説を読む(正解: D) Amazon Route 53 のフェイルオーバールーティングポリシーは、まさにアクティブ / パッシブ構成のために用意されたルーティング方式です。プライマリレコードにヘルスチェックを関連付けておくと、ヘルスチェックが正常である間はプライマリの値だけを応答として返し、異常と判定された時点から自動的にセカンダリの値を返すようになります。本シナリオでは平常時のトラフィックを必ずバージニア北部で処理し、異常時のみオレゴンへ切り替える必要があるため、バージニア北部をプライマリ、オレゴンをセカンダリに設定した構成が正解です。選択肢 B はプライマリとセカンダリが逆で、平常時のトラフィックが待機系であるオレゴンへ流れてしまい、要件と矛盾します。選択肢 C のレイテンシールーティングポリシーは、問い合わせ元から見て最も低レイテンシで応答できるリージョンのレコードを返す方式であり、そもそもプライマリとセカンダリという主従の概念を持ちません。平常時からアジアや欧州のユーザーがオレゴン側へ振り分けられる可能性があるため要件を満たしません。選択肢 A の加重ルーティングポリシーは、設定した重みの比率でトラフィックを分配する方式です。重みを 0 にしたレコードは応答に使用されないため待機系として意図した動作にならず、プライマリの異常時に確実にセカンダリへ切り替わる保証もありません。なお、いずれの構成でも切り替わりを素早くするために、レコードの TTL を短めに設定しておくことが推奨されます。
AMI ベースのアプリケーションのクロスリージョン DR 医療画像を扱う SaaS 企業が、大阪リージョンのみでアプリケーションを稼働させています。このアプリケーションは、あらかじめ作成しておいたカスタム AMI から Amazon EC2 インスタンスを起動する構成です。経営層から、大阪リージョン全体で障害が発生した場合でも別のアジア太平洋リージョンで業務を継続できるようにするよう指示がありました。平常時は大阪リージョンだけでリクエストを処理し、障害を検知したら待機リージョンへ自動的に切り替わる構成が望まれています。
この要件を満たす対応の組み合わせを 2 つ選択してください。
A カスタム AMI を待機リージョンへコピーし、待機リージョンでも同じ AMI から EC2 インスタンスを起動できる状態にしておく。 B Amazon Route 53 のフェイルオーバールーティングポリシーとヘルスチェックを構成し、大阪リージョンが異常と判定されたら待機リージョンのエンドポイントへ切り替える。 C Amazon Route 53 の加重ルーティングポリシーを構成し、大阪リージョンと待機リージョンへ常時 50% ずつトラフィックを分散する。 D 大阪リージョンと待機リージョンの VPC 間で VPC ピアリングを構成し、障害時にピアリング接続経由でトラフィックを転送する。 E CloudFormation テンプレートに大阪リージョンの AMI ID を直接記述しておき、障害時に待機リージョンで同じテンプレートを実行する。
判定する 複数選択問題です (正解 2 つ)。選んでから判定してください。
解説を読む(正解: A、B) AMI はリージョン単位のリソースであり、AMI ID も作成したリージョン内でしか有効ではありません。そのため、別リージョンで同じ構成の EC2 インスタンスを起動するには、あらかじめ AMI をコピー (AMI のクロスリージョンコピー) しておく必要があります。これが A が正しい理由です。また、平常時は本番リージョンのみを使い、障害時に待機リージョンへ切り替えるという要件は、Amazon Route 53 のフェイルオーバールーティングポリシーとヘルスチェックを組み合わせたアクティブ/パッシブ構成そのものであり、B が該当します。ヘルスチェックがプライマリレコードを異常と判定すると、DNS 応答が自動的にセカンダリのエンドポイントへ切り替わります。C の加重ルーティングは、常時両リージョンへトラフィックを分散するアクティブ/アクティブや段階的リリースのための機能で、平常時は大阪のみで処理するという前提に反します。D の VPC ピアリングは VPC 間のプライベート通信を実現する機能にすぎず、リージョン全体が停止した状況では対向側のリソースも失われるため DR の切り替え手段にはなりません。E は AMI ID がリージョン固有であることを無視しており、待機リージョンで同じテンプレートを実行しても AMI が見つからずスタックの作成に失敗します。
新旧システムへのトラフィック比率制御 資格試験のオンライン学習サービスを運営する企業が、既存システムを刷新した新バージョンをリリースしました。両者はそれぞれ独立した Application Load Balancer を持つ別々の環境として構築されています。移行期間の 3 か月間は、同一のドメイン名でアクセスしてきた利用者のリクエストのうち 80% を既存システムへ、20% を新システムへ振り分け、問題がなければ徐々に新システムの比率を上げていきたいと考えています。この要件を実現する方法として最も適切なものを 1 つ選択してください。
A Amazon Route 53 で同じレコード名に対して 2 つのレコードを作成し、加重ルーティングポリシーで重みを 80 と 20 に設定する B Amazon Route 53 のレイテンシールーティングポリシーを設定し、応答が速いほうの環境へ多くのリクエストが流れるようにする C Amazon Route 53 のフェイルオーバールーティングポリシーで既存システムをプライマリ、新システムをセカンダリに設定する D 既存システムの Application Load Balancer のリスナールールで、URL パスパターンごとに新旧のターゲットグループへ振り分ける
解説を読む(正解: A) Amazon Route 53 のルーティングポリシーは、同じレコード名に対する DNS 応答をどのように返すかを制御する仕組みで、要件に応じて使い分けます。加重 (Weighted) ルーティングポリシーは、同一のレコード名とタイプを持つ複数のレコードにそれぞれ 0 から 255 までの重みを設定し、重みの比率に応じて DNS 応答を返す機能です。設問のように新旧環境へ 80 対 20 の比率でトラフィックを分配し、その後は重みの値を変更するだけで比率を段階的に変えられるため、A が最適です。ブルー/グリーンデプロイやカナリアリリースの標準的な手法でもあります。B のレイテンシールーティングは、リクエスト元から見て最もレイテンシーの低いリージョンのエンドポイントを返す仕組みであり、比率を任意に指定することはできず、移行の進捗に応じた制御にも使えません。C のフェイルオーバールーティングは、プライマリが正常な間はすべてのトラフィックをプライマリに送り、ヘルスチェックが失敗したときだけセカンダリへ切り替える仕組みなので、平常時に新システムへ 20% を流すという要件を満たせません。D は既存システムの ALB でパスパターンによる振り分けを行うもので、パスごとの振り分けは可能でもリクエスト全体を任意の割合で分配することはできず、そもそも新旧が別々の ALB を持つ独立環境である前提とも整合しません。