転送ルールとこれに対応する IP アドレスは、Google Cloud ロードバランサのフロントエンド構成を表します。転送ルールの概要については、転送ルールのコンセプトをご覧ください。
始める前に
転送ルールを追加する前に、転送ルールの IP アドレスを予約しておきます。これは要件ではありませんが、強くおすすめします。
内部ロードバランサの場合は、静的内部 IP アドレスを予約します。
外部ロードバランサの場合は、静的外部 IP アドレスを予約します。
権限
このガイドに従うには、必要な権限が付与されている必要があります。
詳細については、次のガイドをご覧ください。
転送ルールの追加
Console
ロードバランサの転送ルールを作成する
- Google Cloud Console の [負荷分散] ページに移動します。
[負荷分散] ページに移動 - [ロードバランサを作成] をクリックします。
- ロードバランサのタイプを選択します。トラフィック タイプや、ロードバランサがインターネットに接続しているのかそれとも内部専用かを選択します。
- [続行] をクリックします。
[フロントエンドの設定] をクリックします。[新しいフロントエンドの IP とポート] セクションで、次の変更を行います。
- 名前:
FORWARDING_RULE_NAME
- サブネットワーク:
SUBNET_OF_YOUR_RESERVED_IP_ADDRESS
[内部 IP] または [IP アドレス] から、事前予約した IP アドレスを選択します。
必要に応じて、IP アドレスをこの UI で予約することも、エフェメラル IP アドレスを使用することもできます。
プロトコル、ポート番号、IP バージョンを選択します。
一部のロードバランサ タイプでのみ、IPv6 がサポートされます。
続行する前に、[フロントエンドの設定] の隣に青いチェックマークがあることを確認します。ない場合は、この手順を確認します。
- 名前:
[確認と完了] をクリックします。設定を再度確認します。
[作成] をクリックします。
gcloud
バックエンド サービスの転送ルールを作成します。転送ルールを作成するときに、サブネットで予約した IP アドレスを指定します。
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --global | --region=REGION \ --load-balancing-scheme=SCHEME \ --network=NETWORK_NAME \ --subnet=SUBNET_NAME \ --address=RESERVED_IP_ADDRESS \ --ip-protocol=PROTOCOL_TYPE \ --ports=PORT_NUMBER \ --backend-service=NAME_OF_BACKEND_SERVICE \ --backend-service-region=REGION_OF_BACKEND_SERVICE
api
リージョンのロードバランサの場合、forwardingRules.insert
メソッドに対して POST
リクエストを作成して、リージョン転送ルールを作成します。
POST https://compute.googleapis.com/compute/v1/projects/[project ID]/regions/us-west1/forwardingRules
{
"name": "[forwarding rule name]",
"IPAddress": "[reserved IP address]",
"IPProtocol": "[protocol type]",
"ports": [
"[port number]"
],
"loadBalancingScheme": "[scheme]",
"subnetwork": "https://www.googleapis.com/compute/v1/projects/[project ID]/regions/[region]/subnetworks/[subnet name]",
"network": "https://www.googleapis.com/compute/v1/projects/[project ID]/global/networks/[network name]",
"backendService": "https://www.googleapis.com/compute/v1/projects/[project ID]/regions/[region]/backendServices/[backend service name]",
"networkTier": "PREMIUM | STANDARD"
}
</code></pre>
グローバル ロードバランサの場合、globalForwardingRules.insert
メソッドに対して POST
リクエストを作成してグローバル転送ルールを作成します。
POST https://compute.googleapis.com/compute/v1/projects/[project ID]/global/forwardingRules
{
"name": "[forwarding rule name]",
"IPAddress": "[reserved IP address]",
"IPProtocol": "[protocol type]",
"ports": [
"[port number]"
],
"loadBalancingScheme": "[scheme]",
"subnetwork": "https://www.googleapis.com/compute/v1/projects/[project ID]/regions/[region]/subnetworks/[subnet name]
"network": "https://www.googleapis.com/compute/v1/projects/[project ID]/global/networks/[network name]",
"backendService": "https://www.googleapis.com/compute/v1/projects/[project ID]/regions/[region]/backendServices/[backend service name]
"networkTier": "PREMIUM | STANDARD"
}
転送ルールの削除
次のような理由で転送ルールの削除が必要な場合があります。
- 新しい転送ルールに置き換える
- ロードバランサを完全に削除せずに、一定期間ロードバランサを停止する
ロードバランサを削除せずに停止する必要がある理由は 2 つあります。
- ロードバランサの料金を一時停止する
- バックエンドへ送られてくるリクエストを一時的に一時停止する
転送ルールが予約 IP アドレスを指している場合(推奨)は、転送ルールを削除してロードバランサを停止できます。これにより、転送ルール宛先へのトラフィックが停止します。
グローバル転送ルールを削除するには:
gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \ --global
リージョン転送ルールを削除するには:
gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \ --region=REGION
ロードバランサを再開するには、転送ルールの追加の説明に従って、転送ルールを再作成し、同じ IP アドレスを維持します。
Service Directory による転送ルールの構成
Service Directory による内部ロードバランサの転送ルールを登録できます。
内部 TCP/UDP ロードバランサまたは内部 HTTP(S) ロードバランサを構成する際には、既存の Service Directory の名前空間と選択のサービスにエンドポイントとして登録できます。その後、クライアント アプリケーションは、HTTP、gRPC、DNS(Service Directory DNS ゾーンを作成した場合)を使用し Service Directory を使用して、内部ロードバランサ サービスのアドレスを解決し、それに直接接続できます。
内部 TCP/UDP ロードバランサの登録
内部 TCP/UDP ロードバランサを登録するには、次のとおりにします。
gcloud
gcloud compute forwarding-rules
create
コマンドを実行して、service-directory-registrations
フラグを設定します。
gcloud beta compute forwarding-rules create FORWARDING_RULE_NAME \ --region=REGION \ --load-balancing-scheme=INTERNAL \ --network=NETWORK_NAME \ --subnet=SUBNET_NAME \ --address=RESERVED_IP_ADDRESS \ --ip-protocol=PROTOCOL_TYPE \ --ports=PORT_NUMBER \ --backend-service=BACKEND_SERVICE_NAME \ --backend-service-region=REGION --service-directory-registrations namespace=SD_NAMESPACE_NAME, \ service=SD_SERVICE_NAME
以下を置き換えます。
FORWARDING_RULE_NAME
: 作成する転送ルールの名前REGION
: 転送ルールを作成するリージョンNETWORK_NAME
: この転送ルールが適用されるネットワークSUBNET_NAME
: この転送ルールが適用されるサブネットワークRESERVED_IP_ADDRESS
: 転送ルールが提供する IP アドレスPROTOCOL_TYPE
: ルールが提供する IP プロトコルPORT_NUMBER
: カンマ区切りのポートのリストBACKEND_SERVICE_NAME
: トラフィックを受信する対象のバックエンド サービスSD_NAMESPACE_NAME
: 内部 TCP/UDP ロードバランサを登録する Service Directory 名前空間の名前この名前空間の Google Cloud プロジェクトとリージョンは、この転送ルールから pull されます。SD_SERVICE_NAME
: エンドポイントを登録する Service Directory サービスの名前Service Directory の名前空間の名前の中に存在する必要があります。
内部 HTTP(S) ロードバランサの登録
内部 HTTP(S) ロードバランサを登録するには、次のとおりにします。
gcloud
gcloud compute forwarding-rules
create
コマンドを実行して、service-directory-registrations
フラグを設定します。
gcloud beta compute forwarding-rules create FORWARDING_RULE_NAME \ --region=REGION \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=NETWORK_NAME \ --address=RESERVED_IP_ADDRESS \ --target-https-proxy=PROXY_NAME \ --target-https-proxy-region=PROXY_REGION \ --ports=PORT_NUMBER \ --service-directory-registrations namespace=SD_NAMESPACE_NAME, \ service=SD_SERVICE_NAME
以下を置き換えます。
FORWARDING_RULE_NAME
: 作成する転送ルールの名前REGION
: 転送ルールを作成するリージョンNETWORK_NAME
: この転送ルールが適用されるネットワークRESERVED_IP_ADDRESS
: 転送ルールが提供する IP アドレスPROXY_NAME
: トラフィックを受信する対象のプロキシPROXY_REGION
: プロキシが動作するリージョンPORT_NUMBER
: カンマ区切りのポートのリストSD_NAMESPACE_NAME
: 内部 HTTP(S) ロードバランサを登録する Service Directory 名前空間の名前この名前空間の Google Cloud プロジェクトとリージョンは、この転送ルールから pull されます。SD_SERVICE_NAME
: エンドポイントを登録する Service Directory サービスの名前Service Directory の名前空間の名前の中に存在する必要があります。
Service Directory によって内部ロードバランサを構成する方法の詳細については、Service Directory での内部ロードバランサの構成をご覧ください。
次のステップ
- バックエンド サービスについては、バックエンド サービスの使用をご覧ください。
- ターゲット プロキシについては、ターゲット プロキシの使用をご覧ください。
- ターゲット プールについては、ターゲット プールの使用をご覧ください。
- Network Service Tiers の詳細を、Network Service Tiers のドキュメントで確認する。