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

OCI技術資料 : ロード・バランサー 詳細

OCI技術資料 : ロード・バランサー 詳細

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

セッション永続性、仮想ホストによるルーティング、URIパス・ベース・ルーティング、SSLの利用とSSLターミネーションの設定、ロードバランサー で取得できるメトリックなどについて解説しています。

Transcript

  1. ロード・バランサ 詳細 Load Balancer Level 200 Oracle Cloud Infrastructure技術資料 2021年6月

  2. この資料では、以下のことを解説しています • バックエンド・サーバーでのクライアントIPアドレスの識別 • SSL通信対応方式への理解とロード・バランサでのSSLターミネーションの設定 • セッション永続性 • リクエスト・ルーティング •

    ロード・バランサのメトリック • トラブル時の対応ガイドライン 内容 Copyright © 2021, Oracle and/or its affiliates 2
  3. • OCIロード・バランサは、1つのエントリーポイントからVCN内の複数のサーバーに対して自動的にト ラフィックを分散 これによりリソース利用率が向上し、容易な拡張性と高可用性を得られます • OCIロード・バランサはリージョナルなサービスでパブリックおよびプライベート・ロード・バラン サをサポート • サポートプロトコル –

    TCP, HTTP/1.0, HTTP/1.1, WebSocket • SSL ターミネーション、エンドツーエンド SSL、SSL トンネリングをサポート • セッション永続性やコンテンツベースルーティングなどの高度な機能をサポート • 主な特長 • プライベートまたはパブリック・ロード・バランサ (パブリック IP アドレスが付与) • フレキシブルな帯域 • TCP (レイヤ 4) および HTTP (レイヤ 7) トラフィック用の単一ロード・バランサ OCIロード・バランサ・サービスのおさらい Copyright © 2021, Oracle and/or its affiliates 3
  4. Copyright © 2021, Oracle and/or its affiliates 4 バックエンド・サーバーでの クライアントのIPアドレスの識別

  5. ロード・バランサを介したトラフィックは、送信元情報(IPアド レスやポート)がロード・バランサの情報に変換されてバックエ ンド・サーバーに転送されるため、バックエンド・サーバーの アクセスログにはロード・バランサのIPアドレスやポートが送信 元情報として記録される HTTPリスナーでは、HTTPヘッダーに X-Forwarded- が挿入され、 元のクライアント情報を判別できる TCPリスナーでは

    Proxy Protocol を利用して判別 クライアントのIPアドレスやポート情報の判別 Copyright © 2021, Oracle and/or its affiliates 5 送信元 : 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アドレスを識別 ① ④ ① ④
  6. Copyright © 2021, Oracle and/or its affiliates 6 SSL通信への対応 SSL

    Handling
  7. 3種類のSSL通信方式 Copyright © 2021, Oracle and/or its affiliates 7 SSLターミネーション

    • ロード・バランサでSSLを終端 • クライアントとロード・バランサ間の通信を暗号化 • SSL証明書をロード・バランサで一括管理 • バックエンドのWebサーバーの負荷を軽減 • FLBのHTTPSリスナーでのみ利用可能 エンド・ツー・エンドSSL • ロード・バランサで一度SSLを終端した上で、別のSSL通信を バックエンド・サーバーとの間で確立 • クライアントからバックエンド・サーバー間通信が全暗号化 • SSL証明書をロード・バランサとバックエンドサーバーの両方 で管理 • FLBのHTTPSリスナーでのみ利用可能 SSLパススルー • ロード・バランサがSSLをパススルーして、バックエンド・ サーバー側でSSLを終端 • ロード・バランサでのSSL証明書管理は不要 • FLBのTCPリスナーとNLBで利用可能 HTTPS (暗号化) HTTP (非暗号化) ロード・バランサ HTTPS (暗号化) HTTPS (暗号化) ロード・バランサ HTTPS(暗号化) ロード・バランサ バックエンド ・サーバー バックエンド ・サーバー バックエンド ・サーバー クライアント クライアント クライアント
  8. TLS 1.2をサポート サポートされている暗号化強度 • ECDHE-RSA-AES256-GCM-SHA384 • ECDHE-RSA-AES256-SHA384 • ECDHE-RSA-AES128-GCM-SHA256 •

    ECDHE-RSA-AES128-SHA256 • DHE-RSA-AES256-GCM-SHA384 • DHE-RSA-AES256-SHA256 • DHE-RSA-AES128-GCM-SHA256 • DHE-RSA-AES128-SHA256 SSL通信への対応 Copyright © 2021, Oracle and/or its affiliates 8
  9. OCIロード・バランサ はPEM形式の X.509 v3 デジタル証明書のみ対応 X.509 v3 デジタル証明書の構造 • Certificate

    • Version • Serial Number • Algorithm ID • Issuer • Validity • Not Before • Not After • Subject • Subject public key info • Issuer Unique Identifier (optional) • Subject Unique Identifier (optional) • Extensions (optional) • ... • Certificate Signature Algorithm • Certificate Signature X.509 v3 デジタル証明書 Copyright © 2021, Oracle and/or its affiliates 9
  10. SSLが有効化されていない ロード・バランサ Copyright © 2021, Oracle and/or its affiliates 10

  11. RSAキーの作成 証明書署名要求 (CSR) の作成 SSLの設定ステップ - 1. 秘密鍵と証明書署名要求(CSR) の生成 Copyright

    © 2021, Oracle and/or its affiliates 11 $ 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 []:rohit.rahi@oracle.com 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)
  12. 自己署名証明書の生成 SSLの設定ステップ - 2. 自己署名証明書の生成 Copyright © 2021, Oracle and/or

    its affiliates 12 $ 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/emailAddress=rohit.rahi@oracle.com 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/emailAddress=rohit.rahi@oracle.com 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/emailAddress=rohit.rahi@oracle.com 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:
  13. 証明書を PEM 形式に変換 SSLの設定ステップ - 3. ロード・バランサに証明書を追加 Copyright © 2021,

    Oracle and/or its affiliates 13 $ openssl x509 -in ExampleCert.crt -out ExampleCert.pem -outform PEM
  14. SSLの設定ステップ - 4. ポート443でリッスンするリスナーを作成 Copyright © 2021, Oracle and/or its

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

    はエラーが表示されます
  16. Copyright © 2021, Oracle and/or its affiliates 16 セッション永続性 Session

    Persistence
  17. Webアプリケーションのセッションを維持するため、同一のクライアントからのリクエストを 同一サーバーに振り分ける機能 利用例 : ショッピングカートなど同じサーバーでトランザクション処理を必要とする場合 Cookie情報を元に転送先のサーバーを決定する Cookie persistence をサポート ※Cookieを受け入れないクライアントではセッション維持は不可

    セッション永続性 Copyright © 2021, Oracle and/or its affiliates 17 セッション永続性なしの場合 セッション永続性ありの場合 トランザクションが異なるサーバーに転送され 処理を継続できない Cookie情報よりトランザクションが 同一サーバーに転送され、一貫した処理が可能 ロード・バランサ Client A Client B cookieより転送先サーバーを特定 ロード・バランサ Client A Client B FLBのHTTP/HTTPSリスナーでのみ利用可能
  18. セッション永続性に利用するCookieの2種類の生成方式 1. ロード・バランサCookieの永続性 • ロード・バランサ単独で生成するCookieが セッション永続性に使われる方式 • アプリケーション側でCookieが挿入ができな い場合でもOK 2.

    アプリケーションCookieの永続性 • アプリケーションが挿入したCookieの情報が セッション永続性に使われる方式 • 細かい制御をしたい場合はこちらを選択 • 実際にはアプリケーションのCookieが直接使 用されるわけではなく、Cookie(+α)から生成し たハッシュ値を使ってロード・バランサが新 しいCookieを追加、このCookieがセッション永 続性維持に使われる FLBのHTTP/HTTPSリスナーでのみ利用可能 Copyright © 2021, Oracle and/or its affiliates 18
  19. 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. ロード・バランサは、バックエンド・サー バー情報のハッシュ値から新しいCookieを生 成、レスポンスヘッダーに追加して返送 4. 次回アクセス時、クライアントはCookieをリ クエストヘッダーに設定して要求 5. ロード・バランサ はCookieの値を元に、元 のバックエンド・サーバーにトラフィック を転送 FLBのHTTP/HTTPSリスナーでのみ利用可能 Copyright © 2021, Oracle and/or its affiliates 19
  20. 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+バックエンド・サーバー情 報のハッシュ値から新しいCookieを生成、レ スポンスヘッダーに追加して返送 4. 次回アクセス時、クライアントはCookieをリ クエストヘッダーに設定して要求 5. ロード・バランサはCookieの値を元に、元の バックエンド・サーバーにトラフィックを 転送 FLBのHTTP/HTTPSリスナーでのみ利用可能 Copyright © 2021, Oracle and/or its affiliates 20
  21. 元のバックエンド・サーバーが利用できなくなった場合は? • フォールバック(Fallback)パラメーターの設定値により挙動が変わる • フォールバック有効 : バックエンド・セット内の異なるバックエンド・サーバーを選択してセッションをリダイ レクト • フォールバック無効

    : ロード・バランサがHTTPコード 502を応答してリクエストを失敗させる セッション永続性を止めるには? • Cookie Nameパラメータで設定されたcookie、またはmatch-allパターンを使用している場合はすべての cookieを削除 • Cookieを削除する一般的な方法は、過去の有効期限を設定してCookieを再送信 (Set-Cookieレスポンスヘッダーを送信) • Cookie削除後に受け付けたリクエストは、構成されているトラフィック分散メカニズム(重み付けラ ウンド・ロビン、最小接続など) に従って処理 セッション永続性 Copyright © 2021, Oracle and/or its affiliates 21 FLBのHTTP/HTTPSリスナーでのみ利用可能
  22. Cookieベースのセッション永続性機能は、HTTPヘッダー内のCookie情報を利用するため、レイヤー7の ロード・バランサでのみ利用可能 • 利用可◦ - フレキシブル・ロード・バランサ(FLB)のHTTP/HTTPSリスナー • 利用不可× - フレキシブル・ロード・バランサ(FLB)のTCPリスナー

    • 利用不可× - ネットワーク・ロード・バランサ(NLB) Cookieが利用できない場合は、ロード・バランシング・ポリシーにIPハッシュや2タプル・ハッシュを利 用することで、クライアントのIP(のハッシュ値)単位でバックエンド・サーバーの固定が可能 セッション永続性機能が利用できない場合のバックエンド・サーバーの固定 Copyright © 2021, Oracle and/or its affiliates 22 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ハッシュ
  23. Copyright © 2021, Oracle and/or its affiliates 23 リクエスト・ルーティング Request

    Routing
  24. リクエスト・ルーティングを用いることにより、ホスト名やIPアドレスよりも細かい特定のリクエスト パラメーターに基づいてトラフィックの転送先や転送ルールを設定することが可能 1. 仮想ホスト - 仮想的なホスト名単位でリクエストを制御 2. ルーティング・ポリシー – URIパス、リクエストヘッダー、パラメータ、Cookieなどに基づいてリ

    クエストを制御 • 2021年5月までの標準だった パス・ルート・セット の上位互換機能 • パス・ルート・ルールとは? • 2021年3月までの標準機能、2022年3月24日以降は設定変更ができなくなる[CN-64788] • URIパスによるルーティングのみが可能 3. ルール・セット - HTTP(S)のリクエストまたはレスポンスに対して様々な操作を行うためのルール 定義 リクエスト・ルーティングはFLBのHTTP、HTTPSリスナーのみ対応 • 理由 : レイヤー7の情報を利用するため • FLBのTCPリスナーや、NLBは非対応 リクエスト・ルーティング Copyright © 2021, Oracle and/or its affiliates 24 FLBのHTTP/HTTPSリスナーでのみ利用可能
  25. ロード・バランサ (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 FLBのHTTP/HTTPSリスナーでのみ利用可能 Copyright © 2021, Oracle and/or its affiliates 25
  26. 仮想ホスト名のマッチング順 • FQDNの完全一致 (e.g. app.example.com) • アスタリスクで始まる部分一致 (*.example.com) • アスタリスクで終わる部分一致

    (app.example.*) 仮想ホストが指定されていないリスナーは、そのポートのデフォルト・リスナーとして機能(Catch-all) • ※ 全てのリスナーに仮想ホストが指定されている場合は、そのポート用に最初に定義した仮想ホス トがデフォルト・リスナーとして機能する 仮想ホスト機能の制限 • 正規表現の利用不可 • リスナーあたりの仮想ホスト名は最大16個まで • ロード・バランサあたりの仮想ホスト名は最大16個まで リクエスト・ルーティング – 1. 仮想ホスト Copyright © 2021, Oracle and/or its affiliates 26 FLBのHTTP/HTTPSリスナーでのみ利用可能
  27. リクエスト・ルーティング – 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/ FLBのHTTP/HTTPSリスナーでのみ利用可能 Copyright © 2021, Oracle and/or its affiliates 27
  28. ロード・バランサ (IP : xxx.xxx.xxx.xxx) リスナー (Port : 80) バックエン ド・セット

    1 バックエン ド・セット 2 下位互換機能、今後はルーティング・ポリシー機能をご利用ください 1つのリスナー(IPアドレス+プロトコル+ポート)に 対して URI パスに基づく複数のパス・ルート・ ルールを定義することにより、URIパス単位でリ クエストの転送先のバックエンド・セットをを制 御することが可能になる機能 メリット • 1つのホスト名とポートで異なるバックエン ド・サーバーに処理を振り分けできる • 1つのロード・バランサで済むためバックエン ド・セットの管理が効率化できる • 1つのロード・バランサで済むため帯域効率や コスト効率が良くなる 2022/3/24以降は設定変更ができなくなる [CN-64788] リクエスト・ルーティング – 2'. パス・ルート・セット(~2022/3/24) パス・ルート ・ルール1 /pages/ パス・ルート ・ルール2 /video/ FLBのHTTP/HTTPSリスナーでのみ利用可能 Copyright © 2021, Oracle and/or its affiliates 28
  29. パス・ルート・ルールは、パス・ルート文字列とパターンマッチで構成 パターンマッチの種類 • 完全一致(EXACT_MATCH) • 着信URIパスと完全一致する文字列 : ^<path_string>$ • 最長接頭辞の強制一致(FORCE_LONGEST_PREFIX_MATCH)

    • URIパスの先頭から最もよく一致する文字列 : <path_string>.* • 接頭辞一致(PREFIX_MATCH) • 着信URIパスの先頭部分に一致する文字列 : ^<path_string>.* • 接尾辞一致(SUFFIX_MATCH) • 着信URIパスの末尾部分に一致する文字列 : .*<path_string>$ リクエスト・ルーティング – 2'. パス・ルート・セット(~2022/3/24) Copyright © 2021, Oracle and/or its affiliates 29 FLBのHTTP/HTTPSリスナーでのみ利用可能
  30. パス・ルート・ルールの優先順位 1. 完全一致(EXACT_MATCH) 2. 最長接頭辞の強制一致 (FORCE_LONGEST_PREFIX_MATCH) 3. 接頭辞一致(PREFIX_MATCH) もしくは 接尾辞

    一致(SUFFIX_MATCH) に設定した順序 完全一致と最長接頭辞の強制一致は、ルールの順 序設定に関係なく優先的に適用 複数の接頭辞一致または接尾辞一致を同時に使用 する場合、上位のルールから順に適用される リクエスト・ルーティング – 2'. パス・ルート・セット(~2022/3/24) FLBのHTTP/HTTPSリスナーでのみ利用可能 Copyright © 2021, Oracle and/or its affiliates 30
  31. パス・ルート・ルールの制限 • パス・ルート・セットごとに最大20のパス・ルート・ルール • リスナーごとに1つのパス・ルート・セット リクエスト・ルーティング – 2'. パス・ルート・セット(~2022/3/24) Copyright

    © 2021, Oracle and/or its affiliates 31 FLBのHTTP/HTTPSリスナーでのみ利用可能
  32. 組み合わせた場合は、仮想ホストの設定は、パス・ルート・ルールの設定よりも優先度が高くなる 仮想ホストごとにURIパス・ベースのルーティングが動作する 例 : 1つのリスナーとA、B、Cの3つのバックエンド・セット、デフォルト・バックエンド・セットはA • 仮想ホストの設定 • foo.com →

    バックエンド・セットB • bar.com →バックエンド・セットC • パス・ルート・セットの設定 • /biz → バックエンド・セットB (完全一致) • /baz →バックエンド・セットC (完全一致) 仮想ホストとパス・ルート・セットを組み合わせた場合 Copyright © 2021, Oracle and/or its affiliates 32 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リスナーでのみ利用可能
  33. 仮想ホストとパス・ルート・セットを組み合わせた場合 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 FLBのHTTP/HTTPSリスナーでのみ利用可能 Copyright © 2021, Oracle and/or its affiliates 33
  34. 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まで拡張 • ピリオド「.」やアンダースコア「_」など、通常は 使用できない特殊文字の使用を許可するルールも設 定できる リクエスト・ルーティング – 3. ルール・セット FLBのHTTP/HTTPSリスナーでのみ利用可能 Copyright © 2021, Oracle and/or its affiliates 34
  35. ヘッダー・ルール リスナーを経由するリクエストまたはレスポンス に対してHTTPヘッダの追加、変更、削除が可能 ロード・バランサにつき最大50個のルール ルールセットを利用することにより以下のような 対応が可能 • バックエンド・サーバー情報の不要な流出を 抑制 •

    [Server]などのデバッグヘッダー削除 • Webサーバーに対するセキュリティ対策の補 助 • [x-xss-protection]や[x-content-type]ヘッダ追加 FLBのHTTP/HTTPSリスナーでのみ利用可能 Copyright © 2021, Oracle and/or its affiliates 35
  36. アクセス制御ルールとアクセス方法ルール アクセス制御ルール • アプリケーションへのアクセスを信頼済みの クライアントネットワークからのみに制限す ることが可能 • アクセスを許可するクライアントのIPアドレス範 囲を指定可能 アクセス方法ルール

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

    © 2021, Oracle and/or its affiliates 37
  38. Copyright © 2021, Oracle and/or its affiliates 38 メトリック Load

    Balancer Metrics
  39. ロード・バランサのメトリック - ディメンジョン 最新情報は公式ドキュメントをご確認ください https://docs.oracle.com/cd/E97706_01/Content/Balance/Reference/loadbalancermetrics.htm ディメンジョン名 説明 availabilityDomain ロード・バランサが存在する可用性ドメイン backendSetName

    メトリックが適用されるバックエンドセットの名前 lbComponent メトリックが適用されるロード・バランサ・コンポーネント このディメンジョン値(Backendset/Listener/Loadbalancer)毎に有効なメトリックが異なる lbHostId 現在のロード・バランサホストを表す一意のID ※このIDの値はロード・バランサの状況により変わる可能性がある listenerName メトリックが適用されるリスナーの名前 region ロード・バランサが存在するリージョン resourceId メトリックが適用されるリソースのOCID Copyright © 2021, Oracle and/or its affiliates 39
  40. lbComponentがLoadBalancerの場合のメトリックの詳細 最新情報は公式ドキュメントをご確認ください https://docs.oracle.com/cd/E97706_01/Content/Balance/Reference/loadbalancermetrics.htm メトリック コンソールの表示名 単位 内容 AcceptedConnections Accepted Connections

    count ロード・バランサによって受け入れられた接続の数 AcceptedSSLHandshake Accepted SSL Handshakes count 受け入れられたSSLハンドシェイクの数 ActiveConnections Active Connections count クライアントからロード・バランサへのアクティブな 接続の数 ActiveSSLConnections Active SSL Connections count アクティブなSSL接続の数 BytesReceived Bytes Received bytes ロード・バランサが受信したバイト数 BytesSent Bytes Sent bytes ロード・バランサによって送信されたバイト数 FailedSSLClientCertVerify Failed Client SSL Cert Verifications count 失敗したクライアントSSL証明書の検証の数 FailedSSLHandshake Failed SSL Handshakes count 失敗したSSLハンドシェイクの数 HandledConnections Handled Connections count ロード・バランサによって処理された接続の数 HttpRequests Inbound Requests count ロード・バランサへの着信クライアント要求の数 Copyright © 2021, Oracle and/or its affiliates 40
  41. Copyright © 2021, Oracle and/or its affiliates 41 トラブル時の対応ガイドライン Troubleshooting

    Guidelines
  42. アプリケーションに合わせて適切にヘルスチェックのパラメーターを設定 • ヘルス・ステータスは3分ごとに更新、より細かい粒度は使用不可 障害時はステータス・インジケーターの情報を使って問題を調査 • バックエンド・サーバーの[詳細]ページの[ステータス]フィールドに表示されているエラーコードを 確認する よくあるケース • ヘルスチェックの設定が間違っている

    • リスナーの構成が誤っている • 間違ったポートでリッスンしている • 間違ったプロトコルを使用している • 間違ったポリシーを使用している • セキュリティ・リストが誤って設定されている • VCNのセキュリティ・リストまたはネットワーク・セキュリティ・グループがトラフィックをブロックしている • ルート表の構成が誤っている トラブル時の対応ガイドライン Copyright © 2021, Oracle and/or its affiliates 42
  43. この資料では、以下のことを解説しました • バックエンド・サーバーでのクライアントIPアドレスの識別 • SSL通信対応方式への理解とロード・バランサでのSSLターミネーションの設定 • セッション永続性 • リクエスト・ルーティング •

    ロード・バランサのメトリック • トラブル時の対応ガイドライン まとめ Copyright © 2021, Oracle and/or its affiliates 43
  44. 日本語マニュアル – ロード・バランシング • 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 © 2021, Oracle and/or its affiliates 44
  45. 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 © 2021, Oracle and/or its affiliates 45
  46. 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 © 2021, Oracle and/or its affiliates 46
  47. Thank You Copyright © 2021, Oracle and/or its affiliates 47

  48. None