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

OCI技術資料 : ロード・バランサー 概要 / Load Balancer 100

OCI技術資料 : ロード・バランサー 概要 / Load Balancer 100

Oracle Cloud Infrastructure (OCI) の技術説明資料、ロード・バランサーの概要編 (Level 100) です。

VCN内に構成することで、様々なサービスの冗長性やスケーリングをサポートする OCI ロード・バランサー・サービスについて、その機能概要、構成コンポーネントの内容、OCIコンソールを利用した構成方法などについて解説しています。

More Decks by Oracle Cloud Infrastructure ソリューション・エンジニア

Other Decks in Technology

Transcript

  1. ロード・バランサの主な役割 役割1 : スケーラビリティ(拡張性)の向上 リクエストを複数のサーバーに分散させることで、 1台のバックエンドサーバーでは処理しきれない 負荷を複数サーバーに振り分け、スケールアウト でシステム処理能力を拡張 役割2 :

    アベイラビリティ(可用性)の向上 バックエンドのサーバーに対して死活監視を行い、 正常稼働していないサーバーに対するトラフィッ ク転送を停止することによりサービス全体の停止 を防止 ロード・バランサ New Server Server01 Server02 ・・・・・ スケールアウト ロード・バランサ Server01 Server02 Server03 ✖ Copyright © 2024, Oracle and/or its affiliates 4
  2. 高い耐障害性 • LB自身が可用性ドメインまたはフォルト・ドメイン間で冗長化 • 固定された1つの接続用の仮想IPアドレス(プライベート or パブリックIP)を持ち、処理ノードの障害 時にも健全なノードで透過的にリクエストの処理が継続 安定した性能と拡張性 •

    最小帯域幅に設定したネットワーク帯域が確保済(FLB) • トラフィック量に応じて帯域が自動で拡張 豊富な機能 • レイヤー4とレイヤー7の両方の機能をサポート • Cookieによるセッション永続性、URIパスやHTTPヘッダー・ベースの振り分け、仮想ホスト、HTTP ヘッダー操作などの高度なレイヤー7機能をサポート • SSLターミネーション、SSLトンネリングをサポート • 自動スケーリング、OKE、DNS、トラフィック管理、リソースマネージャなどの機能と連携 運用管理が簡単 • マネージドサービスなので管理が容易 OCIロード・バランサの特長 Copyright © 2024, Oracle and/or its affiliates 5
  3. 単一の固定IPアドレスを持つ • グローバル or プライベートIP • 起動から終了まで固定 • スケーリング時の変更なし 冗長化された内部コンポーネント

    • 障害やメンテナンス時にも処理 が継続 • 複数のフォルト・ドメイン/可用 性ドメインを跨ぐように構成可 能 バックエンド・サーバー群 • IPアドレスまたはFQDN • トラフィックが疎通すれば外部 ネットワークでもOK OCIロード・バランサの基本構造 ORACLE CLOUD INFRASTRUCTURE (リージョン) 可用性ドメイン1 LBサブネット 可用性ドメイン2 Webサブネット ロード・バランサ トラフィック アクティブ アクティブ Webサーバー Webサーバー Webサーバー Webサーバー IPアドレス Copyright © 2024, Oracle and/or its affiliates 6 ※ 2022年8月頃以降に作成したロード・バランサはActive-StandbyからActive構成に変更されています Updated
  4. フレキシブル・ロード・バランサ(FLB) • OCIリリース時からあるサービス • 単に「ロード・バランサ」と呼ばれることも • プロキシ型で動作 • すべてのクライアントからのTCPコネクションが一旦 ロード・バランサで終端し、新たに別のTCPコネクショ

    ンがロード・バランサからバックエンドのサーバーに対 して確立 • 特徴 : 高度なバランシング機能 • 有償サービス(Always Freeシェイプあり) ネットワーク・ロード・バランサ(NLB) • 2021年3月リリースのサービス • パススルー型で動作 • クライアントから来たTCPやUDPなどのIPトラフィック をそのままバックエンドのサーバーに伝える • 特徴 : 低レイテンシ、高い負荷追従性 • 無償サービス 2種類のロード・バランサ - FLBとNLB Copyright © 2024, Oracle and/or its affiliates 10 クライアント サーバー フレキシブル・ ロード・バランサ (FLB) ネットワーク・ ロード・バランサ (NLB) プロキシ型 クライアントから受けた通信を、ロード・ バランサが一度仲介し、別のコネクション としてサーバーに接続する パススルー型 クライアントから受けた通信をそ のままサーバーに転送する
  5. FLBとNLBの機能面の差異 Copyright © 2024, Oracle and/or its affiliates 11 フレキシブル・ロード・バランサ(FLB)

    ネットワーク・ロード・バランサ(NLB) タイプ プロキシ型 パススルー型 対応プロトコル TCP / HTTP / HTTPS TCP / UDP / ICMP レイヤー3/4バランシング機能 あり あり レイヤー7バランシング機能 • Cookieによるセッション永続性 • 仮想ホストによる振り分け • URIパスによる振り分け • HTTPヘッダーによる振り分け • HTTPヘッダー操作 あり なし インターネットや他リージョン のサーバーへの振り分け 可能 不可 (インターネットGWやDRG経由の振り分け は不可) リスナーの最大数 16 50 ソースIPアドレスの保全 なし (X-Forwarded-Forヘッダを利用可能) あり (選択式) SSLターミネーション機能 あり なし SSLパススルー機能 あり (TCPリスナー選択時のみ) あり(SSL使用する場合は常に) パーシステンス機能 Cookieによる制御(HTTP/HTTPSリスナー) ソースIPベースの振り分け(TCPリスナー) ソースおよび宛先IPとポート、 プロトコルの組合せ Web Application Firewall機能 組み込み可能(有償) 組み込み不可 HTTPアクセラレーション機能 組み込み可能 組み込み不可
  6. NLBは無料なので、高機能なFLBが必要な場合以外は積極的に使おう! ロード・バランサの選択 – 超簡易フローチャート Copyright © 2024, Oracle and/or its

    affiliates 12 HTTP or HTTPS TCP クライアントIP 保全する? フレキシブル・ ロード・バランサ ネットワーク ・ロード・バランサ UDP / ICMP Y Y N* N レイヤー7の 制御機能を利用? N SSLオフロードする? Y * クライアントのIPアドレスがhttpヘッダ(X-Forwarded-For)から取得できればいい場合はこちらでもOK • Cookieによるセッション永続性 • 仮想ホストによる振り分け • URIパスによる振り分け • HTTPヘッダーによる振り分け • HTTPヘッダーの操作 • Web Application Firewall • HTTPアクセラレーション(圧縮、キャッシュ) N インターネットや 他リージョンに振分る? Y
  7. インスタンス • コンピュートなどと同じように「インスタン ス」という概念で管理を行う • 作成、課金、終了などのライフサイクルの単位 • 内部の物理コンポーネントは隠蔽化されている • 冗長化されており、SLO設定単位

    シェイプ • インスタンスの大きさを表す概念 • ロード・バランサでは捌くことのできる帯域 幅を示す(Mbps) • FLBの場合 • ユーザーが選択した帯域幅パラメーターに応じた シェイプを持つ • シェイプは固定値(動的シェイプ)または最低帯域 幅(フレキシブルシェイプ)が確保済 • フレキシブルシェイプは設定した最大帯域幅まで 自動で拡張(ベストエフォート) • NLBの場合 • 明示的なシェイプはなくバックエンドのネット ワーク帯域まで自動的にスケールする ロード・バランサのインスタンスとシェイプ Copyright © 2024, Oracle and/or its affiliates 13
  8. 負荷に応じシェイプ・サイズが自動的に変動 • インスタンス毎に 10Mbps ~ 8,000 Mbps の範 囲で最小帯域幅と最大帯域幅を設定可能 •

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

    / 8000Mbps (有償) • 選択した帯域幅は必ず確保される • インスタンス作成後も帯域幅を変更可能 • 後方互換のための古い機能 • 2020年12月以降に作成されたテナンシでは利用不 可能 • 作成済インスタンスはフレキシブル・シェイプに 変換可能(不可逆) →右図参照 • フレキシブル・シェイプに変換後も、最小帯域幅 と最大帯域幅を同じ値に設定すると動的シェイプ と同じ運用が可能 FLBの動的シェイプ(古い機能) Copyright © 2024, Oracle and/or its affiliates 15
  10. 1. VCN、リージョナルサブネットおよびWebサーバ用インスタンスを作成 Availability Domain 1 Availability Domain 2 SUBNET A,

    10.0.1.0/24 Default SL (+ port 80) Default Route Table Dest CIDR Route Target 0.0.0.0/0 IGW OCID VCN, 10.0.0.0/16 Internet Gateway Copyright © 2024, Oracle and/or its affiliates 18
  11. 2. ロード・バランサ用ルートテーブルとセキュリティリストを作成 Availability Domain 1 Availability Domain 2 SUBNET A,

    10.0.1.0/24 LB Route Table LB SL (empty) VCN, 10.0.0.0/16 Internet Gateway Dest CIDR Route Target 0.0.0.0/0 IGW OCID Copyright © 2024, Oracle and/or its affiliates 19
  12. 3. ロード・バランサ用のリージョナルパブリックサブネットを作成 Availability Domain 1 Availability Domain 2 SUBNET A,

    10.0.1.0/24 SUBNET B, 10.0.2.0/24 VCN, 10.0.0.0/16 Internet Gateway Dest CIDR Route Target 0.0.0.0/0 IGW OCID Copyright © 2024, Oracle and/or its affiliates 20
  13. 4-1. パブリック・ロード・バランサを作成 Availability Domain 1 Availability Domain 2 SUBNET A,

    10.0.1.0/24 SUBNET B, 10.0.2.0/24 LB (Active ) VCN, 10.0.0.0/16 Internet Gateway Dest CIDR Route Target 0.0.0.0/0 IGW OCID Copyright © 2024, Oracle and/or its affiliates 21
  14. 4-2. バックエンド・セットを作成し、バックエンド・セットにサーバを追加 Availability Domain 1 Availability Domain 2 SUBNET A,

    10.0.1.0/24 SUBNET B, 10.0.2.0/24 LB (Active ) VCN, 10.0.0.0/16 Internet Gateway • バックエンド・セット作成 – Name – Policy – SSL – Health Check • バックエンド・セットにバックエンド サーバ追加 – Instance – Port – Weight ルールはLBセキュリティリストおよびバッ クエンドサーバーセキュリティリストに自 動的に追加されます。 Copyright © 2024, Oracle and/or its affiliates 22
  15. 4-3. LB セキュリティリスト と バックエンドセキュリティリスト Availability Domain 1 Availability Domain

    2 SUBNET A, 10.0.1.0/24 SUBNET B, 10.0.2.0/24 LB (Active ) VCN, 10.0.0.0/16 Internet Gateway Type CIDR Protocol Source Port Dest Port Egress 10.0.1.0/24 TCP All 80 Type CIDR Protocol Source Port Dest Port Ingress 10.0.2.0/24 TCP All 80 Egress 0.0.0.0/0 All All ロード・バランサ作成すると自動的に必 要なセキュリティルールが設定されます。 Copyright © 2024, Oracle and/or its affiliates 23
  16. 4-4. リスナーの追加 Availability Domain 1 Availability Domain 2 SUBNET A,

    10.0.1.0/24 SUBNET B, 10.0.2.0/24 LB (Active ) VCN, 10.0.0.0/16 Internet Gateway Listener リスナーの追加 Name Protocol, Port, SSL Backend Set Copyright © 2024, Oracle and/or its affiliates 24
  17. 5. リスナーへのトラフィックを許可 Availability Domain 1 Availability Domain 2 SUBNET A,

    10.0.1.0/24 SUBNET B, 10.0.2.0/24 LB (Active ) VCN, 10.0.0.0/16 Internet Gateway Listener Type CIDR Protocol Source Port Dest Port Ingress 0.0.0.0/0 TCP All 80 Egress 0.0.0.0/0 TCP All Egress 10.0.1.0/24 TCP All 80 Copyright © 2024, Oracle and/or its affiliates 25
  18. フレキシブル・ロード・バランサ(FLB)の場合 重み付けラウンドロビン (Weighted Round Robin) • トラフィックをバックエンド・ サーバーに均等に順番に転送 • 重み付けを設定することで振り

    分けるセッション数の比率を設 定できる 最小接続 (Least Connections) • アクティブな接続数が最も少な いサーバーに振り分けを行う IPハッシュ (IP Hash) • 送信元IPアドレスのハッシュ キーに基づいてトラフィックを 分散 • 同じIPのクライアントからの要 求は、同じバックエンド・サー バーに転送 ロード・バランサの構成要素 : ロード・バランシング・ポリシー 1 2 3 4 1 2 3 4 新規接続 2 1 + 1 2 Proxy 1.1.1.1 2.2.2.2 3.3.3.3 Copyright © 2024, Oracle and/or its affiliates 28
  19. ネットワーク・ロード・バランサ(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 © 2024, Oracle and/or its affiliates 29 ←ソースIP ←宛先IP ←ソースIP ←プロトコル ←宛先IP ←ソースIP ←ソースポート ←宛先IP、ポート プロトコル
  20. • ロード・バランサで受信したトラフィックに対して、実際に コンテンツを返信するサーバー • ロード・バランサを配置したVCNからアクセス可能であれば、 どこでもOK • サーバー間で処理性能が異なる場合は、重みづけによりトラ フィックの転送割合を変更可能 •

    以下のモード制御を利用してバックエンド・サーバー単位で 個別にトラフィックの制御が可能 ロード・バランサの構成要素 : バックエンド・サーバー Copyright © 2024, Oracle and/or its affiliates 30 Load Balancer Web01 Web02 Web03 バックエンド・セット バックアップ • 通常時はトラフィックは転送されない • バックエンド・セット内の他の全てのバックエンド・サーバーの ヘルスチェックが失敗した場合にのみトラフィックが転送される 用途例:Sorryサーバー ドレイン • 接続済のセッションは維持される • 新規リクエストは転送されない 用途例:サーバーのメンテナンス開始時 オフライン • リクエストが転送されない
  21. ロード・バランサの構成要素 : ヘルスチェック Copyright © 2024, Oracle and/or its affiliates

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

    32 トラフィックを受信するプロトコル、ポートと、転送先のバックエンド・セットを定義するもの • プロトコルとポートの組み合わせ毎に1つのリスナーを構成 • 例1 : HTTP(80) と HTTPS(443) 両方受け付けるにはリスナーが2つ必要 • 例2 : tcp/8000 と udp/8000 にはリスナーが2つ必要 • HTTP、HTTPS、TCP、UDP、ICMP から選択 • HTTP/HTTPSリスナーはレイヤー7で、 TCP/UDP/ICMPリスナーはレイヤー3/4で動作 • HTTP/HTTPSリスナーで作成した場合は、セッション永続性、 リクエスト・ルーティング、ルール・セット等のレイヤー7の 高度な機能 を利用可能 • ネットワーク・ロード・バランサの場合は1つのリスナーで 複数のプロトコルを扱うマルチプロトコルのリスナーを利用可 • 例: DNSサーバーを利用する場合 • リスナー毎に1つのSSL証明書をバンドル可能 FLB NLB リスナー1 HTTPS/443 リスナー2 TCP/22 ロード・バランサ (IP : xxx.xxx.xxx.xxx) バックエンド・セット1 バックエンド・セット2
  23. このレッスンでは、次のことを学習しました • OCIロード・バランサは、1つのエントリーポイントからVCN内の複数のサーバーに対して自動的にト ラフィックを分散 これによりリソース利用率が向上し、容易な拡張性と高可用性を得られます • OCIロード・バランサはリージョナルなサービスでパブリックおよびプライベート・ロード・バラン サをサポート • サポートプロトコル

    – TCP, HTTP/1.0, HTTP/1.1, HTTP/2, WebSocket • SSL ターミネーション、エンドツーエンド SSL、SSL トンネリングをサポート • セッション永続性やコンテンツベースルーティングなどの高度な機能をサポート • 主な特長 • プライベートまたはパブリック・ロード・バランサ (パブリック IP アドレスが付与) • フレキシブルな帯域 • TCP (レイヤ 4) および HTTP (レイヤ 7) トラフィック用の単一ロード・バランサ まとめ Copyright © 2024, Oracle and/or its affiliates 34
  24. 日本語マニュアル – ロード・バランシング • 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 © 2024, Oracle and/or its affiliates 35
  25. 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 © 2024, Oracle and/or its affiliates 36
  26. 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 © 2024, Oracle and/or its affiliates 37