同じ独自TCPサービスを2つのAWS Regionで提供する。各RegionにElastic IP付きEC2があり、TCP 9443で正常に応答する。IPv4だけを使い、AWS提供の固定入口IPを2個配布する構成を受け入れられる。
クライアントは配布した入口IPへ直接接続する。Region障害時も入口IPを変更せず、新規接続を正常な他方へ送りたい。DNSの再解決やRegion別IPへ切り替えるロジックをクライアントへ追加しない。
一方のRegionが停止しても他方のサービスは正常である。必要な通信許可は準備でき、TCPヘルスチェックの到達性も検証する。確立済み接続の無停止移動は要件に含めない。
要件を満たす構成はどれか。
IPv4の標準Global Acceleratorと正常なendpointへの設定を使い、2個の固定入口IPを維持する。新規接続のfailoverと既存接続の再接続を分ける。
詳細解説
failover候補は正常性に加えてweightが正であることを確認する。weight=0は待機先の自動昇格指定ではなく、全候補が条件を満たさない場合もある。
標準型の固定入口と正常性に基づく経路選択を使う。他方にweightが正で正常なendpointが残る本問では、入口IPを変えずに新規接続を正常なRegionへ送れる。
DNS failoverは名前の回答を変更する。再解決せず古いRegion別IPへ直接接続するクライアントの通信を、DNSだけで同じIPから別Regionへ転送することはできない。
custom routingは指定した宛先・ポートへの対応付けに使う。標準型の正常性に基づく自動failoverを提供する構成ではない。
公式資料で確認する
以下の項目を公式資料の記述と照合して確認します。
公式資料とIPv4の標準型、2個の入口IP、TCP listener、Region別EIP endpointのweight・ヘルスチェック設定を照合する。利用可能な承認済み検証環境では、片方を検証用の異常状態にして判定を待ち、同じ入口IPへの新規TCP接続とアプリ応答・処理Regionを記録する。既存接続の挙動とクライアントの再接続も別に確認する。
参考にした公式資料
確認できる内容
入口IPの変更なしで、weightが正で正常な他方のendpointへ新規接続が送られる。ヘルス状態と実アプリ応答を照合し、既存接続の自動移動や全候補異常時の必ず破棄を保証しない。
理解のポイント
- Anycast IPv4
- endpoint weight
- fail open
確認時の注意
- 確認環境: AWS公式SOA-C03試験ガイドとAWS公式ドキュメントの確認
- AWS公式SOA-C03試験ガイドと各サービスの公式ドキュメントを確認する。
基礎のおさらい
固定の入口とRegion内の宛先を分ける
AWS提供アドレスを使うIPv4 acceleratorの入口は2個の固定Anycast IPv4である。Region側の宛先を変更しても同じ入口を使える。IPはacceleratorが存在する間は維持されるが、削除すると失われる。無効化中もIPは保持されるものの通信は転送されない。Region別EIPへのDNS回答を変更する方式と、固定の入口IPへの直接接続は区別する。
標準型のヘルスチェックを構成する
標準acceleratorは正常性と設定に基づいて送信先を選ぶ。Elastic IP endpointではGlobal Accelerator側のTCPヘルスチェックのポートと、Route 53 health checkerからの通信許可を確認する。TCP接続の成功だけでアプリ処理の成功まで保証しない。custom routingはVPCサブネット内の宛先とポートへの対応付けを使い、この正常性に基づく自動failoverは行わない。
重みと障害時の動作範囲を確認する
failoverではweightが正で正常なendpointを候補にする。weight=0を待機先の自動昇格設定として扱わない。条件を満たす正常な候補が見つからない場合にはfail openとなり、全通信が必ず破棄される保証はない。切替対象は新規接続であり、確立済みTCP接続が別Regionへ自動移動するわけではない。クライアントの再接続と実際のアプリ応答も確認する。