ELBはAWSのアウトバウンド応答トラフィックもルーティングしますか?

ELBはAWSのアウトバウンド応答トラフィックもルーティングしますか?

パブリック/プライベートサブネットを持つ AWS VPC でルーティングがどのように機能するかを理解しようとしています。

私はAmazonの推奨に従って、パブリックサブネットにELBとNAT、プライベートサブネットにウェブサーバーを設置しています。セキュリティグループ(SG)は次のように設定しています。http://blogs.aws.amazon.com/security/blog/tag/NATすべて期待通りに動作します。素晴らしい!

Amazon VPC 構成のリファレンスアーキテクチャ

私がまだ理解していないのは、上記のアーキテクチャで Web サーバー インスタンスから HTTP 応答がどのように返されるかということです。

つまり、Web リクエストが HTTP 経由でパブリック インターネットから到着し、80 が ELB にヒットし、ELB がそれを Web サーバーのプライベート IP に渡します。これで完了です。次に、Web サーバーが応答する必要があります。私の理解では、応答は別の上位 TCP ポート (1024-65535) 経由で行われます。NAT SG は、ポート 80 と 443 経由の送信トラフィックのみを許可します。では、この応答はどのようにしてパブリック インターネットに返されるのでしょうか。NAT を通過できません。これは、応答が ELB 経由で返されることを意味しますか。Amazon の図では、ELB トラフィックの方向矢印が双方向であるとは示されておらず、ELB のドキュメントでも、ELB がステートフル NAT のように動作するとは述べられていません。そうなのでしょうか。

答え1

図の矢印は接続の確立の方向のみを示しており、トラフィックの流れを示すものではありません。

はい、戻りトラフィックは ELB を経由して戻ります。

しかし、これはステートフル NAT ではなく、TCP 接続プロキシです。ELB マシンは、構成されたリスニング ポートで TCP 接続を受け入れ、構成されている場合は SSL セッションを終了し、バックエンド サーバーへの新しい TCP 接続を確立します。リスナーが HTTP 用に構成されている場合、ELB はペイロード認識モードで動作し、HTTP 要求を解析、ログ記録、およびバックエンドに転送します。それ以外の場合は、ペイロードに依存せず、着信接続ごとにバックエンドへの新しい TCP 接続を 1:1 で確立し、「パイプを結び付けます」(HTTP レベルの認識や変更はありません)。

いずれにしても、アプリケーションへの着信接続の送信元アドレスは、元のクライアントではなく、ELB ノードのアドレスになります。これにより、応答トラフィックは ELB に戻り、クライアントに返されます。

httpモードでは、ELBはヘッダーに(またはヘッダーに追加して)X-Forwarded-Forアプリケーションが元のクライアント IP を識別できるようにするほか、X-Forwarded-Proto: [ http | https ]クライアント接続で SSL が使用されているかどうかを示し、X-Forwarded-Portフロントエンド ポートを示すこともできます。


アップデート:上記は、現在「ELB Classic」または ELB/1.0 (HTTP ヘルスチェックで送信されるユーザーエージェント文字列で見つかります) として知られているロードバランサーのタイプを指します。

新しいレイヤー 7 バランサ、Application Load Balancer、または ELB/2.0 は、トラフィック フローに関して同様に動作します。レイヤー 4 (「透過的」TCP) 機能は ALB から削除され、レイヤー 7 機能が大幅に強化されています。

最新のタイプのロード バランサであるネットワーク ロード バランサは、レイヤー 3 バランサです。他の 2 つとは異なり、動的 NAT と非常によく似た動作をします。受信 (外部発信) 接続のみを処理し、source-addr+port を EIP-addr+port 経由で instance-private-ip:adde+port にマッピングします (EIP は「バランサ」にバインドされます)。また、他の 2 つのタイプのバランサとは異なり、インスタンスはパブリック サブネット上に存在し、独自のパブリック IP を使用する必要があります。

概念的に言えば、ネットワーク ロード バランサは、インターネット ゲートウェイの動作を実際に変更するようです。インターネット ゲートウェイ自体は、無効化、置換、または意味のある意味での障害を経験することができない論理オブジェクトです。これは、実際には「非表示」の EC2 インスタンスで動作する ELB および ALB とは対照的です。NLB は、どう見てもネットワーク インフラストラクチャ自体で動作します。

答え2

NLB に関する AWS ドキュメントによると、これはレイヤー 3 ではなくレイヤー 4 です。また、バックエンド サーバーまたはターゲット サーバーはパブリック サブネット上に存在する必要はありません。実際のところ、ターゲット グループの IP アドレス範囲は次のいずれかである必要があります。可能なターゲット タイプは次のとおりです。

インスタンス ターゲットはインスタンス ID によって指定されます。

ip ターゲットは IP アドレスで指定されます。

ターゲット タイプが ip の場合、次のいずれかの CIDR ブロックから IP アドレスを指定できます。

ターゲットグループのVPCのサブネット

10.0.0.0/8 (RFC1918) より

100.64.0.0/10 (RFC6598) の

172.16.0.0/12 (RFC1918) より

192.168.0.0/16 (RFC1918) より

重要

パブリックにルーティング可能な IP アドレスを指定することはできません。

これが役に立つことを願っています。

関連情報