独自のドメイン名から API を提供する

このページでは、カスタム ドメイン(example.com など)から API を提供する方法について説明します。

独自のドメイン名ではなく、Google が管理するドメイン名を使用することもできます。詳細については、Google が管理するドメインを使用するをご覧ください。

始める前に

ドメイン名を使用できるように API を構成する

適切なタブの手順に沿って設定します。

App Engine

API プロジェクトを設定し、確認済みのドメインを使用するには、アプリケーションにカスタム ドメインを追加するの手順に従ってください。

Compute Engine

Compute Engine インスタンスから API を設定するには、インスタンス グループでロードバランサを使用することをおすすめします。ドメイン名に外部 IP アドレスを予約し、その外部 IP アドレスをロードバランサに使用する必要があります。

独自のドメイン名から API を設定するには:

  1. プロジェクトに少なくとも 1 つの静的外部 IP アドレスを予約します。

    [外部 IP アドレス] ページに移動

    1. 予約した IP アドレスに任意の名前をつけます。
    2. [タイプ] で [グローバル] をクリックします。
    3. [接続先] で [なし] をクリックします。後で、この IP アドレスをロードバランサに関連付けます。
  2. ドメイン プロバイダのアカウントに移動し、ドメインの設定を変更します。データ フィールドに外部 IP アドレスと myapi.example.com のような API 名を含む A レコードを作成します。
  3. API を実行しているインスタンスと Extensible Service Proxy(ESP)を持つインスタンス グループを作成します。

    [新しいインスタンス グループの作成] ページに移動

    1. グループに任意の名前を割り当て、説明を追加します。
    2. [ゾーン] リストから、API インスタンスで使用するゾーンをクリックします。
    3. [インスタンス定義] リストで [既存のインスタンスを選択] をクリックします。
    4. [VM インスタンス] に、API を実行する VM インスタンスを追加します。
    5. [作成] をクリックします。
  4. HTTP(S) ロードバランサを作成して構成します。

    新しい HTTP(S) ロードバランサの作成ページに移動

    1. [バックエンド サービスを定義] > [バックエンド サービスを作成または選択] の順にクリックします。
      バックエンドの構成
    2. バックエンド サービスの構成で、任意の名前と説明を割り当てます。
    3. [プロトコル] フィールドで、ロードバランサでサポートするプロトコル(HTTP または HTTPS)を選択します。
    4. [インスタンス グループ] リストで、インスタンス グループをクリックします。
    5. [ポート番号] フィールドに「8080」と入力します。
    6. [ヘルスチェック] をクリックして、次のようにヘルスチェックを構成します。
      • ヘルスチェック構成の名前を入力します。
      • ポート番号 8080 を割り当てます。
      • 残りの設定にデフォルト値を使用するには、[保存] をクリックします。
    7. ここでは、残りの構成についてはデフォルトのままにします。追加のポートなどは、後から必要に応じて変更できます。
    8. [ホストとパスのルール] は設定を変更する必要はありません。デフォルトの一致しないものフィルタを利用すれば、使用しているバックエンドの API に必要なものを転送できます。つまり、ロードバランサにあるすべてのトラフィックは、前の手順で定義したポート番号 8080(デフォルト ポート)の API に送信されるということです。
    9. [フロントエンドの構成] をクリックします。
      フロントエンドの構成
      • [プロトコル] フィールドで、ロードバランサでサポートするプロトコル(HTTP または HTTPS)を選択します。
      • [IP] リストで、前に作成した外部 IP アドレスをクリックします。
      • HTTPS プロトコルの場合は、SSL を使用する必要があります。[証明書] リストで、必要な証明書をクリックします。
      • 別のプロトコルをサポートする場合は、[フロントエンドの IP とポートを追加] をクリックして、プロトコル、同じ外部 IP アドレス、別のポートを指定します。
    10. ロードバランサの構成を完了するため、[作成] をクリックします。[作成] ボタンが有効になっていない場合は、構成したコンポーネントを確認してください。各構成コンポーネントの横にチェックマークが表示されているはずです。チェックマークがない場合は、構成が完了していません。
    11. DNS の変更が反映されると、ロードバランサ経由でリクエストが API に送信されるようになります。

GKE

Google Kubernetes Engine(GKE)のドメインで API を提供するには、ドメインの DNS 設定に返された外部 IP アドレスを使用して、ESP をサービスとして公開する必要があります。負荷分散は GKE が自動的に行います。

API をサービスとして公開するには:

  1. まだ行っていない場合は、API バックエンドに Kubernetes サービスを構成します。次のようなサービス構成ファイル service.yaml を作成します。
                apiVersion: v1
                kind: Service
                metadata:
                  name: echo
                spec:
                  ports:
                  - port: 80
                    targetPort: 8081
                    protocol: TCP
                  selector:
                    app: echo-app
                  type: LoadBalancer
                  
    • バックエンド ラベルに合わせて selector ラベルを変更します(この例では app: echo-app)。
    • targetPort は、API バックエンドで構成された ESP が使用するポートと一致する必要があります。デフォルトで ESP はポート 8081 を使用します。
  2. Kubernetes サービスをデプロイします。
                kubectl apply -f service.yaml
                
  3. 公開したサービスに割り当てられた外部 IP アドレスを表示します。
                kubectl get services
                
    出力に次のような EXTERNAL-IP アドレスが表示されます。
                NAME         CLUSTER-IP     EXTERNAL-IP      PORT(S)    AGE
                hello-node   10.X.XXX.202   10X.XXX.XX.123   8080/TCP   1m
          
  4. 生成されたエフェメラル外部 IP アドレスを静的アドレスに変更します。

    [外部 IP アドレス] ページに移動

    1. リストから外部 IP アドレスを選択します。
    2. [タイプ] リストで [静的] を選択します。
  5. ドメイン プロバイダのアカウントに移動し、ドメインの設定を変更します。データ フィールドに外部 IP アドレスと myapi.example.com のような API 名を含む A レコードを作成します。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

OpenAPI を使用した Cloud Endpoints
ご不明な点がありましたら、Google のサポートページをご覧ください。