リージョン外部プロキシ ネットワーク ロードバランサは、プロキシベースのリージョン レイヤ 4 ロードバランサであり、外部リージョン IP アドレスの背後にある単一のリージョンで TCP サービス トラフィックを実行し、スケーリングできます。これらのロードバランサは、インターネットから同じリージョンのバックエンドに外部 TCP トラフィックを分散します。
このページでは、ハイブリッド接続で接続されているオンプレミス環境または他のクラウド環境でバックエンドにトラフィックをロードバランスするように、リージョン外部プロキシ ネットワーク ロードバランサを構成する方法について説明します。ネットワークを Google Cloud に接続するためのハイブリッド接続の構成は、このページの対象外です。
開始する前に、外部プロキシ ネットワーク ロードバランサの概要をご覧ください。
この例では、ロードバランサを使用して、オンプレミスまたは他のクラウド環境にあるバックエンド VM に TCP トラフィックを分散します。
この例では、次の図に示すデプロイメントを構成します。
これはリージョン ロードバランサです。すべてのロードバランサ コンポーネント(バックエンド インスタンス グループ、バックエンド サービス、ターゲット プロキシ、転送ルール)は、同じリージョンに配置されている必要があります。
権限
ハイブリッド ロード バランシングを設定するには、次の権限が必要です。
Google Cloud上で必要な権限
- Google Cloud とオンプレミス環境または他のクラウド環境との間のハイブリッド接続を確立する権限。必要な権限の一覧については、関連する Network Connectivity プロダクトのドキュメントをご覧ください。
- ハイブリッド接続 NEG とロードバランサを作成する権限。このガイドで説明するタスクの実行に必要な権限は、Compute ロードバランサ管理者のロール(
roles/compute.loadBalancerAdmin
)に含まれています。
オンプレミス環境またはGoogle Cloud 以外のクラウド環境で必要な権限
IP:Port
の組み合わせでGoogle Cloud からオンプレミス環境または他のクラウド環境のサービスに到達できるように、ネットワーク エンドポイントを構成する権限。詳細については、お使いの環境のネットワーク管理者にお問い合わせください。- Google のヘルスチェック プローブがエンドポイントに到達することを許可するように、ファイアウォール ルールをオンプレミス環境または他のクラウド環境に作成する権限。
さらに、このページの手順を完了するには、ハイブリッド接続 NEG、ロードバランサ、ゾーン NEG(およびそれらのエンドポイント)を作成して、ロードバランサの Google Cloudベースのバックエンドとして機能させる必要があります。
そのためには、プロジェクトのオーナーまたは編集者であるか、次の Compute Engine IAM のロールが必要です。
タスク | 必要なロール |
---|---|
ネットワーク、サブネット、ロードバランサ コンポーネントの作成 | Compute ネットワーク管理者(roles/compute.networkAdmin ) |
ファイアウォール ルールの追加と削除 | Compute セキュリティ管理者(roles/compute.securityAdmin ) |
インスタンスの作成 | Compute インスタンス管理者(roles/compute.instanceAdmin ) |
ハイブリッド接続を確立する
オンプレミス環境または他のクラウド環境と Google Cloud を接続するには、Cloud Router またはルーター アプライアンス VM とともに Cloud Interconnect VLAN アタッチメントまたは Cloud VPN トンネルを使用して、ハイブリッド接続を確立する必要があります。高可用性接続の使用をおすすめします。
グローバル動的ルーティングが有効になっている Cloud Router は、Border Gateway Protocol(BGP)を介して特定のエンドポイントを学習し、 Google Cloud VPC ネットワークにそのエンドポイントをプログラムします。リージョン動的ルーティングはサポートされていません。静的ルートもサポートされていません。
ハイブリッド ネットワーキング(Cloud Interconnect、Cloud VPN、またはルーター アプライアンス VM)とロードバランサの両方を構成するには、同じプロジェクト内の同じネットワークまたは別の VPC ネットワークを使用できます。次の点にご注意ください。
別の VPC ネットワークを使用する場合は、2 つのネットワークを VPC ネットワーク ピアリングを使用して接続するか、同じ Network Connectivity Center ハブの VPC スポークにする必要があります。
同じ VPC ネットワークを使用する場合は、VPC ネットワークのサブネットの CIDR 範囲がリモートの CIDR 範囲と競合しないようにしてください。IP アドレスが重複する場合、リモート接続よりもサブネット ルートが優先されます。
手順については、次のドキュメントをご覧ください。
Google Cloud外部にある環境を設定する
次の手順で、ハイブリッド ロード バランシング用のオンプレミス環境またはその他のクラウド環境を設定します。
- オンプレミス サービスをGoogle Cloud (
IP:Port
)に公開するようにネットワーク エンドポイントを構成します。 - オンプレミス環境または他のクラウド環境でファイアウォール ルールを構成します。
- プライベート環境への特定の必要なルートをアドバタイズするように Cloud Router を構成します。
ネットワーク エンドポイントを設定する
ハイブリッド接続を設定したら、オンプレミス環境または他のクラウド環境内に、IP:port
の組み合わせを使用して Cloud Interconnect、Cloud VPN、またはルーター アプライアンス経由で到達可能なネットワーク エンドポイントを構成します。この IP:port
の組み合わせは、このプロセスの後半に Google Cloud で作成されるハイブリッド接続 NEG の 1 つ以上のエンドポイントとして構成されます。
IP エンドポイントへのパスが複数ある場合、ルーティングは Cloud Router の概要で説明されているように動作します。
ファイアウォール ルールを設定する
オンプレミス環境またはその他のクラウド環境に、次のファイアウォール ルールを作成する必要があります。
- オンプレミス環境またはその他のクラウド環境で上り(内向き)許可ファイアウォール ルールを作成して、リージョンのプロキシ専用サブネットからのトラフィックがエンドポイントに到達できるようにします。
ハイブリッド NEG では、Google のヘルスチェック プローブ範囲からのトラフィックを許可する必要はありません。ただし、1 つのバックエンド サービスでハイブリッド NEG とゾーン NEG の組み合わせを使用している場合は、ゾーン NEG の Google ヘルスチェック プローブ範囲からのトラフィックを許可する必要があります。
ルートをアドバタイズする
オンプレミス環境またはその他のクラウド環境に次のカスタム IP 範囲をアドバタイズするように、Cloud Router を構成します。
- リージョンのプロキシ専用サブネットの範囲。
Google Cloud 環境をセットアップする
以降のステップでは、環境間のハイブリッド接続の構成に使用した VPC ネットワーク(この手順では NETWORK
)を使用します。このネットワークから任意のサブネットを選択して、ロードバランサの IP アドレスを予約し、ロードバランサを作成できます。この手順では、このサブネットを LB_SUBNET
とします。
また、使用するリージョン(この手順では REGION_A
)が Cloud VPN トンネルまたは Cloud Interconnect VLAN アタッチメントの作成に使用したものと同じであることを確認します。
プロキシ専用サブネットを構成する
プロキシ専用サブネットには、Google がユーザーに代わって Envoy プロキシを実行する際に使用する一連の IP アドレスが用意されています。このプロキシは、クライアントからの接続を終端し、バックエンドへの新しい接続を作成します。
このプロキシ専用サブネットは、VPC ネットワーク(NETWORK
)のリージョン(REGION_A
)内のすべての Envoy ベースのリージョン ロードバランサで使用されます。
リージョンごと、VPC ネットワークごとにアクティブなプロキシ専用サブネットは 1 つだけです。このリージョンにプロキシ専用サブネットがすでに存在する場合は、この手順をスキップできます。
コンソール
Google Cloud コンソールを使用している場合は、後ほど [ロード バランシング] ページでプロキシ専用サブネットを作成することもできます。
プロキシ専用サブネットを今すぐ作成する場合は、次の操作を行います。
Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。
環境間のハイブリッド接続の構成に使用されたネットワークに移動します。
[サブネットを追加] をクリックします。
[名前] に「
proxy-only-subnet
」と入力します。[リージョン] で
REGION_A
を選択します。[目的] を [リージョン マネージド プロキシ] に設定します。
[IP アドレス範囲] に「
10.129.0.0/23
」と入力します。[追加] をクリックします。
gcloud
プロキシ専用サブネットを作成するには、gcloud compute networks subnets
create
コマンドを使用します。
gcloud compute networks subnets create proxy-only-subnet \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=REGION_A \ --network=NETWORK \ --range=10.129.0.0/23
ロードバランサの IP アドレスを予約する
ロードバランサに静的 IP アドレスを予約します。
コンソール
Google Cloud コンソールで、[静的アドレスの予約] ページに移動します。
新しいアドレスの名前を指定します。
[ネットワーク サービス ティア] で [スタンダード] を選択します。
[IP バージョン] で [IPv4] を選択します。IPv6 アドレスはサポートされません。
[タイプ] で [リージョン] を選択します。
[リージョン] で
REGION_A
を選択します。[接続先] オプションは [なし] のままにします。ロードバランサを作成すると、この IP アドレスがロードバランサの転送ルールに関連付けられます。
[予約] をクリックして IP アドレスを予約します。
gcloud
静的外部 IP アドレスを予約するには、
gcloud compute addresses create
コマンドを使用します。gcloud compute addresses create ADDRESS_NAME \ --region=REGION_A \ --network-tier=STANDARD
ADDRESS_NAME
は、このアドレスに付ける名前に置き換えます。結果を表示するには、
gcloud compute addresses describe
コマンドを使用します。gcloud compute addresses describe ADDRESS_NAME
ハイブリッド接続 NEG を設定する
NEG を作成するときは、 Google Cloud とオンプレミスまたは他のクラウド環境との間の地理的距離を最小限に抑える ZONE
を使用します。たとえば、ドイツのフランクフルトのオンプレミス環境にサービスをホストする場合、NEG を作成するときに europe-west3-a
Google Cloud ゾーンを指定できます。
さらに、NEG の作成に使用するゾーンは、Cloud VPN トンネルまたは Cloud Interconnect VLAN アタッチメントがハイブリッド接続用に構成されているリージョンと同じリージョンにする必要があります。
使用可能なリージョンとゾーンについては、Compute Engine ドキュメントの使用可能なリージョンとゾーンをご覧ください。
コンソール
ハイブリッド接続 NEG を作成する
Google Cloud コンソールで、[ネットワーク エンドポイント グループ] ページに移動します。
[ネットワーク エンドポイント グループを作成] をクリックします。
[名前] に「
HYBRID_NEG_NAME
」と入力します。[ネットワーク エンドポイント グループの種類] で、[ハイブリッド接続ネットワーク エンドポイント グループ(ゾーン)] を選択します。
[ネットワーク] で
NETWORK
を選択します。[サブネット] で
LB_SUBNET
を選択します。[ゾーン] で [
HYBRID_NEG_ZONE
] を選択します。[デフォルト ポート] で、デフォルトを選択します。
[最大接続数] に「
2
」と入力します。[作成] をクリックします。
ハイブリッド接続 NEG にエンドポイントを追加する
Google Cloud コンソールで、[ネットワーク エンドポイント グループ] ページに移動します。
前の手順で作成したネットワーク エンドポイント グループ(
HYBRID_NEG_NAME
)の名前をクリックします。[ネットワーク エンドポイント グループの詳細] ページの [このグループのネットワーク エンドポイント] セクションで、[ネットワーク エンドポイントを追加] をクリックします。
[ネットワーク エンドポイントを追加] ページで、新しいネットワーク エンドポイントの IP アドレスを入力します。
ポートタイプを選択します。
- [デフォルト] を選択すると、エンドポイントはネットワーク エンドポイント グループのすべてのエンドポイントにデフォルト ポートを使用します。
- [カスタム] を選択すると、使用するエンドポイントに異なるポート番号を入力できます。
他のエンドポイントを追加するには、[ネットワーク エンドポイントを追加] をクリックし、前の手順を繰り返します。
すべてのGoogle Cloud 以外のエンドポイントを追加したら、[作成] をクリックします。
gcloud
ハイブリッド接続 NEG を作成するには、
gcloud compute network-endpoint-groups create
コマンドを使用します。gcloud compute network-endpoint-groups create HYBRID_NEG_NAME \ --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \ --zone=HYBRID_NEG_ZONE \ --network=NETWORK
オンプレミス IP:Port エンドポイントをハイブリッド NEG に追加します。
gcloud compute network-endpoint-groups update HYBRID_NEG_NAME \ --zone=HYBRID_NEG_ZONE \ --add-endpoint="ip=ENDPOINT_IP_ADDRESS,port=ENDPOINT_PORT"
このコマンドを使用すると、オンプレミスまたはクラウド環境で構成したネットワーク エンドポイントを追加できます。--add-endpoint
を必要な回数だけ繰り返します。
必要に応じて、これらの手順を繰り返して複数のハイブリッド NEG を作成できます。
ロードバランサを構成する
コンソール
構成を開始する
Google Cloud コンソールで、[ロード バランシング] ページに移動します。
- [ロードバランサを作成] をクリックします。
- [ロードバランサの種類] で [ネットワーク ロードバランサ(TCP / UDP / SSL)] を選択し、[次へ] をクリックします。
- [プロキシまたはパススルー] で [プロキシ ロードバランサ] を選択し、[次へ] をクリックします。
- [インターネット接続または内部] で [インターネット接続(外部)] を選択し、[次へ] をクリックします。
- [グローバルまたはシングル リージョンのデプロイ] で [リージョン ワークロードに最適] を選択し、[次へ] をクリックします。
- [構成] をクリックします。
基本構成
- [名前] に、ロードバランサの名前を入力します。
- [リージョン] で
REGION_A
を選択します。 - [ネットワーク] で
NETWORK
を選択します。
プロキシ専用サブネットを予約する
- [サブネットを予約] をクリックします。
- [名前] に「
proxy-only-subnet
」と入力します。 - [IP アドレス範囲] に「
10.129.0.0/23
」と入力します。 - [追加] をクリックします。
バックエンドを構成する
- [バックエンドの構成] をクリックします。
- [バックエンド タイプ] で、[ハイブリッド接続ネットワーク エンドポイント グループ(ゾーン)] を選択します。
- [プロトコル] で、[TCP] を選択します。
- [新しいバックエンド] で、以前に作成したハイブリッド NEG(
HYBRID_NEG_NAME
)を選択します。[ネットワーク エンドポイント グループを作成] をクリックして、ハイブリッド NEG を今すぐ作成することもできます。NEG の構成方法については、ハイブリッド NEG の設定をご覧ください。 - 残りのデフォルト値は変更せずに、[完了] をクリックします。
- ヘルスチェックを構成します。
- [ヘルスチェック] で [ヘルスチェックを作成] を選択します。
- [名前] に、ヘルスチェックの名前を入力します。
- [プロトコル] で、[TCP] を選択します。
- [ポート] に「
80
」と入力します。
- 残りのデフォルト値は変更せずに、[保存] をクリックします。
- Google Cloud コンソールで、[バックエンドの構成] の横にチェックマークが表示されていることを確認します。チェックマークがない場合は、すべての手順を完了したことを再度確認します。
フロントエンドを構成する
- [フロントエンドの構成] をクリックします。
- [名前] に、転送ルールの名前を入力します。
- [ネットワーク サービス ティア] で [スタンダード] を選択します。
- [IP アドレス] で [
LB_IP_ADDRESS
] を選択します。 - [ポート番号] に、1~65535 のポート番号を入力します。転送ルールは、宛先ポートが一致するパケットのみを転送します。
- [プロキシのプロトコル] は、オンプレミスまたは他のクラウド エンドポイントで実行されているサービスで動作する場合にのみ有効にします。たとえば、PROXY プロトコルは Apache HTTP Server ソフトウェアでは動作しません。詳細については、PROXY プロトコルをご覧ください。
- [完了] をクリックします。
- Google Cloud コンソールで、[フロントエンドの構成] の横にチェックマークが表示されていることを確認します。チェックマークがない場合には、前のすべての手順を完了したことを再度確認します。
確認と完了
- [確認と完了] をクリックします。
- 設定を再度確認します。
- [作成] をクリックします。
gcloud
バックエンドのリージョン ヘルスチェックを作成します。
gcloud compute health-checks create tcp TCP_HEALTH_CHECK_NAME \ --region=REGION_A \ --use-serving-port
バックエンド サービスを作成します。
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=TCP \ --region=REGION_A \ --health-checks=TCP_HEALTH_CHECK_NAME \ --health-checks-region=REGION_A
ハイブリッド NEG バックエンドをバックエンド サービスに追加します。
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=HYBRID_NEG_NAME \ --network-endpoint-group-zone=HYBRID_NEG_ZONE \ --region=REGION_A \ --balancing-mode=CONNECTION \ --max-connections=MAX_CONNECTIONS
MAX_CONNECTIONS
には、バックエンドで処理する最大同時接続数を入力します。ターゲット TCP プロキシを作成します。
gcloud compute target-tcp-proxies create TARGET_TCP_PROXY_NAME \ --backend-service=BACKEND_SERVICE_NAME \ --region=REGION_A
転送ルールを作成します。
gcloud compute forwarding-rules create
コマンドを使用します。FWD_RULE_PORT
は、1~65535 の単一のポート番号に置き換えます。転送ルールは、宛先ポートが一致するパケットのみを転送します。gcloud compute forwarding-rules create FORWARDING_RULE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=NETWORK \ --network-tier=STANDARD \ --address=LB_IP_ADDRESS \ --ports=FWD_RULE_PORT \ --region=REGION_A \ --target-tcp-proxy=TARGET_TCP_PROXY_NAME \ --target-tcp-proxy-region=REGION_A
ロードバランサのテスト
ロードバランサを構成したので、ロードバランサの IP アドレスにトラフィックを送信してテストできるようになりました。
ロードバランサの IP アドレスを取得します。
IPv4 アドレスを取得するには、次のコマンドを実行します。
gcloud compute addresses describe ADDRESS_NAME
次のコマンドを実行して、トラフィックをロードバランサに送信します。
LB_IP_ADDRESS
は、ロードバランサの IPv4 アドレスに置き換えます。curl -m1 LB_IP_ADDRESS:FWD_RULE_PORT
次のステップ
- 外部プロキシ ネットワーク ロードバランサの仕組みを確認する。外部プロキシ ネットワーク ロードバランサの概要をご覧ください。
- ロードバランサのロギングとモニタリングを設定する。プロキシ ネットワーク ロードバランサのロギングとモニタリングをご覧ください。
- 作成したリソースを削除して、今後、それらのリソースに対して課金されないようにする。ロードバランサの設定を削除するをご覧ください。