インターネット NEG を使用して指定された外部バックエンド

コンテンツがオンプレミスや別のクラウドでホストされている場合でも、Cloud CDN(コンテンツ配信ネットワーク)の外部バックエンド(カスタム送信元)を使用すると、Google の高パフォーマンスの分散型エッジ キャッシング インフラストラクチャでコンテンツを配信できます。

用語

次の用語は、同じ意味または類似の意味を持つため、区別されずに使われることがよくあります

  • 外部バックエンド: Google Cloud の外部にあり、インターネット経由で到達可能なバックエンド。インターネット NEG 内のエンドポイント。
  • カスタムの送信元: 外部バックエンドと同じです。CDN では、ウェブ コンテンツを配信するバックエンド インスタンスを表す標準用語として「送信元」が使用されます。
  • インターネット ネットワーク エンドポイント グループ(NEG): 外部バックエンドの指定に使用する Google Cloud API リソース。
  • 外部エンドポイント: 外部バックエンドと同じです。

負荷分散のドキュメントとの整合性を維持するため、ここではインターネット NEG API リソースを指す場合を除き、外部バックエンドという用語を使用します。

Cloud CDN でサポートされているバックエンドの種類

Cloud CDN を HTTP(S) 負荷分散と連携させてユーザーにコンテンツを配信できます。外部 HTTP(S) ロードバランサは、リクエストを受信するフロントエンド IP アドレスとポートを提供します。Cloud CDN コンテンツは、次のようにさまざまな種類のバックエンドから提供されます。

外部バックエンドは、オンプレミス インフラストラクチャ内でホストされている場合もあれば、サードパーティ プロバイダが提供する送信元である場合もあります。以降のセクションで、外部バックエンドについて詳しく説明します。

ハイブリッド アーキテクチャとマルチクラウド アーキテクチャ

サービスを Google Cloud に移行する際に、段階的な移行が必要になることがあります。特定のコンテンツをすぐにクラウド環境に移行できない場合、そのコンテンツをオンプレミスに残さなければなりません。また、コンテンツが別のクラウドでホストされている場合もあります。Cloud CDN は外部バックエンドをサポートするので、こうしたコンテンツには、Google のグローバルな分散型エッジ キャッシング インフラストラクチャを使用できます。

ハイブリッド アーキテクチャとマルチクラウド アーキテクチャ
ハイブリッド アーキテクチャとマルチクラウド アーキテクチャ

上の図で、images コンテンツは Google Cloud 内にあり、video は東京データセンター内にあります。後者はオンプレミス、または別のクラウド内のどちらも可能です。外部バックエンドを使用すると、東京データセンターの送信元を video コンテンツのバックエンド ソースとして、Cloud CDN と HTTP(S) ロード バランシングによってユーザーにコンテンツを配信できます。

このデプロイでは、URL マップを使用して、動画トラフィックの送信元 pull リクエストを東京の外部バックエンドに転送できます。このマッピングは、リクエスト URL /video に基づいて判断されます。

画像の場合(リクエスト URL /images に基づいて判断)、コンテンツは Google Cloud から提供され、Cloud CDN エッジ インフラストラクチャによって配信されます。

外部バックエンドの指定

Google Cloud にデプロイされたエンドポイントで Cloud CDN を構成する場合と同様に、ネットワーク エンドポイント グループ(NEG)API を使用して、サーバーを Cloud CDN の外部バックエンドとして追加できます。

外部バックエンドを指定するには、インターネット NEG を使用します。インターネット NEG は、次の表のいずれかのエンドポイント タイプになります。

エンドポイント アドレス 種類 定義 使うタイミング
ホスト名とオプションのポート INTERNET_FQDN_PORT 一般公開で解決可能な完全修飾ドメイン名(FQDN)とオプションのポート、backend.example.com:443 など(デフォルト ポート: HTTP の場合 80、HTTPS の場合 443 一般公開 DNS で FQDN を使って外部バックエンドを解決できる場合は、このエンドポイントを使用します。
IP アドレスとオプションのポート INTERNET_IP_PORT 公開アクセス可能な IP アドレスとオプションのポート。例: 192.0.2.8192.0.2.8:443(デフォルト ポート: HTTP の場合は 80、HTTPS の場合は 443 接続先となる一般公開 IP アドレスとポートを指定するには、このエンドポイントを使用します。

ベスト プラクティスは、エンドポイントの種類を INTERNET_FQDN_PORT に設定し、送信元ホスト名の値として FQDN 値を指定したインターネット NEG を作成することです。これにより、Cloud CDN の構成が送信元インフラストラクチャの IP アドレスの変更から分離されます。FQDN を使用して定義されたネットワーク エンドポイントは、一般公開 DNS によって解決されます。構成した FQDN が Google Public DNS で解決できることを確認してください。

インターネット NEG を作成した後は、種類を INTERNET_FQDN_PORT から INTERNET_IP_PORT に、またはその逆に変更することはできません。新しいインターネット NEG を作成し、その新しいインターネット NEG を使用するようにバックエンド サービスを変更する必要があります。

HTTP リクエストの Host ヘッダーに特定の値を必要とする外部バックエンドを使用する場合、Host ヘッダーをその値に設定するようにバックエンド サービスを構成する必要があります。ユーザー定義のリクエスト ヘッダーを構成しない場合、バックエンド サービスは、Google Cloud の外部 HTTP(S) ロードバランサへの接続用にクライアントが使用した Host ヘッダーを保持します。ユーザー定義リクエスト ヘッダーの一般的な情報については、ユーザー定義リクエスト ヘッダーの作成をご覧ください。具体的な例については、外部バックエンドを使用した Cloud CDN の設定をご覧ください。

送信元からの静的レスポンスを自動的にキャッシュに保存するには、CACHE_ALL_STATICキャッシュ モード設定を使用します。

HTTP キャッシュ ディレクティブを使用して、キャッシュへの保存をレスポンスごとに制御するには、元のヘッダー(USE_ORIGIN_HEADERS)を使用するようにキャッシュ モードを設定します。Cloud CDN が認識するキャッシュ ディレクティブ、および Cloud CDN によってキャッシュに保存されないコンテンツについては、キャッシュ可能なコンテンツキャッシュに保存できないコンテンツをご覧ください。

送信元がユーザーごとに動的なコンテンツを配信していない場合は、送信元からのすべてのレスポンスをキャッシュに保存することをおすすめします。これを行うには、FORCE_CACHE_ALL モードを使用します。このモードでは、コンテンツ タイプやキャッシュ ディレクティブに関係なく、すべてのレスポンスがキャッシュに保存されます。

バックエンドで Cloud CDN を有効にするときに明示的にキャッシュ モードを選択しない場合、API とgcloudコマンドライン ツールはデフォルトで USE_ORIGIN_HEADERS に設定され、Cloud Console はデフォルトで CACHE_ALL_STATIC に設定されます。

外部バックエンドと Google Cloud ベースの送信元を使用する

次の図に示すインターネット NEG は、HTTP(S) 負荷分散と Cloud CDN を使って外部バックエンドをデプロイするために使用されます。

外部バックエンドを備えた Cloud CDN
外部バックエンドを備えた Cloud CDN

次のステップ