ネットワーク・ロード・バランサの概要
ネットワーク・ロード・バランサが、1つのエントリ・ポイントからバックエンド・セット内の複数のサーバーへの自動化されたトラフィック分散を提供する方法について学習します。
動作のモード
Network Load Balancerは、Open Systems Interconnection (OSI)モデルのLayer-3およびLayer-4で動作するロード・バランシング・サービスです。このサービスは、超低レイテンシを維持しながら、高可用性のメリットを享受し、高スループットを実現します。Network Load Balancerには、次の3つのモードがあります。
-
完全ネットワーク・アドレス変換(NAT)モード: ネットワークLoad Balancerは、パケットの発信元IPアドレスと宛先IPアドレスの両方を変換してから、バックエンドに送信します。
-
ソース保持モード: Network Load Balancerは、Network Load Balancerリスナー(VIP)からバックエンド・サーバーのIPアドレスへの宛先NATを実行します。ただし、バックエンド・サーバーに送信する前に、元のソースIPアドレス/ポート情報を保持します。
-
透過(ソース/宛先の保持)モード: Network Load Balancerでは、パケット内の情報は変更されません。このモードでは、パケットをバックエンド・サーバーに転送し、効果的に「ワイヤのバンプ」として動作します。このモードでは、VCNルーティング表エントリを使用してトラフィックを経由する必要があります。
次の表に、Network Load Balancerの動作モードに関する質問への回答を示します。
Mode | その他の名前 | どこで有効化? | クライアント・トラフィックはリスナーを使用しますか。 | パブリック・ネットワーク・ロード・バランサのサポートはありますか。 | プライベート・ネットワーク・ロード・バランサのサポートはありますか。 |
---|---|---|---|---|---|
フルNAT |
なし |
ソース・ヘッダーの保持モードとソース/宛先ヘッダーの保持モードの両方を無効にすることで有効化されます。 |
Yes |
Yes |
Yes |
ソース・ヘッダー(IP/ポート)の保持 |
|
バックエンド・セット構成(作成または編集)を介して有効化されます。 |
Yes |
Yes |
Yes |
ソース/宛先ヘッダー(IP/ポート)の保持 |
|
「Network Load Balancer Details」ページで有効にします。 |
No |
No |
Yes |
ネットワーク・ロード・バランサ・タイプ
フレキシブル・ネットワーク・ロード・バランサ・サービスによって、VCNにパブリックまたはプライベートのネットワーク・ロード・バランサを作成できます。パブリック・ネットワーク・ロード・バランサには、インターネットからアクセスできるパブリックIPアドレスがあります。プライベート・ネットワーク・ロード・バランサには、ホストしているサブネットのIPアドレスがあり、これはVCN内でのみ表示されます。1つのIPアドレスに対して複数のリスナーを構成し、レイヤー4 (TCP/UDP/ICMP)のトラフィックをロード・バランシングできます。パブリックとプライベートのロード・バランサは、VCN内のどのバックエンド・サーバーにもデータ・トラフィックをルーティングできます。
パブリック・ネットワーク・ロード・バランサ
インターネットからのトラフィックを受け入れるには、パブリック・ネットワーク・ロード・バランサを作成します。サービスは、受信トラフィックのエントリ・ポイントとして機能するパブリックIPアドレスをこれに割り当てます。DNSベンダーを通じて、パブリックIPアドレスをわかりやすいDNS名に関連付けます。
パブリック・ネットワーク・ロード・バランサのスコープは、リージョナルまたは可用性ドメイン固有のいずれかです。このスコープは、ネットワーク・ロード・バランサが作成されたサブネットによって決まります。リージョナル・サブネットに作成されたパブリック・ネットワーク・ロード・バランサのスコープは、リージョナルです。可用性ドメイン固有のサブネットに作成されたパブリック・ネットワーク・ロード・バランサのスコープは、可用性ドメイン固有です。ネットワーク・ロード・バランサによって、いずれかの可用性ドメインが停止した場合でも、高可用性とアクセシビリティが保証されます。
プライベート・ネットワーク・ロード・バランサ
ネットワーク・ロード・バランサをインターネットから分離してセキュリティ状態を簡素化するには、プライベート・ネットワーク・ロード・バランサを作成します。ネットワーク・ロード・バランサは、受信トラフィックのエントリ・ポイントとして機能するプライベートIPアドレスをこれに割り当てます。ネットワーク・ロード・バランサには、ホスト・リージョナル・サブネットを含むVCN内からのみアクセスできますが、セキュリティ・ルールでさらに制限することもできます。
プライベート・ネットワーク・ロード・バランサのスコープは、リージョナルまたは可用性ドメイン固有のいずれかです。このスコープは、ネットワーク・ロード・バランサが作成されたサブネットによって決まります。
ネットワーク・ロード・バランサの到達可能性
ネットワーク・ロード・バランサは、クライアントのICMPまたはTCP/UDP pingパケットに直接応答しません。かわりに、ネットワーク・ロード・バランサは、ロード・バランシング・ポリシーに従ってパケットをバックエンド・サーバーに送ります。その後、バックエンド・サーバーがクライアントにレスポンスを返します。
ICMPプロトコルをサポートしているのは、プライベート・ネットワーク・ロード・バランサのみです。ネットワーク・ロード・バランサでは、ソース/宛先ヘッダー(IP、ポート)の保持機能も有効にする必要があります。この機能が有効でない場合、またはパブリック・ネットワーク・ロード・バランサを使用している場合は、使用可能なリスナー対応プロトコル(TCP/UDP)を介してネットワーク・ロード・バランサの到達性を確認できます。
VCN転送ルーティングでのネクスト・ホップ・ルート・ターゲットとしてのプライベート・ネットワーク・ロード・バランサの使用
VCN転送ルーティングでネクスト・ホップ・プライベートIPルート・ターゲットとしてプライベート・ネットワーク・ロード・バランサを使用します。この方法では、ネットワーク・ロード・バランサを、パケットが最終宛先へのパスに沿って転送されるBump-in-the-wireレイヤー3の透過的ロード・バランサとして実行できます。転送ルーティングとは、オンプレミス・ネットワークが接続済の仮想クラウド・ネットワーク(VCN)を使用して、そのVCNの外部にあるOracleリソースまたはサービスに到達するためのネットワーク・トポロジを示します。FastConnectまたはサイト間VPNを使用してオンプレミス・ネットワークをVCNに接続し、トラフィックがVCNを介してVCNの外部にある宛先に転送されるようにVCNルーティングを構成します。詳細は、ハブVCN内の転送ルーティングを参照してください。
ネットワーク・ロード・バランサは、VCNルート表を使用して、ハブVCNのネットワーク・ロード・バランサの背後でホストされているファイアウォール・インスタンスにユーザー・トラフィックをルーティングします。このユーザー・トラフィックは、それ以外の場合はソースから宛先に直接移動します。このモードでは、ネットワーク・ロード・バランサはクライアント・パケットの特性を変更せず、クライアントのソースおよび宛先IPヘッダー情報を保持します。この方法により、ファイアウォール・アプライアンスは、元のクライアント・パケットを検査し、セキュリティ・ポリシーを適用してから、スポークVCNのアプリケーション・バックエンド・サーバーにそれを転送できます。
次に、ネットワーク・ロード・バランサのアーキテクチャを示します。
宛先 |
ターゲット |
---|---|
10.0.0.0/24 |
Flex-NLB VIP IP |
10.1.0.0/24 |
Flex-NLB VIP IP |
宛先 |
ターゲット |
---|---|
172.16.0.0/16 |
DRG |
宛先 |
ターゲット |
---|---|
0.0.0.0/0 |
IGW |
宛先 |
ターゲット |
---|---|
10.0.0.0/24 |
ハブWeb LPG |
10.1.0.0/24 |
ハブDB LPG |
宛先 |
ターゲット |
---|---|
0.0.0.0/0 |
FW信頼できるインタフェースIP |
すべてのネットワーク・ロード・バランサ
ネットワーク・ロード・バランサには、受信トラフィックをコンピュート・インスタンスにルーティングするためのバックエンド・セットがあります。バックエンド・セットは、次を含む論理エンティティです:
-
バックエンド・サーバーのリスト
-
ロード・バランシング・ポリシー
-
ヘルス・チェック・ポリシー
バックエンド・セットに関連付けられたバックエンド・サーバー(コンピュート・インスタンス)は、関連付けられたネットワーク・セキュリティ・グループ(NSG)、セキュリティ・リストおよびルート表で目的のトラフィック・フローが許可されているかぎり、どの場所にでも配置できます。
VCNでネットワーク・セキュリティ・グループ(NSG)を使用する場合は、ロード・バランサをNSGに関連付けることができます。NSGには、セキュリティ・ルールのセットがあり、インバウンドおよびアウトバウンド・トラフィックの許可されるタイプを制御します。ルールは、グループのリソースにのみ適用されます。NSGとは対照的に、セキュリティ・リストでは、ルールはリストを使用するサブネットのすべてのリソースに適用されます。NSGの詳細は、ネットワーク・セキュリティ・グループを参照してください。
VCNでセキュリティ・リストを使用する場合、ロード・バランシング・サービスによって、適切なセキュリティ・リスト・ルールが提案されます。これらは、ネットワーキング・サービスを使用して独自に構成することもできます。詳細は、セキュリティ・リストを参照してください。NSGとセキュリティ・リストの比較の詳細は、セキュリティ・ルールを参照してください。
バックエンド・サーバーは、リージョン内のすべての可用性ドメインに分散することをお薦めします。
プライベートIPアドレスの消費
パブリック・サブネットで作成されたパブリック・ネットワーク・ロード・バランサは、ホスト・サブネットの1つのプライベートIPアドレスを消費します。
単一のサブネットで作成されたプライベート・ネットワーク・ロード・バランサは、ホスト・サブネットの1つのプライベートIPアドレスを消費します。
ネットワーク・ロード・バランサの概念
- バックエンド・サーバー
- 受信クライアント・トラフィックに応答してコンテンツを生成するアプリケーション・サーバー。通常は、オーバーレイ(プライベート) IPv4アドレスとポートの一意の組合せによってアプリケーション・サーバーを識別します(10.10.10.1:8080や10.10.10.2:8080など)。詳細は、ネットワーク・ロード・バランサのバックエンド・サーバーを参照してください。ノート
バックエンド・サーバーは、ネットワーク・ロード・バランサの仮想IP (VIP)へのトラフィックを開始できないため、クライアントとバックエンドの両方として同時に機能することはできません。
- バックエンド・セット
- バックエンド・サーバーのリスト、ロード・バランシング・ポリシーおよびヘルス・チェック・ポリシーによって定義された論理エンティティ。バックエンド・セットは、ネットワーク・ロード・バランサがバックエンド・サーバーのコレクションに対してトラフィックを送信する方法を決定します。詳細は、ネットワーク・ロード・バランサのバックエンド・セットを参照してください。
- ヘルス・チェック
-
ヘルス・チェックは、バックエンド・サーバーの可用性を確認するテストです。ヘルス・チェックは、リクエストまたは接続試行です。指定された時間間隔に基づいて、ロード・バランサは、ヘルス・チェック・ポリシーを適用し、バックエンド・サーバーを継続的にモニターします。サーバーがヘルス・チェックに失敗すると、ロード・バランサは一時的にそのサーバーをローテーションから除外します。サーバーが後でヘルス・チェックに合格すると、ロード・バランサはそれをローテーションに戻します。
バックエンド・セットの作成時に、ヘルス・チェック・ポリシーを構成します。バックエンド・サーバーに対して、TCPレベル、UDPレベルまたはHTTPレベルのヘルス・チェックを構成できます。
-
TCPレベルのヘルス・チェックでは、バックエンド・サーバーとのTCP接続を試行し、接続ステータスに基づいてレスポンスを検証します。
-
UDPレベルのヘルス・チェックでは、バックエンド・サーバーとのUDP接続を試行し、接続ステータスに基づいてレスポンスを検証します。
-
HTTPレベルのヘルス・チェックでは、特定のURIのバックエンド・サーバーにリクエストを送信し、返されるステータス・コードまたはエンティティ・データ(本文)に基づいてレスポンスを検証します。
このサービスは、可用性を向上し、アプリケーション・メンテナンス・ウィンドウを短縮するのに役立つアプリケーション固有のヘルス・チェック機能を提供します。ヘルス・チェック構成の詳細は、ネットワーク・ロード・バランサのヘルス・チェック・ポリシーを参照してください。
-
- ヘルス・ステータス
- ネットワーク・ロード・バランサとそのコンポーネントの一般的なヘルスをレポートするインジケータ。詳細は、ネットワーク・ロード・バランサのヘルス・ステータスを参照してください。
- リスナー
- ネットワーク・ロード・バランサのIPアドレスに対する受信トラフィックをチェックする論理エンティティ。リスナーのプロトコルおよびポート番号を構成します。サポートされるプロトコルには次が含まれます:
-
TCP
-
UDP
-
ICMP
ノート
ソース/宛先ヘッダー(IP、ポート)の保持機能が有効になっている場合、プライベート・ネットワーク・ロード・バランサはICMPプロトコルのみをサポートします。詳細は、ネットワーク・ロード・バランサ・ソース/宛先の保持の有効化を参照してください。詳細は、ネットワーク・ロード・バランサのリスナーを参照してください。
-
- ネットワーク・ロード・バランシング・ポリシー
- ネットワーク・ロード・バランシング・ポリシーは、ネットワーク・ロード・バランサに対し、受信トラフィックをバックエンド・サーバーに分散する方法を指示します。一般的なロード・バランサ・ポリシーには次が含まれます:
-
5タプル・ハッシュ
-
3タプル・ハッシュ
-
2タプル・ハッシュ
-
- リージョンおよび可用性ドメイン
- ネットワークLoad Balancerサービスは、リージョン内の可用性ドメイン間のアプリケーション・トラフィックを管理します。リージョンは限定された地理的領域で、可用性ドメインはリージョン内に配置された1つ以上のデータ・センターです。1つのリージョンは、複数の可用性ドメインで構成されます。詳細は、リージョンおよび可用性ドメインを参照してください。
- サブネット
- 仮想クラウド・ネットワーク(VCN)で定義する下位区分(10.0.0.0/24や10.0.1.0/24など)。サブネットは、VCN内の他のサブネットと重複しない連続したIPアドレスの範囲で構成されます。サブネットごとに、それに適用するルーティング・ルールおよびセキュリティ・ルールを指定します。サブネットの詳細は、VCNおよびサブネットの管理およびパブリックIPアドレス範囲を参照してください。
- タグ
-
リソースにタグを適用すると、ビジネス・ニーズに応じてそれらを整理しやすくなります。リソースの作成時にタグを適用することも、後から必要なタグでリソースを更新することもできます。タグの適用に関する一般情報は、リソース・タグを参照してください。
- 仮想クラウド・ネットワーク(VCN)
- Oracleデータ・センターで設定するプライベート・ネットワークであり、選択して使用できるファイアウォール・ルールと特定のタイプの通信ゲートウェイがあります。VCNは、許可されるIPアドレス範囲内で選択した1つの連続したIPv4 CIDRブロックをカバーします。ネットワーク・ロード・バランサを起動するには、少なくとも1つの仮想クラウド・ネットワークが必要です。仮想クラウド・ネットワークの設定の詳細は、ネットワーキングの概要を参照してください。
- 可視性
- ネットワーク・ロード・バランサをパブリックにするかプライベートにするかを指定します。
- 作業リクエスト
- ネットワーク・ロード・バランサ・リクエストの現在の状態についてレポートするオブジェクト。ネットワーク・ロード・バランサは、リクエストを非同期に処理します。各リクエストは、レスポンスとして作業リクエストID (OCID)を返します。作業リクエスト・アイテムを表示して、リクエストのステータスを確認できます。詳細は、ネットワーク・ロード・バランサの作業リクエストを参照してください。
リソース識別子
ほとんどのタイプのOracle Cloud Infrastructureリソースには、Oracle Cloud ID (OCID)と呼ばれる、Oracleによって割り当てられた一意の識別子があります。OCIDのフォーマットおよびその他のリソース識別方法の詳細は、リソース識別子を参照してください。
Oracle Cloud Infrastructureへのアクセス方法
Oracle Cloud Infrastructure (OCI)には、コンソール(ブラウザベースのインタフェース)、REST APIまたはOCI CLIを使用してアクセスできます。 コンソール、APIおよびCLIの使用手順は、このドキュメント全体のトピックに記載されています。使用可能なSDKのリストについては、ソフトウェア開発キットとコマンドライン・インタフェースを参照してください。
リソースのモニタリング
メトリック、アラームおよび通知を使用して、Oracle Cloud Infrastructureリソースのヘルス、容量およびパフォーマンスをモニターできます。詳細は、モニタリングおよび通知を参照してください。
ネットワーク・ロード・バランサを通過するトラフィックのモニタリングの詳細は、ネットワーク・ロード・バランサ・メトリックを参照してください。
認証と認可
Oracle Cloud Infrastructureの各サービスは、すべてのインタフェース(コンソール、SDKまたはCLI、およびREST API)で、認証および認可のためにIAMと統合されます。
組織の管理者は、グループ、コンパートメントおよびポリシーを設定して、どのユーザーがどのサービスおよびリソースにアクセスできるかと、そのアクセス権のタイプを制御する必要があります。たとえば、ポリシーは、新規ユーザーの作成、クラウド・ネットワークの作成と管理、インスタンスの起動、バケットの作成、オブジェクトのダウンロードなどを実行できるユーザーを制御します。詳細は、ポリシーの開始を参照してください。異なる各サービスのポリシー記述の詳細は、ポリシー・リファレンスを参照してください。
管理者以外の通常のユーザーが会社所有のOracle Cloud Infrastructureリソースを使用する必要がある場合は、管理者に連絡してユーザーIDを設定してください。管理者は、ユーザーが使用する1つ以上のコンパートメントを承認できます。
ネットワーク・ロード・バランサの制限
各ロード・バランサには、次の構成制限があります:
-
1つのIPv4アドレスと1つのIPv6アドレス
-
50のバックエンド・セット
-
1つのバックエンド・セット当たり512のバックエンド・サーバー
-
合計1024のバックエンド・サーバー
-
50のリスナー
-
1つの可用性ドメイン当たりの同時接続数のデフォルト制限は330,000
適用される制限のリストと制限の引上げをリクエストする手順は、サービス制限を参照してください。
必要なIAMポリシー
Oracle Cloud Infrastructureを使用するには、管理者からポリシーでセキュリティ・アクセス権が付与されている必要があります。コンソールまたは(SDK、CLIまたはその他のツールを使用した) REST APIのどれを使用しているかにかかわらず、このアクセス権が必要です。権限を持っていない、または認可されていないというメッセージが表示された場合は、持っているアクセス権のタイプと作業しているコンパートメントを管理者に確認してください。
管理者の場合: ロード・バランサとそのコンポーネントに対するアクセス権を付与する一般的なポリシーは、ネットワーク管理者によるロード・バランサの管理を参照してください。
また、inspect load-balancers
を含むポリシー・ステートメントでは、指定したグループに、ロード・バランサに関するすべての情報を表示する権限が付与されることに注意してください。詳細は、ロード・バランシングの詳細を参照してください。
ネットワーク・ロード・バランサ・ポリシー
ネットワーク・ロード・バランサを作成した後、バックエンド・サーバーに対するトラフィック分散を制御するポリシーを適用できます。ネットワーク・ロード・バランサの作成を参照してください。
ネットワーク・ロード・バランサ・サービスでは、3つの主要なネットワーク・ロード・バランサ・ポリシー・タイプがサポートされます:
-
5タプル・ハッシュ: 受信トラフィックが5タプル(ソースIPおよびポート、宛先IPおよびポート、プロトコル)のハッシュに基づいてルーティングされます。これは、デフォルトのネットワーク・ロード・バランサ・ポリシーです。
-
3タプル・ハッシュ: 受信トラフィックが3タプル(ソースIP、宛先IP、プロトコル)のハッシュに基づいてルーティングされます。
-
2タプル・ハッシュ: 受信トラフィックが2タプル(ソースIP、宛先IP)のハッシュに基づいてルーティングされます。
5タプル・ハッシュ・ポリシーは、特定のTCPまたはUDPセッション内でセッション・アフィニティを提供します。この場合、同じセッションのパケットは、フレキシブル・ネットワーク・ロード・バランサの背後にある同じバックエンド・サーバーに送信されます。特定のセッションの存続期間を超えるセッション・アフィニティを提供するには、3タプルまたは2タプルのネットワーク・ロード・バランシング・ポリシーを使用します。
処理の負荷または容量がバックエンド・サーバー間で異なる場合、これらの各ポリシー・タイプをバックエンド・サーバーの重み付けに従って調整できます。重み付けは、各サーバーに送信されるリクエストの割合に影響します。たとえば、3と重み付けされたサーバーが処理する接続数は、1と重み付けされたサーバーの3倍になります。各サーバーのトラフィック処理容量など、選択した基準に基づいて重みを割り当てます。重みの値は1から100である必要があります。
接続アイドル・タイムアウト
ネットワーク・ロード・バランサは、通過するすべてのTCPおよびUDPフローの状態をトラッキングします。IPプロトコルとソースおよび宛先IPアドレスとポートの組合せによってフローが定義されます。トラフィックがクライアントまたはサーバーからアイドル・タイムアウトより長い間受信されない場合、フローは削除できます。アイドル・タイムアウト後に受信されたTCPパケットは、すべてドロップされます。UDPフローの場合、後のパケットは、新しいフローとみなされ、新しいバックエンド・サーバーにルーティングされます。
アイドル・タイムアウト期間は、TCPフローの場合は6分で、UDPフローの場合は2分です。これらの時間は、ネットワーク・ロード・バランサのリスナーを作成するとき、および既存のリスナーを編集するときにも調整できます。詳細は、リスナーのアイドル・タイムアウトの変更を参照してください。
ロギング
ネットワーク・ロード・バランシング・アクティビティは、仮想クラウド・ネットワーク(VCN)フロー・ログを介してログに記録されます。詳細は、VCNフロー・ログを参照してください。
暗号化
ネットワーク・ロード・バランサ・サービスは、受信したトラフィックを直接変更しません。したがって、ネットワーク・ロード・バランサを介してバックエンドに送信されるトラフィックを保護する場合は、トラフィックを受信するバックエンドでアプリケーションを暗号化する必要があります。ロード・バランサでのSSLターミネーションを組み込む場合は、かわりにLoad Balancerサービスを使用します。