URL マップの使用

このガイドでは、Google Cloud URL マップの構成方法について説明します。このガイドに記載された手順を行う前に、URL マップのコンセプトを十分に理解してください。

URL マップは、次の Google Cloud サービスで使用されます。

内部 HTTP(S) 負荷分散と Traffic Director は、高度なトラフィック管理のユースケースに対応しています。詳細情報

URL マップの構成

バックエンド サービスバックエンド バケットを URL マップに追加できます。

バックエンド バケットは外部 HTTP(S) ロードバランサでのみサポートされます。

URL マップの追加

Console

Cloud Console を使用して URL マップを追加するには、次の操作を行います。

  1. [負荷分散] ページに移動します。

    [負荷分散] ページに移動

  2. ロードバランサの名前をクリックします。
  3. [ロードバランサの詳細] 画面で、選択したロードバランサの [編集] 鉛筆をクリックします。
  4. [ホストとパスのルール] を選択します。
  5. [ホストとパスのルールを追加] をクリックします。
  6. [ホスト] フィールド、[パス] フィールド、またはその両方を入力して、バックエンド サービスまたはバックエンド バケットを選択します。
  7. [ホストとパスのルール] の左側の青色のチェックマークを確認して、[更新] ボタンをクリックします。

gcloud

gcloud コマンドライン ツールを使用して URL マップを追加するには、url-maps create コマンドを使用します。

gcloud compute url-maps create URL_MAP \
    (--default-backend-bucket=DEFAULT_BACKEND_BUCKET | --default-service=DEFAULT_SERVICE) \
   [--description DESCRIPTION] \
   [--global | --region=REGION]

内部 HTTP(S) ロードバランサの場合は、URL マップの作成時に --region フラグを指定するようにします。

