Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ネットワーク・ロード・バランサー NLB 詳細 / Load Balancer NLB 200

ネットワーク・ロード・バランサー NLB 詳細 / Load Balancer NLB 200

Oracle Cloud Infrastructure (OCI) の技術説明資料、ネットワーク・ロード・バランサー NLBの詳細編 (Level 200) です。

OCI ネットワーク・ロード・バランサー・サービスについて、全体的な構成要素の解説や利用方法について解説しています。

Transcript

  1. フレキシブルロードバランサ FLB OCI ロード・バランサの種類 FLB/NLB Copyright © 2025, Oracle and/or

    its affiliates 2 • レイヤー7での高度なバランシング機能 • 有償サービス • レイヤー3,4の単純なロードバランシング機能 • 高帯域、低レイテンシ • 無償サービス ネットワークロードバランサ NLB 本資料はこちらをメインに解説 IP : 10.0.0.1 IP : 10.0.0.2
  2. フレキシブル・ロード・バランサ(FLB) • 単に「ロード・バランサ」と呼ばれることも • プロキシ型で動作 • すべてのクライアントからのTCPコネクションが一旦 ロード・バランサで終端し、新たに別のTCPコネクショ ンがロード・バランサからバックエンドのサーバーに対 して確立

    • 特徴 : 高度なバランシング機能 • 有償サービス(Always Freeシェイプあり) ネットワーク・ロード・バランサ(NLB) • パススルー型で動作 • クライアントから来たTCPやUDPなどのIPトラフィック をそのままバックエンドのサーバーに伝える • 特徴 : 低レイテンシ、高い負荷追従性 • 無償サービス 2種類のロード・バランサ - FLBとNLB Copyright © 2025, Oracle and/or its affiliates 3 クライアント サーバー フレキシブル・ ロード・バランサ (FLB) ネットワーク・ ロード・バランサ (NLB) プロキシ型 クライアントから受けた通信を、ロード・ バランサが一度仲介し、別のコネクション としてサーバーに接続する パススルー型 クライアントから受けた通信をそ のままサーバーに転送する Load Balancerの課金項目 Metric 価格 Load Balancer Base Load Balancer Hour ¥1.7515/hour Load Balancer Bandwidth Mbps per Hour ¥0.0155/hour 例)10Mbpsの場合: ¥1.7515 + ¥0.0155 x 10 = ¥1.9064/hour
  3. NLBは無料なので、高機能なFLBが必要な場合以外は積極的に使おう! ロード・バランサの選択 – 超簡易フローチャート Copyright © 2025, Oracle and/or its

    affiliates 4 HTTP or HTTPS TCP クライアントIP 保全する?** フレキシブル・ ロード・バランサ ネットワーク ・ロード・バランサ UDP / ICMP Y Y N* N レイヤー7の 制御機能を利用? N SSLオフロードする? Y * クライアントのIPアドレスがhttpヘッダ(X-Forwarded-For)から取得できればいい場合はこちらでもOK **プロキシプロトコルでもクライアントIPを伝達可能(FLBはプロキシプロトコルv1とv2に対応、NLBはプロキシプロトコルv2に対応) • Cookieによるセッション永続性 • 仮想ホストによる振り分け • URIパスによる振り分け • HTTPヘッダーによる振り分け • HTTPヘッダーの操作 • Web Application Firewall • HTTPアクセラレーション(圧縮、キャッシュ) N インターネットに振分る? Y
  4. FLBとNLBの機能面の差異 Copyright © 2025, Oracle and/or its affiliates 5 フレキシブル・ロード・バランサ(FLB)

    ネットワーク・ロード・バランサ(NLB) タイプ プロキシ型 パススルー型 対応プロトコル TCP / HTTP / HTTPS / HTTP2 / gRPC TCP / UDP / ICMP スループット 10Mbps~最大8Gbps バックエンドのネットワーク帯域までスケール (8Gbpsを超えることもある) レイヤー3/4バランシング機能 あり あり レイヤー7バランシング機能 • Cookieによるセッション永続性 • 仮想ホストによる振り分け • URIパスによる振り分け • HTTPヘッダーによる振り分け • HTTPヘッダー操作 あり なし インターネットや他リージョン のサーバーへの振り分け 可能 インターネットは不可、DRG経由の他リージョ ンは可能 リスナーの最大数 16 50 ソースIPアドレスの保全 なし (X-Forwarded-Forヘッダを利用可能) あり (選択式) SSLターミネーション機能 あり なし SSLパススルー機能 あり (TCPリスナー選択時のみ) あり(SSL使用する場合は常に) パーシステンス機能 Cookieによる制御(HTTP/HTTPSリスナー) ソースIPベースの振り分け(TCPリスナー) ソースおよび宛先IPとポート、 プロトコルの組合せ Web Application Firewall機能 組み込み可能(有償) 組み込み不可 HTTPアクセラレーション機能 組み込み可能 組み込み不可
  5. OCI Region この資料では、以下のことを解説しています NLB 詳細編 内容 Copyright © 2025, Oracle

    and/or its affiliates 6 Webサーバー Webサーバー IPアドレス リスナー1 Webサーバー Webサーバー トラフィック ロード・バランサ バックエンドセット1 リスナー2 バックエンドセット2 1台のロード・バランサで2つのリスナーを作成し 2つのバックエンドセット内のWebサーバーに負荷分散させた図 • IPアドレス • リスナーの種類 • アイドルタイムアウト値 • 動作モード • プロキシ・プロトコルv2 • バックエンドサーバを追加する方法 • ヘルスチェック • ロードバランシングポリシー その他 • メトリック • ロギング • 制限事項
  6. ◼ NLBの可視性としてパブリックNLBとプライベートNLBがある ◼ NLBには固定された1つの接続用の仮想IPアドレス(プライベート or パブリッ クIP)を持つ • パブリックNLBはパブリックIPアドレスとホスト・サブネットの1つのプ ライベートIPアドレスを消費します

    • プライベートNLBはホスト・サブネットの1つのプライベートIPアドレス を消費します ◼ NLBのIPアドレスにpingパケットを送ってもNLB自体は応答をしない。 NLBで使用されるIPアドレス Copyright © 2025, Oracle and/or its affiliates 7 Webサーバー Webサーバー クライアント接続用 IPアドレス リスナー1 NLB バックエンドセット クライアント
  7. ◼ トラフィックを受信する「プロトコル、ポート、転送先のバックエンド・セット」を定義するもの • プロトコルとポートの組み合わせ毎に1つのリスナーを構成 ◼ NLBのリスナーで選択できるプロトコルは以下 • TCP • UDP

    • TCP/UDP • TCP/UDP/ICMP • L3IP(CLIやAPIで設定可能) ◼ イングレストラフィックで指定できるポート • ポート番号の指定 • 任意のポート(ワイルドカード0番) NLBで使用できるリスナー Copyright © 2025, Oracle and/or its affiliates 8 Webサーバー Webサーバー IPアドレス リスナー1 プロトコル ポート番号 Webサーバー Webサーバー NLB バックエンドセット1 バックエンドセット2 紐づける 紐づける リスナー2 プロトコル ポート番号
  8. リスナーで設定するプロトコルのデフォルトのアイドル・タイムアウト値は以下の通り • TCP: 360秒(6分) • UDP: 120秒(2分) • L3IP: 120秒(2分)

    アイドル・タイムアウトの変更は、CLIまたはAPIを使用しての変更のみ NLBのリスナーのアイドル・タイムアウト Copyright © 2025, Oracle and/or its affiliates 9 VCN Webサブネット LBサブネット Security Lists Webサーバ NLB クライアント クライアント Security Lists リ ス ナ ー アイドル・タイムアウトを変更するCLI例 oci nlb listener update --listener-name listener_name ... --udp-idle-timeout 360
  9. 完全ネットワーク・アドレス変換(NAT)モード NLBの動作モード Copyright © 2025, Oracle and/or its affiliates 10

    NLB ソース保持モード 透過(ソース/宛先の保持)モード Webサーバー クライアント 送信元 宛先 クライアント NLB 宛先 送信元 クライアント NLB NLB Webサーバー クライアント 送信元 宛先 クライアント NLB 宛先 送信元 クライアント NLB NLB Webサーバー クライアント 送信元 宛先 クライアント Webサーバー 宛先 送信元 クライアント Webサーバー 送信元 宛先 NLB Webサーバー 宛先 送信元 NLB Webサーバー 送信元 宛先 クライアント Webサーバー 宛先 送信元 クライアント Webサーバー 送信元 宛先 クライアント Webサーバー 宛先 送信元 クライアント Webサーバー 黄色はNLBの前後で パケットが変更される場所 黄色はNLBの前後で パケットが変更される場所
  10. 透過モード(ソース/宛先ヘッダーの保持)でネットワーク仮想アプライアンス(NVA)の冗長構成をとれる その際、対象ハッシュを使うと「ソースIPアドレス:port番号」と「宛先IPアドレス:port番号」が 入れ替わった場合でもハッシュ値が変わらないため、帰りの通信を行きと同じNVAに振り分けが可能 「ソース/宛先の保持」のユースケースと対称ハッシュ Copyright © 2025, Oracle and/or its

    affiliates 12 Private 10.1.0.0/24 12 Private 10.0.0.0/24 Hub FW VCN 10.0.0.0/16 参考blog:https://blogs.oracle.com/cloud-infrastructure/post/flexible-security-symmetric-hashing-oci-nlb Private Server Spork VCN 10.10.0.0/16 172.168.0.0/16 Firewall1 10.0.0.10 Private Network Load Balancer 宛先 ネクストホップ 10.10.0.0/16 NLB DRGのアタッチメントに紐づくVCNルート表 宛先 ネクストホップ 172.168.0.0/16 DRG 10.10.0.0/16 Hub LPG Hub FW VCN内サブネットのルート表 Hub LPG Spork LPG オンプレミスからOCIへの通信 OCIからオンプレミスへの通信 Firewall2 10.0.0.20 DRG 宛先 ネクストホップ 172.168.0.0/16 NLB Hub LPGに紐づくルート表 Local Peering
  11. NLBで使用可能なプロキシ・プロトコルv2 Copyright © 2025, Oracle and/or its affiliates 13 ◼

    TCPリスナーでプロキシ・プロトコルを使用する と、NLBはソース/宛先ヘッダーの保持機能が無効 になっている場合でも、クライアントIP情報を バックエンド・アプリケーションに送信できます。 ◼ NLBはプロキシプロトコルv2(PPv2)のみ対応 • プロキシプロトコルv2:バイナリベース ※バックエンドサーバのアプリケーションもプロキシプロ トコルに対応する必要がある NLB Webサーバー クライアント 10.0.0.1 10.0.0.2 10.0.0.3 クライアントのIPアドレスとポート番号の情報を伝える PPv2 外部URL:プロキシ・プロトコル・バージョン2の詳細
  12. ◼ 選択できるバックエンドタイプ • コンピュートインスタンス • IPアドレス ◼ バックエンドと通信するポートと重みを指定 重みの大きいバックエンドほど、受け入れる受信トラフィックの量が多くなる 例)バックエンドサーバA/Bで重みがA:B=1:3

    の時、バックエンドが受け入れる接続数はA:B=1:3 ◼ バックエンドとして指定する際の注意点 • バックエンドとしてインターネットゲートウェイの後ろのパブリックIPアドレスは指定できない • ソース元保持モードではIPアドレスを用いてバックエンドを指定できない バックエンドサーバを追加する方法 Copyright © 2025, Oracle and/or its affiliates 14
  13. VCN サブネット ◼ ソース保持モードにするとIPアドレスを用いてバックエンドサーバを指定できない • バックエンドに指定できるのはVCN内のインスタンス、LPGでつないだVCN内のインスタンス • DRGを介したインスタンスの選択は現時点では不可(パケットドロップされる 2025年2月時点) ◼

    OCVS上の仮想マシンに対してもソース元保持モードで指定できないため、回避策としては以下 • NLBのソース保持モードを使わず、Proxy Protocol V2を用いてバックエンドサーバにソースIPを伝える • プロキシ型のFLBを使い、X-Forwarded-For HTTPヘッダでソースIPをバックエンドサーバに伝える • サードパーティー製品ロードバランサやOCVS上のアプライアンスを使ってソースIPを伝える ソース保持モード使用時、バックエンド指定の制限事項 Copyright © 2025, Oracle and/or its affiliates 15 VCN Webサブネット LBサブネット Webサーバ NLB PG LPG Local Peering VCN サブネット DRG ソース元保持モード クライアントサブネット クライアント
  14. NLBのヘルスチェック Copyright © 2025, Oracle and/or its affiliates 16 定期間隔でヘル

    スチェック 応答がなかった 場合、転送停止 ロード・バランサ ◼ バックエンド・サーバーの状態を監視するために定期的に ロード・バランサから送信されるテスト • 復旧した場合は、再びトラフィック転送を再開 • 監視に利用するプロトコル • TCP, UDP(NLBのみ) : 特定ポートの応答状態で確認 • HTTP(S) : 特定URIパスに対してHTTPリクエストを送り、レスポン スコードやボディ内の文字列一致による判定などの高度なチェック • DNS: 問合せ名を入力して、バックエンドからのDNSレスポンスバ が正しく応答を返すかで確認 ◼ バックエンドサーバが異常の場合の挙動 • フェイル・オープン バックエンドが異常になった場合でもトラフィックを送信 • インスタント・フェイルオーバーの有効化 現在のバックエンド・サーバーが異常になった場合に、既 存のトラフィックを正常なバックエンド・サーバーにリダ イレクト
  15. ネットワーク・ロード・バランサ(NLB)の場合 2タプル・ハッシュ • ソースIPと宛先IPをもとにした ハッシュ値で振り分ける方法 • 同じクライアントからのリクエ ストをなるべく同じサーバーに 転送したい場合に利用 3タプル・ハッシュ

    • ソースIP、宛先IP、プロトコル をもとにしたハッシュ値で振り 分ける方法 5タプル・ハッシュ • ソースIPとポート、宛先IPと ポート、そしてプロトコルをも とにしたハッシュ値で振り分け る方法 • リクエストをなるべく分散した い場合に利用 ロード・バランシング・ポリシー 1.1.1.1 tcp 2.2.2.2 tcp 2.2.2.2 udp 5.5.5.5 1.1.1.1 tcp/20001 2.2.2.2 tcp/20002 2.2.2.2 udp/25001 5.5.5.5 tcp/443 udp/443 1.1.1.1 2.2.2.2 3.3.3.3 5.5.5.5 Copyright © 2025, Oracle and/or its affiliates 18 ←ソースIP ←宛先IP ←ソースIP ←プロトコル ←宛先IP ←ソースIP ←ソースポート ←宛先IP、ポート プロトコル
  16. OCIのロードバランサ(FLB, NLB)の監視を行うに は、OCIモニタリングのメトリックの活用が不可 欠 • エージェントによる監視ができない • ユーザーによるエージェントのインストールはで きない •

    OCIモニタリング・エージェントも非対応 • OCI Eventsのイベントに非対応 • イベントを生成するサービス の一覧にない → 状態監視を行うにはOCIモニタリング、OCIロ ギングの2つのサービスを活用 ロードバランサのメトリックの活用 Copyright © 2025, Oracle and/or its affiliates 19
  17. Oracle Cloud Infrastructure マニュアル • https://docs.oracle.com/ja-jp/iaas/Content/home.htm - マニュアル(日本語) • https://docs.cloud.oracle.com/iaas/api/

    - APIリファレンス • https://docs.oracle.com/ja-jp/iaas/Content/General/Reference/aqswhitepapers.htm - テクニカ ル・ホワイト・ペーパー • https://docs.cloud.oracle.com/iaas/releasenotes/ - リリースノート • https://docs.oracle.com/ja-jp/iaas/Content/knownissues.htm - 既知の問題(Known Issues) • https://docs.oracle.com/ja-jp/iaas/Content/General/Reference/graphicsfordiagrams.htm - OCIアイ コン・ダイアグラム集(PPT、SVG、Visio用) Oracle Cloud Infrastructure マニュアル・ドキュメント Copyright © 2025, Oracle and/or its affiliates 23
  18. Oracle Cloud Infrastructure 活用資料集 • https://oracle-japan.github.io/ocidocs/ チュートリアル - Oracle Cloud

    Infrastructureを使ってみよう • https://oracle-japan.github.io/ocitutorials/ Oracle 主催 セミナー、ハンズオン・ワークショップ • https://www.oracle.com/search/events/ (右側の Filter から Locations -> Asia Pacific -> Japan と絞り込み) Oracle Cloud Infrastructure – General Forum (英語) • https://cloudcustomerconnect.oracle.com/resources/9c8fa8f96f/summary Oracle Cloud Infrastructure トレーニング・技術フォーラム Copyright © 2025, Oracle and/or its affiliates 24