Slide 1

Slide 1 text

ロード・バランサ FLB 詳細 Load Balancer FLB Level 200 Oracle Cloud Infrastructure 技術資料 日本オラクル株式会社 2025年11月

Slide 2

Slide 2 text

目次 3 ロード・バランサのシェイプ 3.01 ロード・バランサのインスタンスとシェイプ 3.02 FLBのフレキシブル・シェイプ(2020年12月~) 3.03 FLBの動的シェイプ(古い機能) 3.04 タイムアウトとキープ・アライブ設定 3.05 FLBにおけるタイムアウト、キープアライブの挙動 3.06 クライアント – FLB間のアイドル・タイムアウト発生時の挙動 3.07 FLBのアイドルタイムアウト/キープ・アライブ/同時接続数の上限 3.08 FLB フレキシブル・シェイプの内部動作 4 バックエンド・サーバーでのクライアントのIPアドレスの識別 4.01 クライアントのIPアドレスやポート情報の判別 4.02 FLBで使用可能なプロキシ・プロトコル 5 セッション永続性機能を利用したバックエンド・サーバーの固定 5.01 セッション永続性 5.02 セッション永続性に利用するCookieの2種類の生成方式 5.03 Cookieによるセッション永続性維持の処理シーケンス 5.04 セッション永続性に関するFAQ 5.05 Cookieベースのセッション永続性機能が利用できない場合のバックエン ド・サーバーの固定方法 Copyright © 2025, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted 2 1 ロード・バランサ概要 1.01 OCI ロード・バランサの種類 FLB/NLB 1.02 2種類のロード・バランサ – FLBとNLB 1.03 ロード・バランサの選択 - 超簡易フローチャート 1.04 FLBとNLBの機能面の差異 1.05 ロード・バランサ 概要編 のおさらい 1.06 FLB 詳細編 内容 1.07 FLBで使用されるIPアドレス 1.08 FLBで使えるリスナーの種類 2 SSL通信への対応 2.01 3種類のSSL通信方式 2.02 OCI 証明書(Certificates)サービスとの連携 2.03 SSL通信への対応 2.04 X.509 v3 デジタル証明 2.05 SSLが有効化されていないロード・バランサ 2.06 SSLの設定ステップ - 1. 秘密鍵と証明書署名要求(CSR) の生成 2.07 SSLの設定ステップ - 2. 自己署名証明書の生成 2.08 SSLの設定ステップ - 3. ロード・バランサに証明書を追加 2.09 SSLの設定ステップ - 4. ポート443でリッスンするリスナーを作成 2.10 SSLが有効化されたロード・バランサ

Slide 3

Slide 3 text

目次 7 ヘルスチェック・トラブル時の対応ガイドライン 7.01 ヘルスチェック・トラブル時の対応ガイドライン 7.02 FLBのヘルスチェック 7.03 トラブル時の対応ガイドライン 8 WAF(Web Application Firewall)、Webアプリケーション・アクセラ レーションとの連携 8.01 フレキシブル・ロード・バランサー上でのWeb Application Firewall 8.02 [Network] Web Application Acceleration 9 ロード・バランサのロギング 9.01 アクセス・ログ/エラー・ログの OCI ロギング・サービスへの出力 9.02 VCNフロー・ログを利用したトラフィック・ログの取得 9.03 VTAP (Virtual Test Access Point) と連携したフル・パケット・キャプチャ 10 ロード・バランサのメトリック 10.01 ロードバランサのメトリックの活用 10.02 ロード・バランサのメトリックの種類 10.03 Tips : lbHostId 毎に異なるメトリック・ストリームが送出される 10.04 メトリックを使ったロード・バランサの監視設定のサンプル 10.05 FLBの制限事項 10.06 パブリックFLB作成時の注意点 Copyright © 2025, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted 3 6 リクエスト・ルーティングを用いた高度なルーティング 6.01 リクエスト・ルーティング 6.02 リクエスト・ルーティング – 1. 仮想ホスト 6.03 リクエスト・ルーティング – 1. 仮想ホスト 6.04 リクエスト・ルーティング – 2. ルーティング・ポリシー 6.05 リクエスト・ルーティング – 2’. パス・ルート・セット(~2022/3/24) 6.06 リクエスト・ルーティング – 2’. パス・ルート・セット(~2022/3/24) 6.07 リクエスト・ルーティング – 2’. パス・ルート・セット(~2022/3/24) 6.08 リクエスト・ルーティング – 2’. パス・ルート・セット(~2022/3/24) 6.09 仮想ホストとルーティング・ポリシーを組み合わせた場合 6.10 仮想ホストとルーティング・ポリシーを組み合わせた場合 6.11 リクエスト・ルーティング – 3. ルール・セット 6.12 ヘッダー・ルール 6.13 アクセス制御ルールとアクセス方法ルール 6.14 URLリダイレクト・ルール 6.15 リクエスト・ルーティングに関するFAQ

Slide 4

Slide 4 text

ロード・バランサ概要 Load Balancer Overview

Slide 5

Slide 5 text

フレキシブルロードバランサ FLB OCI ロード・バランサの種類 FLB/NLB Copyright © 2025, Oracle and/or its affiliates 5 • レイヤー7での高度なバランシング機能 • 有償サービス • レイヤー3,4の単純なロードバランシング機能 • 高帯域、低レイテンシ • 無償サービス ネットワークロードバランサ NLB 本資料はこちらをメインに解説 IP : 10.0.0.1 IP : 10.0.0.2

Slide 6

Slide 6 text