新しく作成された URL マップが一致するのはただ 1 つのパス、つまりデフォルトのパス(/*)だけです。このデフォルト パスマッチャーは自動的に作成されます。手動で作成されたパスマッチャーまたはホストルールと一致しないトラフィックはすべて、URL マップのデフォルトのバックエンド サービスに送信されます。

パスマッチャーの追加

パスマッチャーは、HTTP(S) リクエストパスまたはパス接頭辞(/video など)をバックエンド サービスにマッピングします。指定されたパスと一致するトラフィックはすべて、パスマッチャーのパスルールによって処理されます。パスがパスルールと一致した場合、リクエストは、そのパスルールに関連付けられているバックエンドに転送されます。リクエストがパスマッチャー no path ルールと一致した場合、リクエストはパスマッチャーのデフォルト バックエンドに転送されます。

Console

Cloud Console を使用してパスマッチャーを作成するには、次の操作を行います。

  1. [ホストとパスのルール] 画面が表示されていない場合は、[負荷分散] ページに移動します。

    [負荷分散] ページに移動

  2. ロードバランサの名前をクリックします。
  3. [ロードバランサの詳細] 画面で、選択したロードバランサの [編集] 鉛筆をクリックします。
  4. [ホストとパスのルール] 画面で、[ホストとパスのルールを追加] をクリックするか既存の [パス] フィールドをクリックします。
  5. 構成するパスを入力します(例: /video)。
  6. [ホストとパスのルール] の左側の青色のチェックマークを確認して、[更新] ボタンをクリックします。

gcloud

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

gcloud compute url-maps add-path-matcher URL_MAP \
   --default-service BACKEND_SERVICE \
   --path-matcher-name PATH_MATCHER \
   [--path-rules PATH=SERVICE]

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

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

url-maps create コマンドと url-maps add-path-matcher コマンドの両方に --default-service パラメータがあります。create の場合、デフォルト サービスは、受信 URL に一致するパスマッチャーがない場合に使用されるサービスです。add-path-matcher の場合、デフォルト サービスは、パスがパスマッチャーに一致しても --path-rules のいずれにも一致しない場合に使用されるサービスです。

ホストルールの追加

Console

Cloud Console を使用してホストルールを作成するには、次の操作を行います。

  1. [ホストとパスのルール] 画面が表示されていない場合は、[負荷分散] ページに移動します。

    [負荷分散] ページに移動

  2. ロードバランサの名前をクリックします。
  3. [ロードバランサの詳細] 画面で、選択したロードバランサの [編集] 鉛筆をクリックします。
  4. [ホストとパスのルール] 画面で、[ホストとパスのルールを追加] をクリックするか、既存の [ホスト] フィールドをクリックします。
  5. 完全修飾の ホスト名(例: web.example.com)を入力します。
  6. [ホストとパスのルール] の左側の青色のチェックマークを確認して、[更新] ボタンをクリックします。

gcloud

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

  gcloud compute url-maps add-host-rule URL_MAP \
      --hosts HOSTS --path-matcher-name PATH_MATCHER

--hosts フラグは、リクエストと照合する一連のホストを定義します。たとえば、次のような --hosts 値はリクエストを www.example.com および google.com のすべてのサブドメインと照合します。

  --hosts *.google.com,www.example.com

バックエンド サービスまたはバックエンド バケットの選択

Console

URL マップのバックエンド サービスまたはバックエンド バケットを選択するには、次の操作を行います。

  1. [ホストとパスのルール] 画面が表示されていない場合は、[負荷分散] ページに移動します。

    [負荷分散] ページに移動

  2. ロードバランサの名前をクリックします。
  3. [ロードバランサの詳細] 画面で、選択したロードバランサの [編集] 鉛筆をクリックします。
  4. [ホストとパスのルール] 画面の [バックエンド] フィールド プルダウン メニューで、利用可能なバックエンド サービスまたはバックエンド バケットを選択します。
  5. [ホストとパスのルール] の左側の青色のチェックマークを確認して、[更新] ボタンをクリックします。

gcloud

gcloud コマンドライン ツールを使用してバックエンド サービスまたはバックエンド バケットを選択するには、url-maps set-default-service コマンドを使用します。

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

URL マップのテスト

URL マップに構成テストを追加すると、URL マップがバックエンド サービスまたはバックエンド バケットにリクエストを正しくルーティングしているかどうかを確認できます。

URL マップを編集するとテストが実行されます。テストに失敗すると、エラー メッセージが表示されます。

  Error: Invalid value for field 'urlMap.tests': ''.
  Test failure: Expect URL '' to map to service '', but actually mapped to ''.

URL マップへのテストの追加は任意です。

Console

Cloud Console からテストを実行するには:

  1. [負荷分散] ページに移動します。

    [負荷分散] ページに移動

  2. ロードバランサの名前をクリックします。
  3. [ロードバランサの詳細] 画面で、選択したロードバランサの [編集] 鉛筆をクリックします。
  4. [ホストとパスのルール] をクリックします。
  5. [ホストとパスのルール] の下で、[設定テストを表示する] をクリックします。
  6. [設定テストの追加] をクリックします。次のテスト URL とバックエンドを追加します:
    • テスト URL example.comバックエンド www-service.
    • テスト URL example.netバックエンド www-service.
    • テスト URL example.net/webバックエンド www-service.
    • テスト URL example.com/videosバックエンド video-service.
    • テスト URL example.com/videos/browseバックエンド video-service.
    • テスト URL example.net/staticバックエンド static-service.
    • テスト URL example.net/static/imagesバックエンド static-service.
  7. [ホストとパスのルール] の左側の青色のチェックマークを確認して、[更新] ボタンをクリックします。

gcloud

gcloud コマンドライン ツールを使用してテストを URL マップに追加するには、gcloud compute url-maps edit コマンドを使用します。

  gcloud compute url-maps edit URL_MAP

これによってテキスト エディタが起動します。外部 HTTP(S) ロードバランサの場合は、テストで次の形式を使用する必要があります。

    tests:
      - host: example.com
        service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service
      - host: example.net
        service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service
      - host: example.com
        path: /videos
        service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/video-service
      - host: example.com
        path: /videos/browse
        service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/video-service
      - host: example.net
        path: /web
        service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service
      - host: example.net
        path: /static
        service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/static-service
      - host: example.net
        path: /static/images
        service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/static-service

内部 HTTP(S) ロードバランサの場合、サービス URL はリージョンのバックエンド サービスをポイントする必要があります。例:

https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/[REGION]/backendServices//www-service

ホストルールでホストを指定しない場合、すべてのホストからの URL(example.com と example.net の両方)が一致する場合があります。ホストルールがある場合は、example.com と example.net の両方に一致するルールを作成する必要があります。

URL マップのリスト表示

Console

コンソールで一度に表示できるのは、1 つのロードバランサの URL マップのみです。

  1. [負荷分散] ページに移動します。

    [負荷分散] ページに移動

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

gcloud

gcloud コマンドライン ツールを使用して URL マップのリストを表示するには、url-maps list コマンドを使用します。

gcloud compute url-maps list

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

Console

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

  1. [負荷分散] ページに移動します。

    [負荷分散] ページに移動

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

gcloud

gcloud コマンドライン ツールを使用してひとつの URL マップに関する情報を取得するには、url-maps describe コマンドを使用します。

gcloud compute url-maps describe URL_MAP

URL マップの削除

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

Console

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

  1. [負荷分散] ページに移動します。

    [負荷分散] ページに移動

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

gcloud

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

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

パスマッチャーの削除

Console

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

  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 \
     [--path-matcher-name PATH_MATCHER]

ホストルールの削除

Console

ホストルールを削除するには、次の手順を実行します。

  1. [ホストとパスのルール] 画面が表示されていない場合は、[負荷分散] ページに移動します。

    [負荷分散] ページに移動

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

gcloud

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

 gcloud compute url-maps remove-host-rule NAME --host HOST

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

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

次のステップ