リージョン API エンドポイントへのアクセス

このページでは、Google Cloudでリージョン API エンドポイント(リージョン エンドポイント)を使用する方法について説明します。これは、me-central2(KSA)リージョンで使用できます。

リージョン エンドポイントは、クライアントと同じ Google Cloud リージョンでトラフィックをルーティングして処理することで、転送中のデータ所在地機能を提供します。クライアントがリージョン エンドポイントを使用してサービスを呼び出すと、クライアントの TLS セッションはエンドポイント名で示されたリージョンで終了します。そのため、リージョン エンドポイントは、単一のリージョンまたは管轄区域外に依存関係がないワークロードでのみ使用する必要があります。

インターネット経由でパブリック リージョン エンドポイントに接続できます。インターネット上での上り(内向き)トラフィックの場合、これらのエンドポイントはグローバル Google Front End(GFE)を使用しないため、ベストエフォート型ルーティングを使用して、転送中のトラフィックをリージョン(または管轄区域)内に保持します。代わりに、選択したリージョンに最も近いピアリング ポイントでのみアナウンスされる IP アドレスに解決されます。

たとえば、KSA で作業しているデータ エンジニアは、リージョン サービス エンドポイント bigquery.me-central2.rep.googleapis.com を使用して、me-central2 リージョン(ダンマーム)で BigQuery を使用するようにクライアントを構成できます。トラフィックはスタンダード ティアを使用して転送され、クライアントからの TLS セッションは me-central2 で終了します。

このシナリオでは、リージョン サービス エンドポイントに対応するパブリック VIP は、リージョンのピアリング ポイントで Google がアナウンスする IP プレフィックスから発信されます。そのため、ユーザーが KSA のローカル ISP に接続している場合、トラフィックはその管轄内でルーティングできます。

リージョン エンドポイントの形式

リージョン エンドポイントは次の形式を使用します。

SERVICE_NAME.REGION.rep.googleapis.com

プレースホルダの値は次のように定義されます。

  • SERVICE_NAME: サポートされているサービス エンドポイント名(bigquery など)。
  • REGION: サポートされている Google Cloud リージョン(me-central2 など)。

次の例は、BigQuery の完全なリージョン エンドポイントです。

bigquery.me-central2.rep.googleapis.com

サポートされているリージョンとサービス

リージョン エンドポイントは、次のリージョンでサポートされています。

リージョン名 ロケーション
me-central2 ダンマーム、サウジアラビア王国(KSA)

リージョン エンドポイントは、次のサービスでサポートされています。

サービス名 リージョン エンドポイント
Artifact Registry artifactregistry.me-central2.rep.googleapis.com
apt.me-central2.rep.pkg.dev
docker.me-central2.rep.pkg.dev
go.me-central2.rep.pkg.dev
googet.me-central2.rep.pkg.dev
kfp.me-central2.rep.pkg.dev
maven.me-central2.rep.pkg.dev
npm.me-central2.rep.pkg.dev
python.me-central2.rep.pkg.dev
yum.me-central2.rep.pkg.dev
BigQuery bigquery.me-central2.rep.googleapis.com
bigquerydatatransfer.me-central2.rep.googleapis.com
bigquerymigration.me-central2.rep.googleapis.com
bigqueryreservation.me-central2.rep.googleapis.com
bigquerystorage.me-central2.rep.googleapis.com
Bigtable bigtable.me-central2.rep.googleapis.com
Cloud Key Management Service(Cloud KMS) cloudkms.me-central2.rep.googleapis.com
Cloud Logging logging.me-central2.rep.googleapis.com
Spanner spanner.me-central2.rep.googleapis.com
Cloud Storage storage.me-central2.rep.googleapis.com
Dataflow dataflow.me-central2.rep.googleapis.com
Dataproc dataproc.me-central2.rep.googleapis.com
Pub/Sub pubsub.me-central2.rep.googleapis.com

パブリック インターネットからリージョン エンドポイントにアクセスするようにクライアントを構成する

パブリック インターネットからリージョン エンドポイントを使用するには、まず特定のリージョン エンドポイントに接続するようにクライアント(Google Cloud CLIGoogle Cloud SDK クライアント ライブラリなど)を構成する必要があります。