フレキシブル・ロード・バランサ(FLB) • 単に「ロード・バランサ」と呼ばれることも • プロキシ型で動作 - すべてのクライアントからのTCPコネクションが一旦ロード・バランサで 終端し、新たに別のTCPコネクションがロード・バランサからバックエ ンドのサーバーに対して確立 • 特徴 : 高度なバランシング機能 • 有償サービス(Always Freeシェイプあり) ネットワーク・ロード・バランサ(NLB) • パススルー型で動作 - クライアントから来たTCPやUDPなどのIPトラフィックをそのままバック エンドのサーバーに伝える • 特徴 : 低レイテンシ、高い負荷追従性 • 無償サービス 2種類のロード・バランサ - FLBとNLB Copyright © 2025, Oracle and/or its affiliates 6 クライアント サーバー フレキシブル・ ロード・バランサ (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

Slide 7

Slide 7 text

NLBは無料なので、高機能なFLBが必要な場合以外は積極的に使おう! ロード・バランサの選択 – 超簡易フローチャート Copyright © 2025, Oracle and/or its affiliates 7 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

Slide 8

Slide 8 text

FLBとNLBの機能面の差異 Copyright © 2025, Oracle and/or its affiliates 8 フレキシブル・ロード・バランサ(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アクセラレーション機能 組み込み可能 組み込み不可

Slide 9

Slide 9 text

OCI Region この資料では、以下のことを解説しています FLB 詳細編 内容 Copyright © 2025, Oracle and/or its affiliates 10 Webサーバー Webサーバー IPアドレス リスナー1 Webサーバー Webサーバー トラフィック ロード・バランサ バックエンドセット1 リスナー2 バックエンドセット2 1台のロード・バランサで2つのリスナーを作成し 2つのバックエンドセット内のWebサーバーに負荷分散させた図 • IPアドレス • リスナーの種類 • SSL通信への対応 • ロードバランサのシェイプ • タイムアウトとキープアライブ設定 • セッションの永続性を利用したバックエンドサーバの固定 方法 • 高度なルーティング設定 • ロードバランシングポリシー • リクエストルーティング • ヘルスチェックとトラブルシューティング その他 • Web Application Acceleration • WAF • ロギング • メトリック • 制限事項

Slide 10

Slide 10 text

◼ FLBの可視性としてパブリックFLBとプライベートFLBがある ◼ FLBには固定された1つの接続用の仮想IPアドレス(プライベート or パブリックIP)を持つ ※別の接続用IPアドレスが必要な場合は、別のロード・バランサを作成する必要がある ◼ バックエンドサーバと通信するためのプライベートIPアドレスは、FLBに配置したサブネットか ら取得される ※パブリックFLBの場合は接続用のパブリックIPが1つとプライベートIPが2つ取得される ◼ IPアドレスの変更可能性 • クライアント接続用IPアドレス→FLBを削除するまで変更されない • バックエンド通信用IPアドレス→途中で変更される可能性がある →セキュリティリストで許可するIPアドレスは注意が必要 FLBで使用されるIPアドレス Copyright © 2025, Oracle and/or its affiliates 11 Webサーバー Webサーバー クライアント接続用 IPアドレス リスナー1 FLB バックエンドセット バックエンドサーバ 通信用 IPアドレス クライアント

Slide 11

Slide 11 text

◼ トラフィックを受信する「プロトコル、ポート、転送先のバックエンド・セット」を定義するもの • プロトコルとポートの組み合わせ毎に1つのリスナーを構成 - 例1 : HTTP(80) と HTTPS(443) 両方受け付けるにはリスナーが2つ必要 - 例2 : tcp/8000 と udp/8000 にはリスナーが2つ必要 ◼ FLBのリスナーでサポートされるプロトコルは以下 - HTTPS - HTTP - HTTP/2 - gRPC - TCP • HTTP/HTTPS/HTTP/2リスナーはレイヤー7で、 TCPリスナーはレイヤー3/4で動作 • HTTP/HTTPSリスナーで作成した場合は、セッション永続性、 リクエスト・ルーティング、ルール・セット等のレイヤー7の 高度な機能 を利用可能 ◼ リスナー毎に1つのSSL証明書をバンドル可能 ◼ デフォルトのリスナーのサービスリミットは16つ FLBで使えるリスナーの種類 Copyright © 2025, Oracle and/or its affiliates 12 Webサーバー Webサーバー IPアドレス リスナー1 プロトコル ポート番号 Webサーバー Webサーバー FLB バックエンドセット1 バックエンドセット2 紐づける 紐づける リスナー2 プロトコル ポート番号

Slide 12

Slide 12 text

Copyright © 2025, Oracle and/or its affiliates 13 SSL通信への対応 SSL Handling

Slide 13

Slide 13 text

3種類のSSL通信方式 Copyright © 2025, Oracle and/or its affiliates 14 SSLターミネーション • ロード・バランサでSSLを終端 • クライアントとロード・バランサ間の通信を暗号化 • SSL証明書をロード・バランサで一括管理 • バックエンドのWebサーバーの負荷を軽減 • FLBのHTTPSリスナーでのみ利用可能 エンド・ツー・エンドSSL • ロード・バランサで一度SSLを終端した上で、別のSSL通信をバックエン ド・サーバーとの間で確立 • クライアントからバックエンド・サーバー間通信が全暗号化 • SSL証明書をロード・バランサとバックエンドサーバーの両方で管理 • FLBのHTTPSリスナーでのみ利用可能 SSLパススルー • ロード・バランサがSSLをパススルーして、バックエンド・サーバー側でSSL を終端 • ロード・バランサでのSSL証明書管理は不要 • FLBのTCPリスナーとNLBで利用可能 HTTPS (暗号化) HTTP (非暗号化) ロード・バランサ HTTPS (暗号化) HTTPS (暗号化) ロード・バランサ HTTPS(暗号化) ロード・バランサ バックエンド ・サーバー バックエンド ・サーバー バックエンド ・サーバー クライアント クライアント クライアント

Slide 14

Slide 14 text

OCI 証明書(Certificates)サービスとの連携 Copyright © 2025, Oracle and/or its affiliates 15 OCI 証明書サービスが管理するSSL証明書を、フレキシブル・ロード・バランサ(FLB)から利用可能 →証明書の更新などの管理作業をOCI証明書サービスの機能で省力化 OCI 証明書サービス(OCI Certificates Service)は、証明書の発行、保管、管理機能を提供するサービス • 証明書(Certificate)、認証局(CA)、CAバンドルのライフサイクル管理 - CA/証明書/CAバンドルの作成、更新、削除 - 証明書の自動更新、有効期間設定、バージョン管理とローテーション - 外部からの証明書インポートなど • 管理者は手動での証明書の更新や期限管理などの作業から解放される サーバ証明書 発行 認証局 Flexible Load Balancer Virtual Machine User httpsでアクセス httpでアクセス サーバ証明書

Slide 15

Slide 15 text

SSLが有効化されていない ロード・バランサ Copyright © 2025, Oracle and/or its affiliates 18

Slide 16

Slide 16 text

RSAキーの作成 証明書署名要求 (CSR) の作成 SSLの設定ステップ - 1. 秘密鍵と証明書署名要求(CSR) の生成 Copyright © 2025, Oracle and/or its affiliates 19 $ openssl req -new -key MyKey.key -out MyCSR.csr You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:WA Locality Name (eg, city) []:Redmond Organization Name (eg, company) [Internet Widgits Pty Ltd]:Oracle Organizational Unit Name (eg, section) []:OCI Common Name (e.g. server FQDN or YOUR name) []:*.example.org Email Address []:[email protected] Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: $ openssl genrsa -out MyKey.key 2048 Generating RSA private key, 2048 bit long modulus .........................+++ .....................+++ e is 65537 (0x10001)

Slide 17

Slide 17 text

自己署名証明書の生成 SSLの設定ステップ - 2. 自己署名証明書の生成 Copyright © 2025, Oracle and/or its affiliates 20 $ openssl x509 -req -days 365 -in MyCSR.csr -signkey MyKey.key -out ExampleCert.crt Signature ok subject=/C=US/ST=WA/L=Redmond/O=Oracle/OU=OCI/CN=*.example.org/[email protected] Getting Private key $ openssl x509 -in exampleCert.crt -noout -text Certificate: Data: Version: 1 (0x0) Serial Number: fa:98:bb:ae:1e:19:4d:a3 Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=WA, L=Redmond, O=Oracle, OU=OCI, CN=*.example.org/[email protected] Validity Not Before: Jun 6 18:34:41 2018 GMT Not After : Jun 6 18:34:41 2019 GMT Subject: C=US, ST=WA, L=Redmond, O=Oracle, OU=OCI, CN=*.example.org/[email protected] Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:c0:63:f1:aa:d8:98:b1:01:0f:9f:fa:71:6a:9a: f1:05:9d:d6:84:01:88:8d:51:6e:b5:d4:fa:5e:fb: 95:f7:ac:ed:07:11:bf:89:85:4b:39:70:71:9e:7e: cd:ba:24:96:65:d9:41:69:d1:05:f7:1a:a2:43:29: 7a:6b:de:11:e7:2b:6f:95:ee:04:de:2b:23:b1:0b: a6:a2:76:8f:40:42:50:1e:d8:2a:16:2c:d5:97:2b:

Slide 18

Slide 18 text

証明書を PEM 形式に変換 SSLの設定ステップ - 3. ロード・バランサに証明書を追加 Copyright © 2025, Oracle and/or its affiliates 21 $ openssl x509 -in ExampleCert.crt -out ExampleCert.pem -outform PEM

Slide 19

Slide 19 text

SSLの設定ステップ - 4. ポート443でリッスンするリスナーを作成 Copyright © 2025, Oracle and/or its affiliates 22

Slide 20

Slide 20 text

SSLが有効化されたロード・バランサ Copyright © 2025, Oracle and/or its affiliates 23 ※自己署名証明書は完全暗号化されますが、公開サイトにアクセスするとほとんどのブラウザに警告またはエラーが表示され ます

Slide 21

Slide 21 text

Copyright © 2025, Oracle and/or its affiliates 24 ロード・バランサのシェイプ Load Balancer Shape

Slide 22

Slide 22 text

インスタンス • コンピュートなどと同じように「インスタンス」という概念 で管理を行う - 作成、課金、終了などのライフサイクルの単位 - 内部の物理コンポーネントは隠蔽化されている - 冗長化されており、SLO設定単位 シェイプ • インスタンスの大きさを表す概念 • ロード・バランサでは捌くことのできる帯域幅を示す (Mbps) • FLBの場合 - ユーザーが選択した帯域幅パラメーターに応じたシェイプを 持つ - シェイプは固定値(動的シェイプ)または最低帯域幅(フレキ シブルシェイプ)が確保済 - フレキシブルシェイプは設定した最大帯域幅まで自動で 拡張(ベストエフォート) • NLBの場合 - 明示的なシェイプはなくバックエンドのネットワーク帯域まで 自動的にスケールする ロード・バランサのインスタンスとシェイプ Copyright © 2025, Oracle and/or its affiliates 25

Slide 23

Slide 23 text

負荷に応じシェイプ・サイズが自動的に変動 • インスタンス毎に 10Mbps ~ 8,000 Mbps の範囲で 最小帯域幅と最大帯域幅を設定可能 • 最小帯域幅分は必ず帯域が確保される • 負荷状況に応じて最大帯域幅までシェイプが自動で 変更される(バースティング) * • インスタンス作成後も最小帯域幅/最大帯域幅を変 更可能 • リージョン単位で以下のサービス制限を受ける - フレキシブルLBの数(lb-flexible-count) - 合計帯域(lb-flexible-bandwidth-sum) : 各FLBイン スタンスの最大帯域幅の合計値 FLBのフレキシブル・シェイプ (2020年12月~) Copyright © 2025, Oracle and/or its affiliates 26 * 最大帯域幅までのバースティングについてはベストエフォートで、帯域混雑時は一部のパケットがドロップされる 場合があります。帯域幅の確保が必要な場合は、最小帯域幅をそれ以上に設定するようにしてください

Slide 24

Slide 24 text

FLBの動的シェイプ(古い機能) ユーザーが指定した帯域が固定で確保 • 帯域幅を4種類からユーザーが選択 - 10Mbps(Always Free) - 100Mbps / 400Mbps / 8000Mbps (有償) • 選択した帯域幅は必ず確保される • インスタンス作成後も帯域幅を変更可能 • 後方互換のための古い機能 - 2020年12月以降に作成されたテナンシでは利用不可能 - 作成済インスタンスはフレキシブル・シェイプに変換可能(不可逆) →右図参照 - フレキシブル・シェイプに変換後も、最小帯域幅と最大帯域幅を 同じ値に設定すると動的シェイプと同じ運用が可能 27 Copyright © 2025, Oracle and/or its affiliates

Slide 25

Slide 25 text

Copyright © 2025, Oracle and/or its affiliates 28 タイムアウトとキープ・アライブ設定

Slide 26

Slide 26 text

FLBにおけるタイムアウト、キープアライブの挙動 Copyright © 2025, Oracle and/or its affiliates 29 clients Load Balancer Backend Servers HTTP message/ TCP segment HTTP 200 3way handshake 3way handshake Fin/ACK GET HTTP message/ TCP segment HTTP message/ TCP segment GET HTTP 200 HTTP message/ TCP segment Fin/ACK ロード・バランサとクライアント間のキープ・アライブ設定 = アイドル65秒または最大10,000トランザクション(変更不可) ロード・バランサがクライアントに最後のメッセージの送信(C)を行ってから、次にク ライアントからのメッセージを受信(C')するまでの時間 アイドル・タイムアウト(リスナー・タイムアウト) = TCPリスナー : デフォルト300秒, 最大7200秒 = HTTPリスナー : デフォルト60秒, 最大7200秒 ロード・バランサがクライアントからメッセージを受信(A)してから次に受信(A')する までの時間、またはクライアントにメッセージを返信(B)してから次の返信を行うま で(B')の時間 ロード・バランサとバックエンド・サーバー間のキープ・アライブ設定 = アイドル300秒(変更不可) ロード・バランサがバックエンド・サーバーから最後のメッセージを受け取ってから (D)、次のメッセージをバックエンド・サーバーに転送するまで(D')の時間 (バックエンド・サーバーの)キープ・アライブ設定 = バックエンド・サーバーで設定、推奨値310秒以上 バックエンド・サーバーが、ロード・バランサに応答を返した(E)後、次にロード・バ ランサからリクエストが送られてくるまで(E')の時間 (A) (A') (D') (D) (C) (C') (E') (E) (A-A') receive timer (B-B') send timer (B) (B') https://docs.oracle.com/ja-jp/iaas/Content/Balance/Reference/connectionreuse.htm

Slide 27

Slide 27 text

アイドル65秒経過時はFLBからFINパケットが送信されTCP接続が切断される 1 0.000000000 10.0.1.25 -> 10.0.2.228 TCP 74 43744 > http [SYN] Seq=0 Win=65340 Len=0 MSS=1485 SACK_PERM=1 TSval=3551202664 TSecr=0 WS=128 2 0.002493772 10.0.2.228 -> 10.0.1.25 TCP 74 http > 43744 [SYN, ACK] Seq=0 Ack=1 Win=26844 Len=0 MSS=8960 SACK_PERM=1 TSval=4158075881 TSecr=3551202664 WS=1024 3 0.000013286 10.0.1.25 -> 10.0.2.228 TCP 66 43744 > http [ACK] Seq=1 Ack=1 Win=65408 Len=0 TSval=3551202667 TSecr=4158075881 (略) 13 0.000005690 10.0.1.25 -> 10.0.2.228 TCP 66 43744 > http [ACK] Seq=241 Ack=1663 Win=64128 Len=0 TSval=3551202681 TSecr=4158075896 14 65.001322203 10.0.2.228 -> 10.0.1.25 TCP 66 http > 43744 [FIN, ACK] Seq=1663 Ack=241 Win=27648 Len=0 TSval=4158140891 TSecr=3551202681 15 0.040574411 10.0.1.25 -> 10.0.2.228 TCP 66 43744 > http [ACK] Seq=241 Ack=1664 Win=64128 Len=0 TSval=3551267723 TSecr=4158140891 16 40.054097462 10.0.1.25 -> 10.0.2.228 TCP 66 43744 > http [FIN, ACK] Seq=241 Ack=1664 Win=64128 Len=0 TSval=3551307777 TSecr=4158140891 17 0.001380630 10.0.2.228 -> 10.0.1.25 TCP 66 http > 43744 [ACK] Seq=1664 Ack=242 Win=27648 Len=0 TSval=4158180983 TSecr=3551307777 クライアント – FLB間のアイドル・タイムアウト発生時の挙動 Copyright © 2025, Oracle and/or its affiliates 30 3-way handshake 65秒経過 FINパケットがLB->クラ イアントに送信 コネクションが切断

Slide 28

Slide 28 text

FLBのアイドルタイムアウト/キープ・アライブ/同時接続数の上限 Copyright © 2025, Oracle and/or its affiliates 31 VCN Webサブネット LBサブネット Security Lists Webサーバ FLB クライアント クライアント ロード・バランサとクライアント間の キープ・アライブ - 10,000トランザクション - 65秒のアイドル状態 の、いずれかの早い方 Security Lists ロード・バランサの同時接続数 ロードバランサのシェイプによる FLBのセキュリティ・ルールによる接続トラッキング の同時接続数上限 ・ステートフルセキュリティルールの場合 ロードバランサのシェイプによらず一定 ・ステートレスセキュリティルールの場合 同時接続に理論上の制限は存在しない ロード・バランサとバックエンド・サーバー間のキープ・アライブ 300秒 アイドル・タイムアウト(リスナー・タイムアウト) TCPリスナー : デフォルト300秒, 最大7200秒 HTTPリスナー : デフォルト60秒, 最大7200秒 ステートフルセキュリティルールの場合の デフォルトアイドルタイムアウト値 プロトコル 状態 アイドル・タイムアウト TCP 確立済 1日 TCP 設定 1分 TCP クローズ 2分 UDP 確立済(パケットが両方向で 受信されたことを意味します) 3分 UDP 未確立(パケットは一方向の みで受信) 30秒 ICMP N/A 15秒 その他 N/A 5分 インスタンスのセキュリティ・ルールによる接続トラッキン グの最大同時接続数 シェイプに基づいて決まる https://docs.oracle.com/ja- jp/iaas/Content/General/Concepts/servicelimits.htm#connection- tracking

Slide 29

Slide 29 text

Copyright © 2025, Oracle and/or its affiliates 33 バックエンド・サーバーでの クライアントのIPアドレスの識別 Identifying the client's IP address

Slide 30

Slide 30 text

フレキシブル・ロード・バランサを介したトラフィックは、送信元のIP情報がロード・バラン サの情報に変換されてバックエンド・サーバーに転送されるため、バックエンド・サー バーにはロード・バランサのIPアドレスやポートが送信元情報として渡される バックエンド・サーバーでクライアントのIPを取得したい場合は… • HTTPリスナーでは、HTTPヘッダーに挿入される X-Forwarded- ヘッダーから 取得 • TCPリスナーではプロキシプロトコルでソースおよび宛先のIPアドレスとポートを バックエンド・サーバーに送信可能(ただしバックエンドサーバもプロキシプロトコ ルに対応する必要がある) クライアントのIPアドレスやポート情報の判別 Copyright © 2025, Oracle and/or its affiliates 34 送信元 : 1.1.1.1 送信先 : 192.168.1.2 Src 1.1.1.1 Dst 2.2.2.2 VIP : 2.2.2.2 192.168.1.254 Src 192.168.1.254 Dst 192.168.1.2 Src 192.168.1.2 Dst 192.168.1.254 Src 2.2.2.2 Dst 1.1.1.1 アドレス変換フロー X-Forwarded-For クライアントがロード・バランサへの接続に使用したIPアドレスを識別。複数のIP アドレスをリスト可能 X-Forwarded-Host クライアントが要求した元のホストとポートを識別 X-Forwarded-Port クライアントがロード・バランサへの接続に使用したリスナー・ポート番号を識別 X-Forwarded-Proto クライアントがロード・バランサに接続するために使用したプロトコルを識別 X-Real-IP X-Forwarded-Forと同様。単一のIPアドレスを識別 ① ④ ① ④

Slide 31

Slide 31 text

FLBで使用可能なプロキシ・プロトコル Copyright © 2025, Oracle and/or its affiliates 35 ◼ TCPリスナーでプロキシ・プロトコルを使用すると、クライアン トIP情報をバックエンド・アプリケーションに送信できます。 ◼ FLBはプロキシプロトコルv1とv2に対応 • プロキシプロトコルv1:テキストベースのヘッダー • プロキシプロトコルv2:バイナリベースのヘッダー ※バックエンドサーバのアプリケーションもプロキシプロトコルに対応する 必要がある NLB Webサーバー クライアント 10.0.0.1 10.0.0.2 10.0.0.3 プロキシプロトコル 外部URL:プロキシ・プロトコル・バージョン2の詳細 クライアントのIPアドレスとポート番号を伝える

Slide 32

Slide 32 text

Copyright © 2025, Oracle and/or its affiliates 36 セッション永続性機能を利用した バックエンド・サーバーの固定 Using Session Persistence

Slide 33

Slide 33 text

Webアプリケーションのセッションを維持するため、同一のクライアントからのリクエストを同一サーバーに振り分け る機能 利用例 : ショッピングカートなど同じサーバーでトランザクション処理を必要とする場合 Cookie情報を元に転送先のサーバーを決定する Cookie persistence をサポート ※Cookieを受け入れないクライアントではセッション維持は不可 セッション永続性 Copyright © 2025, Oracle and/or its affiliates 37 セッション永続性なしの場合 セッション永続性ありの場合 トランザクションが異なるサーバーに転送され 処理を継続できない Cookie情報よりトランザクションが 同一サーバーに転送され、一貫した処理が可能 ロード・バランサ Client A Client B cookieで転送先サーバーを特定 ロード・バランサ Client A Client B FLBのHTTP/HTTPSリスナーでのみ利用可能

Slide 34

Slide 34 text

セッション永続性に利用するCookieの2種類の生成方式 1. ロード・バランサCookieの永続性 • ロード・バランサ単独で生成するCookieがセッション 永続性に使われる方式 • アプリケーション側でCookieが挿入ができない場合で もOK 2. アプリケーションCookieの永続性 • アプリケーションが挿入したCookieの情報をセッション 永続性のベースに使用する方式 • 細かい制御をしたい場合はこちらを選択 • 実際にはアプリケーションのCookieが直接使用される わけではなく、Cookie(+α)から生成したハッシュ値を 使ってロード・バランサが新しいCookieを追加、この Cookieがセッション永続性維持に使われる FLBのHTTP/HTTPSリスナーでのみ利用可能 Copyright © 2025, Oracle and/or its affiliates 38

Slide 35

Slide 35 text

Cookieによるセッション永続性維持の処理シーケンス ロード・バランサCookieの永続性 の場合 Client Load Balancer Backend Server 1 2 200 OK 3 200 OK Set-cookie:X-Oracle-BMC-LBS-Route=yyy 4 5 Set-cookie:X-Oracle-BMC-LBS-Route=yyy 追加 1. 初回アクセス時、ロード・バランサは負荷分散アルゴリズム に従ってトラフィックを特定のバックエンド・サーバーに転送 2. バックエンド・サーバーが返答 3. ロード・バランサは、バックエンド・サーバー情報のハッシュ値 からX-Oracle-BMC-LBS-Routeという名前の新しい Cookie を生成、レスポンスヘッダーに追加して返送 4. 次回アクセス時、クライアントはCookieをリクエストヘッダー に設定して要求 5. ロード・バランサ はCookieの値を元に、元のバックエンド・ サーバーにトラフィックを転送 FLBのHTTP/HTTPSリスナーでのみ利用可能 Copyright © 2025, Oracle and/or its affiliates 39

Slide 36

Slide 36 text

Cookieによるセッション永続性維持の処理シーケンス アプリケーションCookieの永続性 の場合 Client Load Balancer Backend Server 1 2 200 OK Set-cookie: sessionid=xxx 3 200 OK Set-cookie:sessionid=xxx Set-cookie:X-Oracle-BMC-LBS-Route=yyy 4 5 Set-cookie:sessionid=xxx Set-cookie:X-Oracle-BMC-LBS-Route=yyy 1. 初回アクセス時、ロード・バランサは負荷分散アルゴリズム に従ってトラフィックを特定のバックエンド・サーバーに転送 2. バックエンド・サーバーは、Set-cookie レスポンスヘッダーに Cookie情報を格納して返答 3. ロード・バランサは、レスポンスヘッダーのCookieを設定済 条件と照合し、一致する場合はそのCookie+バックエン ド・サーバー情報のハッシュ値からX-Oracle-BMC-LBS- Routeという名前の新しいCookieを生成、レスポンスヘッ ダーに追加して返送 4. 次回アクセス時、クライアントはCookieをリクエストヘッダー に設定して要求 5. ロード・バランサはCookieの値を元に、元のバックエンド・ サーバーにトラフィックを転送 注意 : アプリケーション側でFLBが発行する X-Oracle-VMC-LBS- Route と同じ名前のCookieを発行しないでください。発行するとロード バランサが2つの同名Cookieを混同するため正しくセッション維持ができ なくなります。 FLBのHTTP/HTTPSリスナーでのみ利用可能 Copyright © 2025, Oracle and/or its affiliates 40 追加

Slide 37

Slide 37 text

Q. 元のバックエンド・サーバーが利用できなくなった場合はどのような挙動になりますか? • フォールバック(Fallback)パラメーターの設定値により挙動が変わる - フォールバック有効 : バックエンド・セット内の異なるバックエンド・サーバーを選択してセッションをリダイレクト - フォールバック無効 : ロード・バランサがHTTPコード 502を応答してリクエストを失敗させる Q. セッション永続性を止めるには? • 該当のcookie(match-allパターンを使用している場合はすべてのcookie)を削除すればセッション永続性は停止 • 一般的には cookie をいきなり削除するのではなく、過去の有効期限を設定してCookieを更新することで無効化し、 一定期間挙動を見た後に削除することが多い • Cookie 削除(無効化)後に受け付けたリクエストは、構成されているトラフィック分散メカニズム (重み付けラウンド・ロビ ン、最小接続など) に従って処理される セッション永続性に関するFAQ Copyright © 2025, Oracle and/or its affiliates 41 FLBのHTTP/HTTPSリスナーでのみ利用可能

Slide 38

Slide 38 text

Q. ロード・バランサの構成ノードに障害が起きた場合のセッション永続性の挙動は? • フレキシブル・ロード・バランサの構成ノードに障害が起きた場合にも、Cookieによるセッション情報は維持され、健全 な構成ノードで処理が実行される • Cookieの再設定や、別のバックエンドサーバーに割り振られるという挙動は発生しない • 発行済のCookieを持つクライアントからリクエストは、問題なく今まで割り振られていたバックエンドサーバーに接続する Q. フレキシブル・ロード・バランサが生成するCookieに属性値を追加することはできますか? • いいえ、現在のFLBはロード・バランサCookieにユーザーが属性値を追加することはできません • もし属性値の追加が必要な場合は、アプリケーションCookieをご利用ください。アプリケーションCookieに付加されて いる属性値は、そのままFLBが生成するCookieの属性に取り込まれます - Cookie属性の例 : Expires, Max-Age, SameSite, Secure, HTTP-Only など • 補足 : リクエスト・ルーティングのヘッダー・ルール機能を利用しても、FLBが生成するCookieに属性の追加はできませ ん。これはFLB内部の処理順序に起因します セッション永続性に関するFAQ Copyright © 2025, Oracle and/or its affiliates 42 FLBのHTTP/HTTPSリスナーでのみ利用可能

Slide 39

Slide 39 text

Cookieベースのセッション永続性機能の利用可否 ① 利用可○ - フレキシブル・ロード・バランサ(FLB)のHTTP/HTTPSリスナー ② 利用不可× - フレキシブル・ロード・バランサ(FLB)のTCPリスナー ③ 利用不可× - ネットワーク・ロード・バランサ(NLB) Cookieベースのセッション永続性機能は、HTTPヘッダー内のCookie情報を利用するため、①FLBのHTTP(S)リスナーでのみ利用可能 ②③のCookieが利用できない場合は、ロード・バランシング・ポリシーにIPハッシュ(FLB)や2タプル・ハッシュ(NLB)を利用することで、クライ アントのIP(のハッシュ値)でバックエンド・サーバーの固定が可能 Cookieベースのセッション永続性機能が利用できない場合のバックエンド・サーバーの 固定方法 Copyright © 2025, Oracle and/or its affiliates 43 Proxy 1.1.1.1 2.2.2.2 3.3.3.3 1.1.1.1 2.2.2.2 3.3.3.3 5.5.5.5 NLBの2タプル・ ハッシュ FLB TCPリスナの IPハッシュ

Slide 40

Slide 40 text

Copyright © 2025, Oracle and/or its affiliates 44 リクエスト・ルーティングを用いた 高度なルーティング Request Routing

Slide 41

Slide 41 text

• リクエスト・ルーティングを用いることにより、ホスト名やIPアドレスよりも細かい特定のリクエストパラメーターに基づいてト ラフィックの転送先や転送ルールを設定することが可能 • リクエスト・ルーティングはFLBのHTTP、HTTPSリスナーのみ対応 - 理由 : レイヤー7の情報を利用するため - FLBのTCPリスナーや、NLBは非対応 • 3種類の手法を用意 1. 仮想ホスト - 仮想的なホスト名単位でリクエストを制御 2. ルーティング・ポリシー – URIパス、リクエストヘッダー、パラメータ、Cookieなどに基づいてリクエストを制御 • 2021年3月までの標準だった パス・ルート・セット(現在は設定不可)の上位互換機能 3. ルール・セット - HTTP(S)のリクエストまたはレスポンスに対して様々な操作を行うためのルール定義 リクエスト・ルーティング Copyright © 2025, Oracle and/or its affiliates 45 FLBのHTTP/HTTPSリスナーでのみ利用可能

Slide 42

Slide 42 text

ロード・バランサ (IP : xxx.xxx.xxx.xxx) バックエンド・ セット 1 バックエンド・ セット 2 リスナー(IPアドレス+プロトコル+ポート)に対して仮想的な ホスト名を定義することにより、仮想ホスト単位でリクエス トの転送先のバックエンド・セットをを制御することが可能 になる機能 メリット • 1つのIPアドレスで異なるホスト名を利用できる • 1つのロード・バランサで異なるホスト名のアプリケーショ ンをサポートできる • 1つのロード・バランサで済むためバックエンド・セットの 管理が効率化できる • 1つのロード・バランサで済むため帯域効率やコスト効 率が良くなる リクエスト・ルーティング – 1. 仮想ホスト リスナー1 (TCP/80) リスナー2 (TCP/80) 仮想ホスト www.example1.com 仮想ホスト www.example2.com Copyright © 2025, Oracle and/or its affiliates 46 FLBのHTTP/HTTPSリスナーでのみ利用可能

Slide 43

Slide 43 text

仮想ホスト名のマッチング順 • FQDNの完全一致 (e.g. app.example.com) • アスタリスクで始まる部分一致 (*.example.com) • アスタリスクで終わる部分一致 (app.example.*) 仮想ホストが指定されていないリスナーは、そのポートのデフォルト・リスナーとして機能(Catch-all) • ※ 全てのリスナーに仮想ホストが指定されている場合は、そのポート用に最初に定義した仮想ホストがデフォルト・リス ナーとして機能する 仮想ホスト機能の制限 • 正規表現の利用不可 • リスナーあたりの仮想ホスト名は最大16個まで • ロード・バランサあたりの仮想ホスト名は最大16個まで リクエスト・ルーティング – 1. 仮想ホスト Copyright © 2025, Oracle and/or its affiliates 47 FLBのHTTP/HTTPSリスナーでのみ利用可能

Slide 44

Slide 44 text

リクエスト・ルーティング – 2. ルーティング・ポリシー 1つのリスナー(IPアドレス+プロトコル+ポート)に対して複数 のルールを定義することにより、リクエストの転送先のバック エンド・セットをより細かく制御する機能 • 以下のパラメータの複合条件が設定可能 - URL、URI(パス) - HTTPリクエストヘッダー - Cookie メリット • 1つのホスト名とポートで異なるバックエンド・サーバー に処理を振り分けできる • 1つのロード・バランサで済むためバックエンド・セットの 管理が効率化できる • 1つのロード・バランサで済むため帯域効率やコスト効 率が良くなる ロード・バランサ (IP : xxx.xxx.xxx.xxx) リスナー (TCP/80) バックエンド・ セット 1 バックエンド・ セット 2 ルール1 user-agent = mobile ルール2 パス = /admin/ Copyright © 2025, Oracle and/or its affiliates 48 FLBのHTTP/HTTPSリスナーでのみ利用可能

Slide 45

Slide 45 text

ロード・バランサ (IP : xxx.xxx.xxx.xxx) リスナー (Port : 80) バックエンド・ セット 1 バックエンド・ セット 2 下位互換機能、今後はルーティング・ポリシー機能をご利用ください 2022/3/24以降は設定不可[CN-64788] →機能的にも上位互換のルーティング・ポリシーを利用し てください 1つのリスナー(IPアドレス+プロトコル+ポート)に対して URI パスに基づく複数のパス・ルート・ルールを定義することによ り、URIパス単位でリクエストの転送先のバックエンド・セッ トをを制御することが可能になる機能 • 1つのホスト名とポートで異なるバックエンド・サーバー に処理を振り分けできる • 1つのロード・バランサで済むためバックエンド・セットの 管理が効率化できる • 1つのロード・バランサで済むため帯域効率やコスト効 率が良くなる リクエスト・ルーティング – 2'. パス・ルート・セット(~2022/3/24) パス・ルート ・ルール1 /pages/ パス・ルート ・ルール2 /video/ Copyright © 2025, Oracle and/or its affiliates 49 FLBのHTTP/HTTPSリスナーでのみ利用可能

Slide 46

Slide 46 text

下位互換機能、今後はルーティング・ポリシー機能をご利用ください パス・ルート・ルールは、パス・ルート文字列とパターンマッチで構成 パターンマッチの種類 • 完全一致(EXACT_MATCH) - 着信URIパスと完全一致する文字列 : ^$ • 最長接頭辞の強制一致(FORCE_LONGEST_PREFIX_MATCH) - URIパスの先頭から最もよく一致する文字列 : .* • 接頭辞一致(PREFIX_MATCH) - 着信URIパスの先頭部分に一致する文字列 : ^.* • 接尾辞一致(SUFFIX_MATCH) - 着信URIパスの末尾部分に一致する文字列 : .*$ リクエスト・ルーティング – 2'. パス・ルート・セット(~2022/3/24) Copyright © 2025, Oracle and/or its affiliates 50 FLBのHTTP/HTTPSリスナーでのみ利用可能

Slide 47

Slide 47 text

下位互換機能、今後はルーティング・ポリシー機能をご利用ください パス・ルート・ルールの優先順位 1. 完全一致(EXACT_MATCH) 2. 最長接頭辞の強制一致 (FORCE_LONGEST_PREFIX_MATCH) 3. 接頭辞一致(PREFIX_MATCH) もしくは 接尾辞 一致(SUFFIX_MATCH) に設定した順序 完全一致と最長接頭辞の強制一致は、ルールの順序 設定に関係なく優先的に適用 複数の接頭辞一致または接尾辞一致を同時に使用す る場合、上位のルールから順に適用される リクエスト・ルーティング – 2'. パス・ルート・セット(~2022/3/24) Copyright © 2025, Oracle and/or its affiliates 51 FLBのHTTP/HTTPSリスナーでのみ利用可能

Slide 48

Slide 48 text

下位互換機能、今後はルーティング・ポリシー機能をご利用ください パス・ルート・ルールの制限 • パス・ルート・セットごとに最大20のパス・ルート・ルール • リスナーごとに1つのパス・ルート・セット リクエスト・ルーティング – 2'. パス・ルート・セット(~2022/3/24) Copyright © 2025, Oracle and/or its affiliates 52 FLBのHTTP/HTTPSリスナーでのみ利用可能

Slide 49

Slide 49 text

組み合わせた場合は、仮想ホストの設定は、ルーティング・ポリシーやパス・ルート・セットの設定よりも優先度が高くなる 仮想ホストごとにURIパス、リクエストヘッダー、Cookieなどのルーティングが動作する 例 : 1つのリスナーとA、B、Cの3つのバックエンド・セット、デフォルト・バックエンド・セットはA • 仮想ホストの設定 - foo.com → バックエンド・セットB - bar.com →バックエンド・セットC • URIパスによるポリシーの設定 - /biz → バックエンド・セットB (完全一致) - /baz →バックエンド・セットC (完全一致) 仮想ホストとルーティング・ポリシーを組み合わせた場合 Copyright © 2025, Oracle and/or its affiliates 53 URL ルーティング先 http://foo.com B http://foo.com/biz B http://foo.com/baz C http://bar.com C http://bar.com/biz B http://bar.com/baz C http://example.com A http://example.com/biz B http://example.com/baz C FLBのHTTP/HTTPSリスナーでのみ利用可能

Slide 50

Slide 50 text

仮想ホストとルーティング・ポリシーを組み合わせた場合 LB-APPS-1 ipAddress = ip-1 name = foo-and-bar-LB BackendSet[[] Listeners[] PathRouteSet[] Listener-default port = 554 serverName = null defaultBackendSet = foo.BES-1 certificate = foo-Certificate PathRouteSet = PRS-1 Listener-foo port = 443 serverName = *.foo.com defaultBackendSet = foo.BES-1 certificate = foo-Certificate PathRouteSet = null Listener-bar port = 443 serverName = *.bar.com defaultBackendSet = bar.BES-1 certificate = foo-Certificate PathRouteSet = PRS-1 foo-Certificate CN = www.foo.com SAN = *.foo.com bar-Certificate CN = www.bar.com SAN = *.bar.com foo-BES-1 [] – foo-Backends-1 bar-BES-1 [] – bar-Backends-1 bar-BES-2 [] – bar-Backends-2 PRS-1 [] – bar-path-route-rules Exact Matches /biz → bar-BES-1 /baz → bar-BES-2 URL 転送先 http://example.com foo-BES-1 http://example.com/biz bar-BES-1 http://example.com/baz bar-BES-2 http://foo.com foo-BES-1 http://bar.com bar-BES-1 http://bar.com/baz bar-BES-2 Copyright © 2025, Oracle and/or its affiliates 54 FLBのHTTP/HTTPSリスナーでのみ利用可能

Slide 51

Slide 51 text

HTTP(S)のリクエストまたはレスポンスに対して様々な操作を行うためのルール定義 アクセス制御ルール • 特定のIPアドレス範囲に合致するトラフィックのみを許可する ルール アクセス方法ルール • GET、HEAD、POSTなど、特定のHTTPメソッドのみを許 可するルール URLリダイレクト・ルール • 特定のURI パスへのアクセスに対し、HTTPリクエストを別の URI パスにリダイレクトするルール • 例えばHTTP(80)へのリクエストをすべてHTTPS(443)にリダ イレクトしてSSL通信を強制する場合などに利用 リクエスト・ヘッダー・ルール • バックエンド・サーバーに送信されるリクエストのHTTPヘッダー に対して追加、拡張(変更)、削除などの操作を行うルール • デバッグヘッダーの付与などに利用 レスポンス・ヘッダー・ルール • クライアントに返送されるレスポンスのHTTPヘッダーに対して 追加拡張(変更)、削除などの操作を行うルール • デバッグヘッダーの削除、[x-xss-protection]や[x- content-type]ヘッダ追加などに利用 HTTPヘッダー・ルール • HTTPヘッダーのバッファ・サイズを初期値の8KBよりも大きく 拡張したい場合に設定するルール、アプリケーション側の要 求に合わせて最大64KBまで拡張 • ピリオド「.」やアンダースコア「_」など、通常は使用できない特 殊文字の使用を許可するルールも設定できる 最大リスナー接続ルールの指定 • すべてのIPからのリスナーに対する最大の接続数ルールの 設定 • 特定のIPからのリスナーに対する接続数ルールの設定 リクエスト・ルーティング – 3. ルール・セット Copyright © 2025, Oracle and/or its affiliates 55 FLBのHTTP/HTTPSリスナーでのみ利用可能

Slide 52

Slide 52 text

ヘッダー・ルール リスナーを経由するリクエストまたはレスポンスに対して HTTPヘッダの追加、変更、削除が可能 ロード・バランサにつき最大50個のルール ルールセットを利用することで以下のような対応が可能 • バックエンド・サーバー情報の不要な流出を抑制 • [Server]などのデバッグヘッダー削除 • Webサーバーに対するセキュリティ対策の補助 • [x-xss-protection]や[x-content-type]ヘッダ追加 Copyright © 2025, Oracle and/or its affiliates 56 FLBのHTTP/HTTPSリスナーでのみ利用可能

Slide 53

Slide 53 text

アクセス制御ルールとアクセス方法ルール アクセス制御ルール • アプリケーションへのアクセスを信頼済みのクライアント ネットワークからのみに制限することが可能 - アクセスを許可するクライアントのIPアドレス範囲を指定可 能 アクセス方法ルール • GET、HEAD、POSTなど、特定のHTTPメソッドのみ を許可するルール Copyright © 2025, Oracle and/or its affiliates 57 FLBのHTTP/HTTPSリスナーでのみ利用可能

Slide 54

Slide 54 text

URLリダイレクト・ルール ロード・バランサのリスナー・ルール・セットとして、 HTTPリクエストを別のURLにリダイレクトするルール を設定可能に • 例)HTTPからHTTPSへのリダイレクト、ドメイン名の リダイレクトやパスベースでのリダイレクトなどが可能 Copyright © 2025, Oracle and/or its affiliates 58 FLBのHTTP/HTTPSリスナーでのみ利用可能

Slide 55

Slide 55 text

ロード・バランサの構成ノードに障害が起きた場合のセッション永続性の挙動は? • フレキシブル・ロード・バランサの構成ノードに障害が起きた場合にも、Cookieによるセッション情報は維持され、健全 な構成ノードで処理が実行される • Cookieの再設定や、別のバックエンドサーバーに割り振られるという挙動は発生しない • 発行済のCookieを持つクライアントからリクエストは、問題なく今まで割り振られていたバックエンドサーバーに接続する リクエスト・ルーティングに関するFAQ Copyright © 2025, Oracle and/or its affiliates 59 FLBのHTTP/HTTPSリスナーでのみ利用可能

Slide 56

Slide 56 text

Copyright © 2025, Oracle and/or its affiliates 60 ヘルスチェック・トラブル時の対応ガイドライン Troubleshooting Guidelines

Slide 57

Slide 57 text

FLBのヘルスチェック Copyright © 2025, Oracle and/or its affiliates 61 定期間隔で ヘルスチェック 応答がなかった 場合、転送停止 ロード・バランサ バックエンド・サーバーの状態を監視するために定期的にロード・バランサから 送信されるテスト • チェック対象 - バックエンドサーバー - バックエンド・セット - ロード・バランサ全体 • ヘルスチェックに失敗したバックエンド・サーバーは、トラフィック転送を一時 的に停止させる • 復旧した場合は、再びトラフィック転送を再開 • 監視に利用するプロトコル - TCP : 特定ポートの応答状態で確認 - HTTP(S) : 特定URIパスに対してHTTPリクエストを送り、レスポンスコードやボ ディ内の文字列一致による判定などの高度なチェック

Slide 58

Slide 58 text

アプリケーションに合わせて適切にヘルスチェックのパラメーターを設定 • ヘルス・ステータスは3分ごとに更新、より細かい粒度は使用不可 障害時はステータス・インジケーターの情報を使って問題を調査 • バックエンド・サーバーの[詳細]ページの[ステータス]フィールドに表示されているエラーコードを確認する よくあるケース • ヘルスチェックの設定が間違っている • リスナーの構成が誤っている - 間違ったポートでリッスンしている - 間違ったプロトコルを使用している - 間違ったポリシーを使用している • セキュリティ・リストが誤って設定されている - VCNのセキュリティ・リストまたはネットワーク・セキュリティ・グループがトラフィックをブロックしている • ルート表の構成が誤っている トラブル時の対応ガイドライン Copyright © 2025, Oracle and/or its affiliates 62

Slide 59

Slide 59 text

Copyright © 2025, Oracle and/or its affiliates 63 WAF(Web Application Firewall)、 Webアプリケーション・アクセラレーションとの連携 Integration with WAF (Web Application Firewall) and Web Application Acceleration

Slide 60

Slide 60 text

FLB上でWAF保護ポリシーを適用し、 VCN内アプリケーションを保護 • OCI Web Application Firewall(WAF)は、アプリケーション層(L7)DDOS攻撃、クロスサイトスクリプティング、 SQLインジェクション、などの多数のサイバー脅威からWebアプリケーションを保護するサービス • VCN内のフレキシブル・ロード・バランサー(パブリック/プライベート)に対してWAF保護ポリシーを適用できるようになった • インターネット・アプリケーションだけではなくVCN内部のプライベートなアクセスに対してもWAFでの保護が可能に • Blog:Announcing Oracle Cloud Infrastructure WAF Protection on Flexible Load Balancers • WAF課金体系の変更 フレキシブル・ロード・バランサー上でのWeb Application Firewall Copyright © 2025, Oracle and/or its affiliates 64 OCI パブリック・サブネット プライベート・サブネット VCN DRG パブリック・ ロード・バランサ インターネット・ ゲートウェイ インスタンス インスタンス プライベート・ ロード・バランサ WAFポリシー WAFポリシー オンプレミス 保護 保護 インターネット Product Price Metric Instance $5 Instance Per Month Requests $0.6 1,000,000 Incoming Requests Per Month 2021/10/27 新機能

Slide 61

Slide 61 text

ロードバランサにキャッシュと圧縮機能を追加して、HTTPベースアプリケーションのトラフィックを軽減 • キャッシュの最大サイズは100MB • リクエストにAccept-Encodingヘッダーを入れる必要がある • ログの取得も可能 [Network] Web Application Acceleration Copyright © 2025, Oracle and/or its affiliates 65 2022/6/15 新機能 “cacheStatus” HIT ・・キャッシュあり MISS・・キャッシュなし キャッシングを有効にすると圧縮も選択可能 参考ブログ:https://blogs.oracle.com/oracle4engineer/post/ja-intro-waa 2022/06/15 新機能

Slide 62

Slide 62 text

Copyright © 2025, Oracle and/or its affiliates 66 ロード・バランサのロギング Logging for Load Balancers

Slide 63

Slide 63 text

フレキシブル・ロード・バランサ(NLB)は、OCIロギング・サービスにログ出力が可 能 • アクセス・ログ、エラー・ログの2種類が出力 • 他サービスのログ、監査ログ、カスタムログと統合して蓄積、分析が可能 • サービス・コネクタ・ハブ経由でオブジェクト・ストレージやロギング・アナリ ティクス・サービスなどに出力可能 ※ネットワーク・ロード・バランサ(NLB)はアクセス/エラーログ出力不可 ログ出力はオプションのため要設定 • ロード・バランサ・インスタンス毎にユーザーが有効化/無効化を選択 • OCIロギング・サービスの課金枠を消費するため、大量のトラフィックがある 場合には課金に注意(無料枠あり : 10GB/月) アクセス・ログ/エラー・ログの OCI ロギング・サービスへの出力 Copyright © 2025, Oracle and/or its affiliates 67 Logging ロギング 監査 VCN Flow Logs アプリケーション ロード バランサー オブジェクト ストレージ OCIネイティブ サービス

Slide 64

Slide 64 text

https://docs.oracle.com/ja-jp/iaas/Content/Network/Concepts/vcn_flow_logs.htm VCNフロー・ログ機能を利用することで、ロード・バランサを通過するトラフィックの情報を収集し、OCIロギング・サービスに出 力することができる • VCNフロー・ログは、サブネット単位(or VCN単位)で有効化可能 → ロード・バランサの存在するサブネットに対して有効化を設定する • 有効化すると、ロード・バランサの仮想NICを流れるトラフィックのIPヘッダ情報をログとして収集 • 収集したログは、OCIロギング・サービスに出力される フロー・ログで記録されるのは、あくまでIPヘッダの一部の情報のみのため、それ以上の情報が必要な場合は、前述のアク セス・ログ機能や後述のVTAPを利用すること VCNフロー・ログ内容の例 (フォーマット詳細) ACCEPT TCP 172.21.2.185 Port 43360 → 129.146.13.236 Port 443 Bytes 10515 Packets 19 ACCEPT TCP 129.146.13.236 Port 443 → 172.21.2.185 Port 43360 Bytes 5548 Packets 14 VCNフロー・ログを利用したトラフィック・ログの取得 Copyright © 2025, Oracle and/or its affiliates 68 VCN Flow Logs

Slide 65

Slide 65 text

https://docs.oracle.com/ja-jp/iaas/Content/Network/Tasks/vtap.htm フレキシブル・ロード・バランサ(FLB)に VTAP (Virtual Test Access Point) をアタッチすることで、ロード・バラン サを流れるトラフィックをミラーし、ネットワーク・ロード・バラ ンサ(NLB)経由で他のインスタンスに転送できる ユースケース • トラフィックの蓄積、分析、監査、レポーティング(パケッ ト・キャプチャ) • IDSによる侵入検知、トラフィック監視 • 通信のトラブルシューティング FLB、VTAPそのものにはトラフィックの蓄積、分析機能は ないため、ミラー先にサードパーティツールなどを設置して 利用 VTAP (Virtual Test Access Point) と連携したフル・パケット・キャプチャ Copyright © 2025, Oracle and/or its affiliates 69 フレキシブル・ロード・バランサ (ソース)

Slide 66

Slide 66 text

Copyright © 2025, Oracle and/or its affiliates 70 ロード・バランサのメトリック Metrics for Load Balancers

Slide 67

Slide 67 text

OCIのロードバランサ(FLB, NLB)の監視を行うには、OCI モニタリングのメトリックの活用が不可欠 • エージェントによる監視ができない - ユーザーによるエージェントのインストールはできない - OCIモニタリング・エージェントも非対応 • OCI Eventsのイベントに非対応 - イベントを生成するサービス の一覧にない → 状態監視を行うにはOCIモニタリング、OCIロギングの2 つのサービスを活用 ロードバランサのメトリックの活用 Copyright © 2025, Oracle and/or its affiliates 71

Slide 68

Slide 68 text

https://docs.oracle.com/ja-jp/iaas/Content/Balance/Reference/loadbalancermetrics.htm OCIのロード・バランサのメトリック (ネームスペース : oci_lbaas)は、大きく3つの種類(lbComonent)のメトリック群が用意さ れている • lbComponent = loadbalancer - ロード・バランサ全体のリクエスト数、接続数、SSLの状態、送受信バイト数、帯域などの情報(11種) • lbComponent = listener - リスナー毎のHTTP応答数(HTTPステータスコード別) (8種) • lbComponent = backendset - バックエンド・セット毎のバックエンドサーバーの状態、アクティブ接続数、タイムアウトの有無、送受信バイト数、HTTP応答数 (HTTPステータスコード別)、応答時間など (19種) 詳細はドキュメント : Load Balancerメトリック を参照してください ロード・バランサのメトリックの種類 Copyright © 2025, Oracle and/or its affiliates 72

Slide 69

Slide 69 text

ロード・バランサは常に2つ以上のアクティブなホストが存在 し、それぞれ固有のlbHostIdを持ち、それぞれメトリック・ ストリームを送出する 例えば左の図はあるロード・バランサのピーク帯域幅 (PeakBandwidth)のメトリック例だが、 lbHostId=ae41d2132、lbHostId=f6d9d18の2つの メトリックストリームが存在する 当該ロード・バランサ全体の帯域幅を知りたい場合は、全 てのlbHostIdのメトリックを「集計メトリックストリーム」 (またはgrouping().sum() ) で合計した値を算出する必 要がある あるロード・バランサの合計帯域幅を算出するMQLの例 PeakBandwidth[1m]{resourceId="ocid1…"}.grouping().s um() Tips : lbHostId 毎に異なるメトリック・ストリームが送出される Copyright © 2025, Oracle and/or its affiliates 73 MQL問い合わせでチェックをつけるとgrouping()ができる もしくはMQL問い合わせを右のように記述する

Slide 70

Slide 70 text

ロード・バランサの合計帯域幅を計測 PeakBandwidth[1m]{lbName=""}.grouping().sum() 異常なバックエンド・サーバーを検出したLBHOSTの数が全体の過半数を同時に超えた場合に発報 (UnHealthyBackendServers[1m].mean() > 0).groupBy(backendSetName).mean() > 0.5 5分間の中でHTTPステータスコードが200の返答率が95%を下回るリスナーが検出された場合に発報 HttpResponses200[5m]{lbname=""}.groupBy(listenerName).sum() / HttpResponses[5m]{lbname=""}.groupBy(listenerName).sum() < 0.95 メトリックを使ったロード・バランサの監視設定のサンプル Copyright © 2025, Oracle and/or its affiliates 74

Slide 71

Slide 71 text

1つのFLBあたり • 1つのIPv4アドレスと1つのIPv6アドレス • 16のバックエンド・セット • 1つのバックエンド・セット当たり512のバックエンド・サーバー • 合計512のバックエンド・サーバー • 16のリスナー • 16仮想ホスト名 • 同時接続数はシェイプによる(別途セキュリティリストのステートフル・ルールを使った接続トラッキングの上 限も考慮にいれる) https://docs.oracle.com/ja- jp/iaas/Content/Balance/Concepts/balanceoverview.htm#LimitsResources FLBの制限事項 Copyright © 2025, Oracle and/or its affiliates 75

Slide 72

Slide 72 text

パブリックFLB作成時の注意点 ドキュメントなどに記載はないが、パブリックFLBを作成する際、予約済パブリックIPv4アドレスのサービス制限も確認する 必要がある。 割り当てるIPアドレスを「エフェメラルIPv4アドレス」に指定していても、予約済IPアドレスとしてサービス制限が消費されるた め。 76 Copyright © 2025, Oracle and/or its affiliates 予約済みIPアドレスのサービス制限の確認 作 成 エフェメラルを指定 予約済パブリックIPアドレスに 登録される

Slide 73

Slide 73 text

まとめと参考情報 Summary and Information

Slide 74

Slide 74 text

この資料では、以下のことを解説しました • IPアドレス • リスナーの種類 • SSL通信への対応 • ロードバランサのシェイプ • タイムアウトとキープアライブ設定 • セッションの永続性を利用したバックエンドサーバの固定方法 • 高度なルーティング設定 • ロードバランシングポリシー • リクエストルーティング • ヘルスチェックとトラブルシューティング まとめ Copyright © 2025, Oracle and/or its affiliates 78 その他 • Web Application Acceleration • WAF • ロギング • メトリック • 制限事項

Slide 75

Slide 75 text

日本語マニュアル – ロード・バランシング • https://docs.oracle.com/ja-jp/iaas/Content/Balance/Concepts/balanceoverview.htm 日本語マニュアル – ネットワーク・ロード・バランサ • https://docs.oracle.com/ja-jp/iaas/Content/NetworkLoadBalancer/overview.htm チュートリアル – ロード・バランサでWebサーバーを負荷分散する • https://oracle-japan.github.io/ocitutorials/intermediates/using-load-balancer/ ロード・バランサ 関連の技術情報 Copyright © 2025, Oracle and/or its affiliates 79

Slide 76

Slide 76 text

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

Slide 77

Slide 77 text

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 81

Slide 78

Slide 78 text

Thank You Copyright © 2025, Oracle and/or its affiliates 82

Slide 79

Slide 79 text

No content