URL マップを使用する

このガイドでは、 Trusted CloudURL マップの構成方法について説明します。URL マップは、受信 HTTP(S) リクエストを特定のバックエンド サービスに転送するための一連のルールです。最小限の URL マップは、受信したすべてのリクエストパス(/*)と一致します。

このガイドに記載された手順を行う前に、URL マップのコンセプトを十分に理解してください。

URL マップは、次の Trusted Cloud プロダクトで使用されます。

リージョン外部アプリケーション ロードバランサとリージョン内部アプリケーション ロードバランサで使用される URL マップは、いくつかの高度なトラフィック管理機能もサポートしています。詳細については、URL マップのコンセプト: 高度なトラフィック管理をご覧ください。

URL マップのデフォルト

次の表に示すように、URL マップには 2 つのデフォルトがあります。

デフォルトの種類 設定 意味
URL マップのデフォルト gcloud compute url-maps create

--default-service

受信 URL に一致するパスマッチャーやホストルールがない場合、指定したデフォルトのバックエンド サービス が使用されます。
パスマッチャーのデフォルト gcloud compute url-maps add-path-matcher

--default-service

URL のパスがパスマッチャーと一致しても、指定された --path-rules が一致しない場合、指定したデフォルトのバックエンド サービス が使用されます。

ホストルール

ホストルールでは、リクエストと照合する一連のホストを定義します。

ホストルールでは、ホスト名は完全修飾ドメイン名(FQDN)にする必要があります。ホスト名には IPv4 または IPv6 アドレスを使用できません。例:

  • 正常に機能する: example.com
  • 正常に機能する: web.example.com
  • 正常に機能する: *.example.com
  • 正常に機能しない: 35.244.221.250

URL マップを構成する

URL マップにより、トラフィックをバックエンド サービスに送信できます。

コンソール

Trusted Cloud コンソールを使用して URL マップを追加するには、次の操作を行います。

  1. [ロード バランシング] ページに移動します。

    [ロード バランシング] に移動

  2. ロードバランサの名前をクリックします。
  3. [ロードバランサの詳細] ページで、選択したロードバランサの [編集] をクリックします。
  4. [ホストとパスのルール] を選択します。
  5. [ホストとパスのルールを追加] をクリックします。
  6. [ホスト] フィールド、[パス] フィールド、またはその両方を入力して、[バックエンド サービス]を選択します。

    1. 完全修飾のホスト名を入力します(例: web.example.com)。
    2. パスを入力します(例: /video)。
    3. [ホストとパスのルール] ページの [バックエンド] メニューで、使用可能なバックエンド サービスを選択します。
  7. [ホストとパスのルール] の左側の青色のチェックマークを確認して、[更新] ボタンをクリックします。

gcloud

Google Cloud CLI を使用して URL マップを追加するには、url-maps create コマンドを使用します。

gcloud compute url-maps create URL_MAP_NAME \
   (--default-service=DEFAULT_SERVICE) \
   [--description DESCRIPTION] \
   [--region=REGION]

リージョン外部アプリケーション ロードバランサと内部アプリケーション ロードバランサの場合、URL マップの作成時に必ず --region フラグを指定します。

パスマッチャーを作成するには、gcloud compute url-maps add-path-matcher コマンドを使用します。

gcloud compute url-maps add-path-matcher URL_MAP_NAME \
   (--default-service=DEFAULT_SERVICE) \
   --path-matcher-name PATH_MATCHER \
   [--path-rules="PATH=SERVICE"]

このコマンドには、一致しないリクエストを送信できるデフォルトのバックエンド サービス が必要です。--path-rules フラグでは、リクエストパスとバックエンド サービスの間のマッピングを定義します。次の例では、リクエストパス /video/ および /video/*video-service バックエンド サービスに転送されます。

--path-rules="/video=video-service,/video/*=video-service"

ホストルールを作成するには、gcloud compute url-maps add-host-rule コマンドを使用します。

gcloud compute url-maps add-host-rule URL_MAP_NAME \
    --hosts=[HOSTS] --path-matcher-name=PATH_MATCHER

たとえば、次の --hosts 値は、リクエストを www.example.com および altostrat.com のすべてのサブドメインと照合します。

--hosts=[*.altostrat.com,www.example.com]

URL マップのデフォルトのサービス を変更するには、url-maps set-default-service コマンドを使用します。

gcloud compute url-maps set-default-service URL_MAP_NAME
  (--default-service=DEFAULT_SERVICE)[GCLOUD_WIDE_FLAG ...]

Terraform

リージョン URL マップを作成するには、google_compute_region_url_map リソースを使用します。

resource "google_compute_region_url_map" "default" {
  name            = "regional-l7-xlb-map"
  region          = "us-west1"
  default_service = google_compute_region_backend_service.default.id
}

URL マップの一覧表示

コンソール

Trusted Cloud コンソールですべての URL マップを一覧表示することはできません。

gcloud

Google Cloud CLI を使用して URL マップのリストを表示するには、url-maps list コマンドを使用します。

gcloud compute url-maps list

URL マップに関する情報の取得

コンソール

URL マップに関する情報を取得するには、次の手順を実行します。

  1. [ロード バランシング] ページに移動します。

    [ロード バランシング] に移動

  2. ロードバランサの名前をクリックします。
  3. [ロードバランサの詳細] ページで、選択したロードバランサの [編集] をクリックします。
  4. ホストとパスのルールを表示します。

gcloud

Google Cloud CLI を使用して単一の URL マップに関する情報を取得するには、url-maps describe コマンドを使用します。

gcloud compute url-maps describe URL_MAP_NAME

URL マップの削除

URL マップを削除する前に、参照先のすべてのターゲット プロキシを削除する必要があります。詳細については、ターゲット プロキシの削除をご覧ください。

コンソール

URL マップを削除するには、次の手順を実行します。

  1. [ロード バランシング] ページに移動します。

    [ロード バランシング] に移動

  2. ロードバランサの名前をクリックします。
  3. [ロードバランサの詳細] ページで、選択したロードバランサの [編集] をクリックします。
  4. [ロードバランサの詳細] ページで、[ホストとパスのルール] を表示します。
  5. URL マップの右側にある「X」をクリックして削除します。URL マップが表示から消えます。
  6. [ホストとパスのルール] の左側の青色のチェックマークを確認して、[更新] ボタンをクリックします。

gcloud

Google Cloud CLI を使用して URL マップを削除するには、url-maps delete コマンドを使用します。URL マップを削除する際は、事前にその URL マップを参照するターゲット HTTP プロキシを削除しておく必要があります。

gcloud compute url-maps delete URL_MAP_NAME [--quiet]

パスマッチャーの削除

コンソール

パスマッチャーを削除するには、次の手順を実行します。

  1. [ロード バランシング] ページに移動します。

    [ロード バランシング] に移動

  2. ロードバランサの名前をクリックします。
  3. [ロードバランサの詳細] ページで、選択したロードバランサの [編集] をクリックします。
  4. [ホストとパスのルール] を選択します。
  5. 既存の URL マップの [パス] フィールドで、パスマッチャーの名前の「x」をクリックします。
  6. [ホストとパスのルール] の左側の青色のチェックマークを確認して、[更新] ボタンをクリックします。

gcloud

パスマッチャーを削除するには、gcloud compute url-maps remove-path-matcher コマンドを使用します。

gcloud compute url-maps remove-path-matcher URL_MAP_NAME \
   [--path-matcher-name PATH_MATCHER]

ホストルールの削除

コンソール

ホストルールを削除するには、次の操作を行います。

  1. [ホストとパスのルール] ページが表示されていない場合は、[ロード バランシング] ページに移動します。

    [ロード バランシング] に移動

  2. ロードバランサの名前をクリックします。
  3. [ロードバランサの詳細] ページで、選択したロードバランサの [編集] をクリックします。
  4. [ホストとパスのルール] を選択します。
  5. 既存の URL マップの [ホスト] フィールドで、ホストの名前の「x」をクリックします。
  6. [ホストとパスのルール] の左側の青色のチェックマークを確認して、[更新] ボタンをクリックします。

gcloud

URL マップからホストルールを削除するには、gcloud compute url-maps remove-host-rule コマンドを使用します。

gcloud compute url-maps remove-host-rule URL_MAP_NAME --host=HOST

たとえば、ホスト altostrat.com を含むホストルールを my-map という名前の URL マップから削除するには、次のコマンドを実行します。

gcloud compute url-maps remove-host-rule my-map --host altostrat.com

トラフィック管理ガイド

すべてのプロダクトで、すべての URL マップ機能が利用できるわけではありません。URL マップは、いくつかの高度なトラフィック管理機能をサポートするためにロードバランサで使用されます。

次の表に、管理作業に使用する URL マップ機能を示します。

プロダクト URL マップの機能とトラフィック管理ガイド
リージョン外部アプリケーション ロードバランサ ロードバランサの機能: ルーティングとトラフィック管理

トラフィック管理の概要

トラフィック管理の設定

URL リダイレクトの設定

HTTP から HTTPS へのリダイレクトの設定

ホスト名とパス

リクエストのルーティング

Cookie

内部アプリケーション ロードバランサ ロードバランサの機能: ルーティングとトラフィック管理

トラフィック管理の概要

トラフィック管理の設定

URL リダイレクトの設定

HTTP から HTTPS へのリダイレクトの設定

Cookie

ホスト名とパス

API と gcloud CLI のリファレンス

Trusted Cloud コンソールに加えて、API と gcloud CLI を使用して URL マップを作成できます。

API

REST API で URL マップを操作するときに使用できるプロパティとメソッドについては、以下をご覧ください。

プロダクト API ドキュメント
外部アプリケーション ロードバランサ urlMaps
内部アプリケーション ロードバランサ regionUrlMaps

gcloud CLI

Google Cloud CLI については、以下をご覧ください。

  • リージョン: --region=[REGION]

高度なトラフィック管理を行うには、YAML ファイルを使用し、gcloud compute url-maps import コマンドを使用してインポートします。

次のステップ