リージョン 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
Managed Service for Apache Spark 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 CLI を gcloud config set api_endpoint_overrides コマンドを使用して構成する必要があります。

    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 エンドポイントへのリクエストをブロックします。詳細については、 エンドポイントの使用を制限するをご覧ください。