限定公開プレビュー サーバーを設定する

このガイドは、サーバーサイド タグ設定に Cloud Run を使用し、限定公開プレビュー サーバーを設定したいデベロッパーを対象としています。

サーバーサイド タグ設定を使用すると、タグ設定の変更内容を適用する前にプレビューとデバッグモードでプレビューできます。これは、意図したとおりにタグを動作させるにあたって、開発ワークフローの重要な要素となります。この機能を有効にするには、タグ設定サーバーとプレビュー サーバーの 2 か所で Cloud Run を デプロイする必要があります。 このガイドでは、この 2 つのサーバーの通信方法と、エンタープライズ環境での構成方法に関する詳細情報を提供します。

概要

サーバーサイド タグ設定を Cloud Run にデプロイする場合は、ロードバランサの使用の有無に関わらずデプロイできます。マルチリージョン環境でのデプロイの場合は、最も近いインスタンスにトラフィックが転送されるようにするために、ロードバランサが必要になります。

ロードバランサを使用しない場合

ロードバランサを使用しない場合

図 1: ロードバランサなしでデプロイする場合。

ロードバランサを使用する場合

ロードバランサを使用する場合

図 2: ロードバランサを使用してデプロイする場合。

どちらのデプロイでも、プレビュー サーバーと本番タグ設定環境の両方のエントリ ポイントは同一の URL(例: sgtm.example.com)になります。タグ設定サーバーは、プレビュー サーバーの URL を示す PREVIEW_SERVER_URL という環境変数を設定したうえでデプロイされます。

tagmanager.google.com にアクセスしてプレビュー モードを開くと、タグ マネージャーが sgtm.example.com?id=[gtm_server_id]&gtm_auth=[auth_id]&gtm_preview=[env_id] に移動し Cookie を設定します。そして同じブラウザで対象のウェブサイトにアクセスすると、sgtm.example.com に送信されたリクエストにより Cookie も転送されます。Cookie により、イベントがどこで発生したかの情報がタグ設定サーバーに知らされ、プレビュー サーバーに同じ発生元のイベントのみが転送されます。これにより、表示とトラブルシューティングが可能になります。

タグ設定サーバーは、PREVIEW_SERVER_URL 環境変数で設定された URL に HTTP リクエストを送信することで、これらのイベントを転送します。

一般公開されたプレビュー サーバーについて

これはデフォルトの動作で、プレビュー サーバーが公開されている必要があります。しかしながらこれは一部の組織にとっては問題になることがあります。一部の組織ではどのインフラストラクチャを公開するかについて制限があり、ロードバランサを通じてセキュリティ対策を追加で講じているためです。ロードバランサを使用して以下のようなことが可能になります。

  • 暗号スイートの制限など、SSL ポリシーなどの機能をより細かく制御。
  • ウェブ アプリケーション ファイアウォール(WAF)または分散型サービス拒否攻撃(DDoS)対策機能を使用するために Cloud Armor とネイティブで統合。
  • 高度なトラフィック管理。

ロードバランサ経由でプレビュー サーバーへのルーティングを行う

プライベート プレビュー サーバーを作成するには、追加のサブドメインでロードバランサ経由のホストベースのルーティングを使用します。以下で、ロードバランサ経由でプレビュー サーバーへのルーティングを行う方法を説明します。

前提条件

  • タグ設定サーバーが、Cloud Run 上でロードバランサの背後にデプロイされている。
  • Google Cloud プロジェクトにアクセスできる。
  • プレビュー サーバーの新しいサブドメイン(例: preview.sgtm.example.com)にアクセスできる。

ステップ 1: 新しいサブドメインで環境変数を更新する

新しいプレビュー サーバーのドメインを使用するには、サーバーサイド タグ設定サーバーの環境変数 PREVIEW_SERVER_URL を以下の手順で更新します。

  1. Cloud Run を開きます。
  2. タグ設定サーバーを選択します。
  3. [新しいリビジョンの編集とデプロイ] をクリックします。
  4. [コンテナ] セクションの [変数とシークレット] タブで、PREVIEW_SERVER_URL の値を新しいドメインに変更します。例: preview.sgtm.example.com

ステップ 2: ホストベースのルーティングを使用するよう既存のロードバランサを構成する

ホストベースのルーティングを使用して正しいサーバーにトラフィックを送信するよう既存のロードバランサを構成します。

  1. Cloud Run で、[ロード バランシング] ページを開き、使用しているロードバランサの名前をクリックします。
  2. [編集] ボタンをクリックします。
  3. [バックエンドの構成] ページをクリックして [バックエンド サービスとバックエンド バケット] のプルダウンを開きます。
  4. [バックエンド サービスを作成] をクリックして以下を完了します。
    1. 適切な名前を付けます(例: preview-backend-service)。
    2. バックエンド タイプに [サーバーレス ネットワーク エンドポイント グループ] を選択します。
  5. [バックエンド] セクションで新しいサーバーレス ネットワーク エンドポイント グループを作成し、以下を完了します。
    1. 名前を付けて、プレビュー サーバーがホストされているリージョンを選択します。
    2. サーバーレス ネットワーク エンドポイント グループに [Cloud Run] を選択し、サービスとしてプレビュー サーバーを選択します。
    3. [作成] をクリックします。
  6. 必要に応じて他の設定も変更するか、デフォルトの設定のままにして、[作成] をクリックします。

ステップ 3: 新しいルールを追加して内向きの制御を更新する

新しいホスト URL のルールの追加と内向きの制御の更新を行う手順は以下のとおりです。

  1. [ホストとパスのルール] ページを開きます。
  2. 以下の新しいルールを追加します。
    • ホストが新しい URL「preview.sgtm.example.com」である。
    • パスが「/*」である。
    • バックエンドが「preview-backend-service」である。
  3. [更新] ボタンをクリックしてロードバランサを再デプロイします。
  4. [Cloud Run] に戻り、プレビュー サーバーを開いて、[ネットワーキング] タブを選択します。
  5. [上り(内向き)の制御] を [内部] に変更して [外部アプリケーション ロードバランサからのトラフィックを許可する] にチェックを入れます。これにより、一般からアクセスできなくなります。

結果: サーバーのアーキテクチャは図 3 のようになります。ここでは、トラフィックのリクエストはすべてタグ設定サーバーに転送され、タグ設定サーバーはリクエストをプレビュー サーバーに転送できます。

ホストベースのルーティング

図 3: ホストベースのルーティングを使用する。

構成を確認する

構成を確認する手順は以下のとおりです。

  1. Google タグ マネージャーを開きます
  2. 確認するサーバー コンテナを開きます。
  3. [管理] > [コンテナ設定] をクリックして、サーバー コンテナ URL を プレビュー サーバー URL に設定します。
  4. ウィンドウを閉じてワークスペースの表示を確認します。 デバッグ ウィンドウが開きます。ウェブサイトを閲覧すると、デバッグ ウィンドウにイベントが表示されます。