このガイドに進む前に、インターネット NEG の概要(制限事項を含む)を理解しておいてください。
次のアーキテクチャ図は、外部バックエンドを使用するリージョン内部アプリケーション ロードバランサのフロントエンドを示しています。権限
このガイドに記載された操作を行う前に、インターネット NEG を作成し、プロジェクト内のアプリケーション ロードバランサを作成するか、変更しておく必要があります。そのためには、プロジェクトのオーナーまたは編集者(roles/owner
または roles/editor
)であるか、次の Compute Engine IAM のロールがすべて必要です。
タスク | 必要なロール |
---|---|
ロードバランサ コンポーネントの作成と変更 | Compute ネットワーク管理者 ( roles/compute.networkAdmin ) |
NEG の作成と変更 | Compute インスタンス管理者 ( roles/compute.instanceAdmin ) |
Google Cloud の外部で外部バックエンド環境を設定する
外部バックエンド環境を設定するには、次のセクションをご覧ください。
ネットワーク エンドポイントを構成する
外部バックエンドを Google Cloud に公開するようにネットワーク エンドポイントを構成します。IP:Port の組み合わせ、または完全修飾ドメイン名(FQDN)とポートのいずれかが、インターネット経由で到達可能であることを確認します。このエンドポイントは、後でインターネット NEG から参照されます。
インターネット NEG エンドポイントの構成要件の詳細については、インターネット NEG の概要をご覧ください。
外部バックエンドに Google Cloud からのトラフィックの受信を許可する
この手順は、プロキシ専用サブネットを作成し、Cloud NAT ゲートウェイを設定してから完了できます。
Google Cloud からのリクエストが外部バックエンドに到達できるようにするには、次の操作を行う必要があります。
- Google Cloud からの下り(外向き)トラフィックに使用される IP アドレスを使用して Cloud NAT ゲートウェイを構成します。ゲートウェイは、プロキシ専用サブネットの範囲を外部 IP アドレスにマッピングします。手順については、Cloud NAT ゲートウェイを設定するをご覧ください。
- Google Cloud からのトラフィックが外部バックエンドに到達できるように、外部バックエンド環境が構成されていることを確認します。たとえば、NAT ゲートウェイに事前予約した IP アドレスを使用した場合は、外部環境でこれらの IP アドレスを許可リストに登録します。この設定を行うには、外部環境のネットワーク管理者またはセキュリティ管理者との連携が必要になる場合があります。
Google Cloud 環境を設定する
2 つのサブネット(ロードバランサ コンポーネント用のサブネットと、リージョンのプロキシ専用サブネット)を持つ VPC ネットワークが必要です。次に、インターネット NEG バックエンドを使用するロードバランサを作成します。
VPC ネットワークとサブネットを作成する
このサブネットは、ロードバランサのコンポーネントの作成に使用されます。
Cloud コンソール
- Google Cloud コンソールの [VPC ネットワーク] ページに移動します。
[VPC ネットワーク] に移動 - [VPC ネットワークを作成] をクリックします。
- 名前(LB_NETWORK)を入力します。
- [サブネット] セクションで次の設定を行います。
- [サブネット作成モード] を [カスタム] に設定します。
- [新しいサブネット] セクションに、次の情報を入力します。
- 名前: LB_SUBNET_NAME
- リージョン: REGION
- IP アドレス範囲: LB_SUBNET_RANGE
- [完了] をクリックします。
- [作成] をクリックします。
gcloud
gcloud compute networks create
コマンドを使用して、カスタム VPC ネットワークを作成します。gcloud compute networks create LB_NETWORK \ --subnet-mode=custom
LB_NETWORK ネットワークにサブネットを作成します。
gcloud compute networks subnets create LB_SUBNET_NAME \ --network=LB_NETWORK \ --range=LB_SUBNET_RANGE \ --region=REGION
プロキシ専用サブネットを構成する
このプロキシ専用サブネットは、REGION リージョン内のすべてのリージョン Envoy ベースのロードバランサに使用されます。
コンソール
- Google Cloud コンソールの [VPC ネットワーク] ページに移動します。
[VPC ネットワーク] に移動 - リストからネットワークを選択します。
- [サブネットを追加] をクリックします。
- 名前(PROXY_ONLY_SUBNET_NAME)を入力します。
- リージョン(REGION)を選択します。
- [目的] を [リージョン マネージド プロキシ] に設定します。
- IP アドレス範囲(PROXY_ONLY_SUBNET_RANGE)を入力します。
- [追加] をクリックします。
gcloud
gcloud compute networks subnets
create
コマンドを使用して、プロキシ専用サブネットを作成します。
gcloud compute networks subnets create PROXY_ONLY_SUBNET_NAME \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=REGION \ --network=LB_NETWORK \ --range=PROXY_ONLY_SUBNET_RANGE
Cloud NAT ゲートウェイを設定する
Cloud NAT ゲートウェイを構成する前に、関連する制限事項と料金に関する考慮事項を確認してください。詳細については、リージョン NEG: Cloud NAT ゲートウェイを使用するをご覧ください。次のコマンドは、Cloud NAT ゲートウェイを設定する方法を示しています。Cloud NAT ゲートウェイは、自動 NAT の外部 IP アドレス(オンデマンドで割り当て)を使用するか、手動で事前予約された一連の外部 IP アドレスを使用するように構成できます。ゲートウェイは、プロキシ専用サブネットの範囲を外部 IP アドレスにマッピングします。
自動 NAT 割り振り IP アドレスを設定する
NAT IP アドレスの自動割り振りを使用して Cloud NAT ゲートウェイを作成する場合、Cloud NAT ゲートウェイが IP アドレスを割り振る Network Service Tiers(プレミアム ティアまたはスタンダード ティア)を指定できます。
コンソール
Google Cloud コンソールで、[Cloud NAT] ページに移動します。
[開始] または [Cloud NAT ゲートウェイを作成] をクリックします。
ゲートウェイ名 LB_NAT_CONFIG を入力します。
[NAT タイプ] で [公開] を選択します。
[ネットワーク] リストで、[LB_NETWORK] を選択します。
[リージョン] リストで [REGION] を選択します。
リージョンに Cloud Router を作成します。
[送信元エンドポイントのタイプ] で、[マネージド プロキシ ロードバランサ] を選択します。
[ソース] リストで [カスタム] を選択します。
- [サブネット] で [PROXY_ONLY_SUBNET_NAME] を選択します。
[Cloud NAT IP アドレス] リストで、[自動(推奨)] を選択します。
[ネットワーク サービス ティア] で、[プレミアム] と [スタンダード] のどちらかを選択します。
[作成] をクリックします。
gcloud
外部バックエンド環境でトラフィックを外部バックエンドに送信できる特定の Google Cloud IP アドレスを許可リストに登録する必要がない場合は、動的に割り振られる IP アドレスを使用します。
Cloud Router を作成します。
gcloud beta compute routers create ROUTER_NAME \ --network=LB_NETWORK \ --region=REGION
Cloud NAT ゲートウェイを設定します。
gcloud beta compute routers nats create LB_NAT_CONFIG \ --router=ROUTER_NAME \ --endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \ --nat-custom-subnet-ip-ranges=PROXY_ONLY_SUBNET_NAME \ --auto-allocate-nat-external-ips \ --region=REGION
次のように置き換えます。
LB_NAT_CONFIG
: NAT 構成の名前。ROUTER_NAME
: Cloud Router の名前。REGION
: 作成する NAT のリージョン。指定しない場合、リージョンの選択を求められる場合があります(インタラクティブ モードのみ)。PROXY_ONLY_SUBNET_NAME
: プロキシ専用サブネットの名前。
手動で割り振られた IP アドレスを設定する
手動で割り振られた IP アドレスは、外部バックエンド環境で特定の Google Cloud IP アドレスの許可リストを使用する必要がある場合にのみ使用します。外部バックエンド環境で許可リストが必要ない場合は、前述のように動的割り振りを使用します。
Cloud NAT ゲートウェイを作成するときに、特定の条件に応じて、プレミアム ティア、スタンダード ティア、またはその両方から NAT IP アドレスの手動割り当てを選択できます。
コンソール
Google Cloud コンソールで、[Cloud NAT] ページに移動します。
[開始] または [Cloud NAT ゲートウェイを作成] をクリックします。
ゲートウェイ名 LB_NAT_CONFIG を入力します。
[ネットワーク] リストで、[LB_NETWORK] を選択します。
[リージョン] リストで [REGION] を選択します。
リージョンの Cloud Router を選択または作成します。
[送信元エンドポイントのタイプ] で、[マネージド プロキシ ロードバランサ] を選択します。
[ソース] リストで [カスタム] を選択します。
- [サブネット] で [PROXY_ONLY_SUBNET_NAME] を選択します。
[Cloud NAT IP アドレス] リストで、[手動] を選択します。
[ネットワーク サービス ティア] で、[プレミアム] と [スタンダード] のどちらかを選択します。
NAT に使用する予約された静的外部 IP アドレスを選択または作成します。
追加の IP アドレスを指定する場合は、[IP アドレスを追加] をクリックし、予約した静的外部 IP アドレスを選択または作成します。
[作成] をクリックします。
gcloud
IP アドレスを作成します。ゲートウェイは 1 対 1 の NAT 変換を行うため、予約された IP アドレスのプールが予想されるトラフィック量の処理に十分な大きさであることを確認する必要があります。NAT IP アドレスの割り振りが不十分な場合、トラフィックが失われる可能性があります。
gcloud compute addresses create IP_ADDRESS_NAME_1 IP_ADDRESS_NAME_2 [IP_ADDRESS_NAME_3 ...] \ --region=REGION
Cloud Router を作成します。
gcloud compute routers create ROUTER_NAME \ --network=LB_NETWORK \ --region=REGION
Cloud NAT ゲートウェイを設定します。
gcloud beta compute routers nats create LB_NAT_CONFIG \ --router=ROUTER_NAME \ --endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \ --nat-custom-subnet-ip-ranges=PROXY_ONLY_SUBNET_NAME \ --nat-external-ip-pool=IP_ADDRESS_NAME_1,IP_ADDRESS_NAME_2,[IP_ADDRESS_NAME_3 ...] \ --region=REGION
次のように置き換えます。
LB_NAT_CONFIG
: NAT 構成の名前。ROUTER_NAME
: Cloud Router の名前。PROXY_ONLY_SUBNET_NAME
: プロキシ専用サブネットの名前。REGION
: 作成する NAT のリージョン。指定しない場合、リージョンの選択を求められる場合があります(インタラクティブ モードのみ)。
詳細については、Cloud NAT のドキュメントの NAT のサブネット範囲を指定するをご覧ください。
外部バックエンドが Google Cloud からのトラフィックを受信できるように、外部バックエンド環境で NAT IP アドレス範囲の許可リストを使用してください。
ロードバランサの IP アドレスを予約する
ロードバランサの内部 IP アドレスを予約します。
コンソール
Google Cloud コンソールを使用してスタンドアロンの内部 IP アドレスを予約できます。
- [VPC ネットワーク] ページに移動します。
- 環境間のハイブリッド接続の構成に使用したネットワークをクリックします。
- [静的内部 IP アドレス] をクリックして、[静的アドレスを予約] をクリックします。
- 名前(LB_IP_ADDRESS)を入力します。
- [サブネット] で [LB_SUBNET_NAME] を選択します。
- 予約する IP アドレスを指定する場合は、[静的 IP アドレス] の下で、[自分で選択] を選択し、[カスタム IP アドレス] に入力します。それ以外の場合、サブネットの IP アドレスは自動的に割り当てられます。
- この IP アドレスを複数の転送ルールで使用する場合は、[目的] で [共有] を選択します。
- [予約] をクリックして、プロセスを終了します。
gcloud
gcloud CLI を使用して
compute addresses create
コマンドを実行します。gcloud compute addresses create LB_IP_ADDRESS \ --region=REGION \ --subnet=LB_SUBNET_NAME
割り振られた IP アドレスを表示するには、
compute addresses describe
コマンドを使用します。gcloud compute addresses describe LB_IP_ADDRESS \ --region=REGION
インターネット NEG を設定する
インターネット NEG は、INTERNET_FQDN_PORT
エンドポイントまたは INTERNET_IP_PORT
エンドポイントを使用して作成できます。
コンソール
INTERNET_FQDN_PORT
エンドポイントを含む NEG を作成する
Google Cloud コンソールで、[ネットワーク エンドポイント グループ] ページに移動します。
[ネットワーク エンドポイント グループを作成] をクリックします。
インターネット NEG の INTERNET_NEG_NAME を指定します。詳しくは、リソースの命名規則をご覧ください。
[ネットワーク エンドポイント グループの種類] リストで、[ネットワーク エンドポイント グループ(インターネット)] を選択して、次の操作を行います。
- [範囲] リストで、[リージョン] を選択します。
- 省略可: [リージョン] リストで、この NEG の REGION を変更します。
- [ネットワーク] リストで、[LB_NETWORK] を選択します。
- [デフォルト ポート] ボックスに「DEFAULT_PORT_NUMBER」と入力します。
- [エンドポイントの追加] リストで、[完全修飾ドメイン名とポート] を選択します。
- [作成] を選択します。
INTERNET_FQDN_PORT
エンドポイントを NEG に追加します。
Google Cloud コンソールで、[ネットワーク エンドポイント グループ] ページに移動します。
- [INTERNET_NEG_NAME] をクリックします。
完全修飾ドメイン名を入力します(
myorg.example.com
など)。FQDN オブジェクトは、標準の FQDN 構文で指定する必要があります。省略可: [ポートタイプ] で [カスタム] を選択します。[ポートタイプ] が
Default
の場合、NEG のデフォルト ポートが使用されます。- [ポート番号] ボックスに「PORT_NUMBER_1」と入力します。
- [作成] を選択します。
INTERNET_IP_PORT
エンドポイントを含む NEG を作成する
Google Cloud コンソールで、[ネットワーク エンドポイント グループ] ページに移動します。
[ネットワーク エンドポイント グループを作成] をクリックします。
インターネット NEG の名前 INTERNET_NEG_NAME を指定します。詳しくは、リソースの命名規則をご覧ください。
[ネットワーク エンドポイント グループの種類] リストで、[ネットワーク エンドポイント グループ(インターネット)] を選択して、次の操作を行います。
- [範囲] リストで、[リージョン] を選択します。
- 省略可: [リージョン] リストで、この NEG の REGION を変更します。
- [ネットワーク] リストで、[LB_NETWORK] を選択します。
- [デフォルト ポート] ボックスに「DEFAULT_PORT_NUMBER」と入力します。
- [エンドポイントの追加] リストで、[IP とポート] を選択します。
- [作成] を選択します。
INTERNET_IP_PORT
エンドポイントを NEG に追加します。
Google Cloud コンソールで、[ネットワーク エンドポイント グループ] ページに移動します。
- [INTERNET_NEG_NAME] をクリックします。
- [IP アドレス] フィールドに「IP_ADDRESS_1」と入力します。
省略可: [ポートタイプ] リストで、[カスタム] を選択します。[ポートタイプ] が
Default
の場合、NEG のデフォルト ポートが使用されます。- [ポート番号] フィールドに「PORT_NUMBER_1」と入力します。
- [作成] を選択します。
gcloud
INTERNET_FQDN_PORT
エンドポイントを含む NEG を作成するには:
NEG リソースを作成します。
gcloud beta compute network-endpoint-groups create INTERNET_NEG_NAME \ --network-endpoint-type=INTERNET_FQDN_PORT \ --default-port=DEFAULT_PORT_NUMBER \ --network=LB_NETWORK \ --region=REGION
エンドポイントを NEG に追加します。ポートが指定されていない場合は、NEG のデフォルト ポートが使用されます。
gcloud beta compute network-endpoint-groups update INTERNET_NEG_NAME \ --add-endpoint="fqdn=FULLY_QUALIFIED_DOMAIN_NAME_1,port=PORT_NUMBER_1" \ [--add-endpoint="fqdn=FULLY_QUALIFIED_DOMAIN_NAME_2,port=PORT_NUMBER_2" \] --region=REGION
次のように置き換えます。
FULLY_QUALIFIED_DOMAIN_NAME
: エンドポイントの完全修飾ドメイン名PORT_NUMBER
: エンドポイントのポート番号
NEG ごとに最大 256 個のエンドポイントを追加できます。
ドメインがインターネット経由で解決できる場合は、DNS の設定に他の構成は必要ありません。ただし、プライベート FQDN を使用している場合は、DNS の解決が容易になるように Cloud DNS を構成する必要があります。この名前は Cloud DNS でホストされているか、Cloud DNS からオンプレミス DNS への DNS 転送によって解決できる必要があります。
まず、プロジェクトで DNS レコードをホストする Cloud DNS ゾーンを作成します。次に、DNS レコードを追加します。具体的な構成手順については、Cloud DNS のドキュメントをご覧ください。
INTERNET_IP_PORT
エンドポイントを含む NEG を作成するには:
NEG リソースを作成します。
gcloud beta compute network-endpoint-groups create INTERNET_NEG_NAME \ --network-endpoint-type=INTERNET_IP_PORT \ --default-port=DEFAULT_PORT_NUMBER \ --network=LB_NETWORK \ --region=REGION
エンドポイントを NEG に追加します。ポートが指定されていない場合は、NEG のデフォルト ポートが使用されます。
gcloud beta compute network-endpoint-groups update INTERNET_NEG_NAME \ --add-endpoint="ip=IP_ADDRESS_1,port=PORT_NUMBER_1" \ [--add-endpoint="ip=IP_ADDRESS_2,port=PORT_NUMBER_2" \] --region=REGION
次のように置き換えます。
IP_ADDRESS
: エンドポイントの IP アドレスPORT_NUMBER
: エンドポイントのポート番号
この手順を繰り返して、NEG ごとに最大 256 個のエンドポイントを追加できます。
ロードバランサを作成する
コンソール
構成を開始する
Google Cloud コンソールで、[ロード バランシング] ページに移動します。
- [ロードバランサを作成] をクリックします。
- [ロードバランサの種類] で [アプリケーション ロードバランサ(HTTP / HTTPS)] を選択し、[次へ] をクリックします。
- [インターネット接続または内部] で [内部] を選択し、[次へ] をクリックします。
- [クロスリージョンまたはシングル リージョンのデプロイ] で [リージョン ワークロードに最適] を選択し、[次へ] をクリックします。
- [構成] をクリックします。
基本構成
- ロードバランサ名を入力します。
- [リージョン] で REGION を選択します。
- [ネットワーク] で LB_NETWORK を選択します。
プロキシ専用サブネットを予約する
プロキシ専用サブネットを予約するには:
- [サブネットを予約] をクリックします。
- [名前] に「PROXY_ONLY_SUBNET_NAME」と入力します。
- [IP アドレス範囲] に「PROXY_ONLY_SUBNET_RANGE」と入力します。
- [追加] をクリックします。
フロントエンドの構成
- [フロントエンドの構成] をクリックします。
- 名前を入力します。
- [サブネットワーク] で、[LB_SUBNET_NAME] を選択します。
HTTPS ロードバランサを作成するには、SSL 証明書が必要です。Google マネージド証明書を使用することをおすすめします。
プロパティ 値(値を入力するか、指定されたオプションを選択) プロトコル HTTPS IP バージョン IPv4 IP アドレス 以前に予約した IP アドレス(LB_IP_ADDRESS)を選択します。 ポート 443 証明書 既存の SSL 証明書を選択するか、新しい証明書を作成します。
HTTPS ロードバランサを作成するには、HTTPS プロキシで使用する SSL 証明書リソースが必要です。
SSL 証明書リソース(または Google マネージド証明書によって必要とされるドメイン)を設定せずにこのプロセスをテストする場合は、HTTP ロードバランサを設定できます。
HTTP ロードバランサを作成するには、次のオプションがこれらの値で構成されていることを確認します。
プロパティ 値(値を入力するか、指定されたオプションを選択) プロトコル HTTP IP バージョン IPv4 IP アドレス 以前に予約した IP アドレス(LB_IP_ADDRESS)を選択します。 ポート 80 [完了] をクリックします。
バックエンドの構成
- [バックエンドの構成] をクリックします。
- バックエンド サービスとバックエンド バケットをクリックします。
- [バックエンド サービスを作成] をクリックします。
- 名前を入力します。
- [バックエンド タイプ] で [インターネット ネットワーク エンドポイント グループ] を選択します。
- [プロトコル] で、ロードバランサからインターネット NEG に接続するプロトコルを選択します。
- [バックエンド] の [新しいバックエンド] ウィンドウで、前の手順で作成したリージョン インターネット ネットワーク エンドポイント グループを選択します。
- [完了] をクリックします。
- ヘルスチェックを構成します。
- [ヘルスチェック] で [ヘルスチェックを作成] を選択します。
- ヘルスチェックの名前を HTTP_HEALTH_CHECK_NAME に設定します。
- [プロトコル] で [HTTP] を選択します。
- [ポート] を
80
に設定します。
- [作成] をクリックします。
確認と完了
- [確認と完了] をクリックします。
- 設定に問題がない場合は、[作成] をクリックします。
gcloud
- 省略可: ヘルスチェックを作成します。外部バックエンドのヘルスチェック プローブは分散 Envoy ヘルスチェックを使用し、後で NAT 変換されます。
gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \ --region=REGION \ --use-serving-port
- バックエンド サービスを作成します。
gcloud compute backend-services create BACKEND_SERVICE \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=HTTP_HEALTH_CHECK_NAME \ --health-checks-region=REGION \ --region=REGION
- インターネット NEG をバックエンド サービスに追加します。
gcloud compute backend-services add-backend BACKEND_SERVICE \ --network-endpoint-group=INTERNET_NEG_NAME \ --network-endpoint-group-region=REGION \ --region=REGION
- 受信リクエストをバックエンド サービスに転送するための URL マップを作成します。
gcloud compute url-maps create URL_MAP_NAME \ --default-service=BACKEND_SERVICE \ --region=REGION
- 省略可: この手順は、クライアントとロードバランサ間で HTTPS を使用している場合に行います。HTTP ロードバランサの場合、必須ではありません。
Compute Engine または Certificate Manager の証明書を作成できます。Certificate Manager を使用して証明書を作成するには、次のいずれかの方法を使用します。
- リージョン セルフマネージド証明書。リージョン セルフマネージド証明書の作成と使用については、リージョン セルフマネージド証明書をデプロイするをご覧ください。証明書マップはサポートされていません。
リージョンの Google マネージド証明書。証明書マップはサポートされていません。
Certificate Manager では、次のタイプのリージョン Google マネージド証明書がサポートされています。
- プロジェクトごとの DNS 認証を使用するリージョン Google マネージド証明書。詳細については、リージョン Google マネージド証明書をデプロイするをご覧ください。
- Certificate Authority Service を使用するリージョン Google マネージド(プライベート)証明書。詳細については、CA Service を使用してリージョン Google マネージド証明書をデプロイするをご覧ください。
URL マップにリクエストを転送するターゲット HTTP(S) プロキシを作成します。
HTTP ロードバランサの場合は、HTTP ターゲット プロキシを作成します。
gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \ --url-map=URL_MAP_NAME \ --region=REGION
HTTPS ロードバランサの場合は、HTTPS ターゲット プロキシを作成します。プロキシはロードバランサの一部であり、HTTPS ロード バランシング用の SSL 証明書を保持するため、この手順で証明書も読み込みます。
gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \ --ssl-certificates=SSL_CERTIFICATE_NAME \ --url-map=URL_MAP_NAME \ --region=REGION
受信リクエストをプロキシに転送する転送ルールを作成します。
HTTP ロードバランサの場合:
gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --network-tier=PREMIUM \ --network=LB_NETWORK \ --subnet=LB_SUBNET_NAME \ --address=LB_IP_ADDRESS \ --target-http-proxy=TARGET_HTTP_PROXY_NAME \ --target-http-proxy-region=REGION \ --region=REGION \ --ports=80
HTTPS ロードバランサの場合:
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --network-tier=PREMIUM \ --network=LB_NETWORK \ --subnet=LB_SUBNET_NAME \ --address=LB_IP_ADDRESS \ --target-https-proxy=TARGET_HTTPS_PROXY_NAME \ --target-http-proxy-region=REGION \ --region=REGION \ --ports=443
証明書を作成したら、証明書をターゲット プロキシに直接関連付けます。
Compute Engine セルフマネージド SSL 証明書リソースを作成するには:gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \ --certificate CRT_FILE_PATH \ --private-key KEY_FILE_PATH
ドメインをロードバランサに接続する
ロードバランサが作成されたら、ロードバランサに関連付けられた IP アドレスをメモします(例: 30.90.80.100
)。ドメイン登録サービスを使用して A
レコードを作成し、ドメインがロードバランサを参照するようにします。SSL 証明書に複数のドメインを追加する場合は、それぞれについて A
レコードを追加して、すべてがロードバランサの IP アドレスを指すようにする必要があります。たとえば、www.example.com
と example.com
に A
レコードを作成するには、次のようにします。
NAME TYPE DATA www A 30.90.80.100 @ A 30.90.80.100
DNS プロバイダとして Cloud DNS を使用する場合は、レコードの追加、変更、削除をご覧ください。
ロードバランサをテストする
ロードバランサを構成したので、ロードバランサの IP アドレスにトラフィックを送信できるようになりました。
クライアント VM を作成する
この例では、ロードバランサと同じリージョンにクライアント VM を作成しています(vm-client
)。クライアントを使用するのは、ロードバランサの構成を検証し、想定される動作を示すためです。
gcloud
クライアント VM はロードバランサと同じ REGION 内の任意のゾーンにあり、同じ VPC ネットワーク内の任意のサブネットを使用できます。
gcloud compute instances create vm-client \ --image-family=debian-10 \ --image-project=debian-cloud \ --tags=allow-ssh \ --network=LB_NETWORK \ --subnet=LB_SUBNET_NAME \ --zone=ZONE
ロードバランサにトラフィックを送信する
ロードバランサの構成が最初にデプロイされた後、構成が反映されるまでには数分かかることがあります。
SSH を使用してクライアント インスタンスに接続します。
gcloud compute ssh vm-client \ --zone=ZONE
外部バックエンドで実行されているアプリケーションにロードバランサが想定どおり接続していることを確認します。
HTTP テストの場合は、次のコマンドを実行します。
curl IP_ADDRESS
HTTPS テストの場合は、次のコマンドを実行します。
curl -k -s 'https://TEST_DOMAIN_URL:443' --connect-to TEST_DOMAIN_URL:443:IP_ADDRESS:443
TEST_DOMAIN_URL は、アプリケーションに関連付けられているドメインに置き換えます。例:
test.example.com
-k
フラグを指定すると、curl は証明書の検証をスキップします。
追加構成
このセクションでは、代替および追加の構成オプションを提供する構成例を示します。これらのタスクはすべて省略可です。また、任意の順序で行うことができます。
グローバル アクセス(クライアントが別のリージョンにある場合)など、リージョン内部アプリケーション ロードバランサでさらに多くの機能を有効にするには、VM インスタンス グループのバックエンドを使用して内部アプリケーション ロードバランサを設定する: 追加の構成をご覧ください。カスタム ヘッダーを使用してリクエストを認証する
外部バックエンドに送信されるリクエストを認証するには、Google Cloud ロードバランサからのリクエストであることを示すカスタム ヘッダーを設定します。また、Google Cloud からのトラフィックにこのカスタム ヘッダーが使用されるように、外部バックエンドを構成する必要があります。
カスタム ヘッダーの設定方法については、高度なトラフィック管理を設定するをご覧ください。他の認証方法については、外部バックエンドへのリクエストを認証するをご覧ください。
クライアント HTTP キープアライブ タイムアウトを更新する
前の手順で作成したロードバランサは、クライアント HTTP キープアライブ タイムアウトのデフォルト値で構成されています。クライアントの HTTP キープアライブ タイムアウトを更新するには、次の操作を行います。
コンソール
Google Cloud コンソールで、[ロード バランシング] ページに移動します。
- 変更するロードバランサの名前をクリックします。
- [ 編集] をクリックします。
- [フロントエンドの構成] をクリックします。
- [高度な機能] を開きます。[HTTP キープアライブ タイムアウト] にタイムアウト値を入力します。
- [更新] をクリックします。
- 変更を確認するには、[確認と完了] をクリックして、[更新] をクリックします。
gcloud
HTTP ロードバランサの場合は、gcloud compute target-http-proxies update
コマンドを使用してターゲット HTTP プロキシを更新します。
gcloud compute target-http-proxies update TARGET_HTTP_PROXY_NAME \ --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \ --region=REGION
HTTPS ロードバランサの場合は、gcloud compute target-https-proxies update
コマンドを使用してターゲット HTTPS プロキシを更新します。
gcloud compute target-https-proxies update TARGET_HTTP_PROXY_NAME \ --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \ --region REGION
次のように置き換えます。
TARGET_HTTP_PROXY_NAME
: ターゲット HTTP プロキシの名前。TARGET_HTTPS_PROXY_NAME
: ターゲット HTTPS プロキシの名前。HTTP_KEEP_ALIVE_TIMEOUT_SEC
: HTTP キープアライブ タイムアウト値(5~600 秒)。