同一Regionの2つのAZに独自TCP 9000サービスがあり、HTTPではない。取引先は変更しない公開IPv4を2個allowlistでき、両エンドポイントへ接続・再試行する実装を持つ。全AZ共通の1個のIPやマルチRegionの入口は要求しない。
internet-facing IPv4 NLB用の2サブネットと適切なElastic IPを各1個用意できる。各AZにhealthyなターゲットがあり、経路・SG・NACL・ヘルスチェックの通信は準備済み。AZ障害時は残存側への新規接続を検証し、既存TCP接続の移動は求めない。
固定アドレスとTCP転送を満たす構成はどれか。
internet-facing NLBの各AZへ別のElastic IPを指定し、TCP listenerとhealthyなターゲットで公開する。
詳細解説
internal NLBのアドレスはprivateである。本問は公開IPv4へのインターネット接続を要求するため、内部NLBだけでは要件を満たさない。
NLBは有効なAZごとの静的IPv4を持ち、internet-facing構成ではサブネットごとのElastic IPを指定できる。取引先は両IPを許可し、listenerとhealthyなターゲットへの実通信を確認する。
NLBの指定はサブネットごとの異なるElastic IPであり、同じ1個を同時に共有する構成ではない。本問は2個を許可できるため、各AZのアドレスを用意する。
ALBのlistenerはHTTP/HTTPS用であり独自TCPをそのまま扱う構成ではない。一時点のALBのDNS回答を永続的な固定IPとして扱うこともできない。
公式資料で確認する
以下の項目を公式資料の記述と照合して確認します。
承認された検証NLBでScheme=internet-facing、IpAddressType=ipv4、2つのsubnet mappingと別々のAllocationId、TCP 9000 listener、target healthを確認する。取引先相当の環境から両IPへアプリ通信し、一方の障害を模擬して残存IPへの再接続を確認し復旧する。
参考にした公式資料
確認できる内容
各AZの異なる固定公開IPv4へTCPアプリ通信が成功し、一方が使えないときは取引先が残るIPへ再接続できる。1つのIPがAZ間を移動したり、既存TCP接続が無停止で移行したりするとは判断しない。
理解のポイント
- Network Load Balancer
- Elastic IP
- subnet mapping
確認時の注意
- 確認環境: AWS公式SOA-C03試験ガイドとAWS公式ドキュメントの確認
- AWS公式SOA-C03試験ガイドと各サービスの公式ドキュメントを確認する。
基礎のおさらい
TCPと公開方式を選ぶ
独自TCPにはNLBのTCP listenerを使う。ALBのHTTP/HTTPS処理へそのまま置き換えない。公開インターネットから使うためinternet-facingを選び、internalのprivateアドレスと区別する。
固定IPv4はAZごとに用意する
有効にしたAZのサブネットごとに別のElastic IPを関連付ける。本問は2AZ・2個のallowlistを受け入れる前提であり、全AZや全Regionで1個の共通アドレスを提供する話ではない。
ヘルス状態とクライアント動作も検証する
固定IPの存在だけではアプリの到達性は証明できない。ターゲット・経路・通信許可・実際のTCP応答を確認する。片方の停止時は残るIPへの新規接続を試し、確立済み接続の自動移動や無損失を保証しない。