cloud.goog ドメインでの DNS の構成

API がデプロイされた後、API のユーザーは、IP アドレスではなくドメイン名を使って API にアクセスする必要があります。次のことが可能です。

  • ドメイン名として .endpoints.PROJECT_ID.cloud.goog を構成します(PROJECT_ID は実際の Google Cloud プロジェクト ID)。
  • 独自のドメイン名(例: example.com)を登録します。これには以下の手順が必要です。
    • DNS ネームサーバーを構成する(または Cloud DNS を使用する)。
    • レジストリ アドレスを更新する。
    • DNS レコードを作成し、維持する。

    すでに DNS インフラストラクチャがある場合や、独自のドメイン名を登録する場合は、独自のドメイン名から API を提供するで詳細をご覧ください。

このページでは、ドメイン名として .endpoints.PROJECT_ID.cloud.goog を使用するように Cloud Endpoints API を構成する方法について説明します。このページの構成手順は、OpenAPI を使用し、Compute Engine、Kubernetes Engine、Kubernetes で実行されている API に適用できます。.endpoints.PROJECT_ID.cloud.goog ドメイン名は、App Engine で実行されている API ではサポートされていません。App Engine の API には、PROJECT_ID.appspot.com Endpoints サービス名として使用することをおすすめします。App Engine に API をデプロイすると、PROJECT_ID.appspot.com という形式の名前を持つ DNS エントリが自動的に作成されます。

.cloud.goog ドメインは Google が管理し、Google Cloud のお客様と共有します。Google Cloud プロジェクトには必ずグローバルに一意のプロジェクト ID が割り当てられるので、.endpoints.PROJECT_ID.cloud.goog 形式のドメイン名は一意になり、API のドメイン名として使用できます。.endpoints.PROJECT_ID.cloud.goog ドメイン名の構成はオプションです。必要に応じて、独自のドメイン名を登録できます。

要件

このページでは、Cloud Endpoints API をすでに作成して Compute Engine、Google Kubernetes Engine、Kubernetes にデプロイ済みであることを前提としています。テスト用の API が必要な場合は、サンプル API の構成およびデプロイ方法を示すチュートリアルのいずれかを使用してください。

DNS の構成

次の手順では、.endpoints.[PROJECT_ID].cloud.goog を Endpoints サービス名として使用する Cloud Endpoints API の DNS を構成する方法について説明します([PROJECT_ID] は実際の Google Cloud プロジェクト ID です)。便宜上、この手順では OpenAPI 構成ファイルを openapi.yaml とします。

DNS を構成するには:

  1. openapi.yaml を開きます。次のスニペットに示すように、x-google-endpoints フィールドをファイルに追加します。
        swagger: "2.0"
        host: "[API_NAME].endpoints.[PROJECT_ID].cloud.goog"
        x-google-endpoints:
        - name: "[API_NAME].endpoints.[PROJECT_ID].cloud.goog"
          target: "[IP_ADDRESS]"

    通常、host フィールドと x-google-endpoints.name フィールドは同じになります。OpenAPI 仕様をデプロイすると、host フィールドに指定されたテキストが Endpoints サービスの名前として使用されます。

  2. [API_NAME] は API の名前(bookstoremy-cool-api など)で置き換えます。
  3. [PROJECT_ID] を Google Cloud プロジェクト ID に置き換えます。
  4. [IP_ADDRESS] を IPv4 アドレスに置き換えます。

    たとえば、Endpoints API サービスを Compute Engine 仮想マシン インスタンスにデプロイする場合、その仮想マシンの外部 IP を使用できます。また、ロードバランサの背後にある仮想マシン インスタンス(または GKE ポッド)のグループでコードを実行する場合、ロードバランサの IP アドレスを使用できます。

  5. 以下のコマンドを使用して、新しい OpenAPI 仕様をサービス管理にデプロイします。
    gcloud endpoints services deploy openapi.yaml

たとえば、openapi.yaml ファイルで次のように指定されているとします。

    swagger: "2.0"
    host: "my-cool-api.endpoints.my-project-id.cloud.goog"
    x-google-endpoints:
    - name: "my-cool-api.endpoints.my-project-id.cloud.goog"
      target: "192.0.2.1"

前述の gcloud コマンドで openapi.yaml をデプロイすると、Service Management はターゲット IP アドレス 192.0.2.1 に解決される DNS A レコード my-cool-api.endpoints.my-project- id.cloud.goog を作成します。新しい DNS 構成が反映されるまでに数分かかる場合があります。

次のステップ