gcloud CLI を構成する

デフォルトでは、gcloud CLI は bigquery.googleapis.com などのグローバル サービス エンドポイントを使用します。リージョン サービス エンドポイントを使用するには、次の手順に沿って gcloud CLI を構成する必要があります。

  1. サポートされているサービスがまだ有効になっていない場合は、次のコマンドを使用して有効にします。

    gcloud services enable SERVICE_NAME

    SERVICE_NAME は、使用するサポート対象サービスの名前に置き換えます。次に例を示します。

    gcloud services enable cloudkms
  2. リージョン サービス エンドポイントを使用するには、gcloud config set api_endpoint_overrides コマンドを使用して gcloud CLI を構成する必要があります。

    gcloud config set api_endpoint_overrides/SERVICE_NAME REGIONAL_API_URL

    次の値を独自の値に置き換えます。

    • SERVICE_NAME: 使用するサポート対象サービスの名前。例: cloudkms
    • REGIONAL_API_URL: 特定のエンドポイントの URL。次に例を示します。

      https://SERVICE_NAME.REGION_NAME.rep.googleapis.com/SERVICE_NAME/API_VERSION

      次の値を独自の値に置き換えます。

      • REGION_NAME: 必要な Google Cloud リージョンの名前。例: me-central2
      • API_VERSION: 使用するサービスの API バージョン。例: v1: 一部のサービスでは、このパラメータは必須ではありません。

      REGIONAL_API_URL 値の例を次に示します。

      https://cloudkms.me-central2.rep.googleapis.com/cloudkms/v1

    まとめると、Cloud KMS の gcloud config set api_endpoint_overrides コマンドの例は次のようになります。

    gcloud config set api_endpoint_overrides/cloudkms https://cloudkms.me-central2.rep.googleapis.com/cloudkms/v1

gcloud CLI がリージョン サービス エンドポイントを使用するように構成されたため、以降のコマンドではグローバル サービス エンドポイントではなく、これがデフォルトとして使用されます。

Google Cloud SDK クライアント ライブラリを構成する

デフォルトでは、Google Cloud SDK クライアント ライブラリは pubsub.googleapis.com などのグローバル サービス エンドポイントを使用します。リージョン サービス エンドポイントを使用するには、それらを使用するように Google Cloud SDK クライアント ライブラリを構成する必要があります。

Python

google-api-core パッケージの ClientOptions クラスapi_endpoint パラメータを設定します。

from google.api_core.client_options import ClientOptions

options = ClientOptions(api_endpoint = "pubsub.me-central2.rep.googleapis.com")
client = pubsub_v1.PublisherClient(client_options=options)

// Alternatively
client = pubsub_v1.PublisherClient(client_options={"api_endpoint": "pubsub.me-central2.rep.googleapis.com")

Java

com.google.cloud.vision パッケージの ImageAnnotatorSettings クラスnewBuilder メソッドを使用します。

ImageAnnotatorSettings settings = ImageAnnotatorSettings.newBuilder()
  .setEndpoint("pubsub.me-central2.rep.googleapis.com")
  .build();
ImageAnnotatorClient client = ImageAnnotatorClient.create(settings);

Go

api パッケージの ClientOptions パッケージWithEndpoint 関数を使用します。

client, err := pubsub.NewClient(ctx, projID,
    option.WithEndpoint("pubsub.me-central2.rep.googleapis.com"), // Override endpoint

.NET

使用しているライブラリの Google.Cloud パッケージにあるクライアントの ClientBuilder クラスEndpoint プロパティを設定します。

string region = "me-central2";
var client = new DatasetServiceClientBuilder
{
    Endpoint = $"pubsub.{region}.rep.googleapis.com"
}.Build();

グローバル API エンドポイントの使用を制限する

リージョナル エンドポイントの使用を強制するには、constraints/gcp.restrictEndpointUsage 組織のポリシーの制約を使用して、グローバル API エンドポイントへのリクエストをブロックします。詳細については、エンドポイントの使用の制限をご覧ください。