このページでは、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
|
| BigQuery |
bigquery.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 CLI や Google Cloud SDK クライアント ライブラリなど)を構成する必要があります。
gcloud CLI を構成する
デフォルトでは、gcloud CLI は bigquery.googleapis.com などのグローバル サービス エンドポイントを使用します。リージョン サービス エンドポイントを使用するには、次の手順に沿って gcloud CLI を構成する必要があります。
サポートされているサービスがまだ有効になっていない場合は、次のコマンドを使用して有効にします。
gcloud services enable SERVICE_NAME
SERVICE_NAME は、使用するサポート対象サービスの名前に置き換えます。次に例を示します。
gcloud services enable cloudkms
リージョン サービス エンドポイントを使用するには、
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
- REGION_NAME: 必要な Google Cloud リージョンの名前。例:
まとめると、Cloud KMS の
gcloud config set api_endpoint_overridesコマンドの例は次のようになります。gcloud config set api_endpoint_overrides/cloudkms https://cloudkms.me-central2.rep.googleapis.com/cloudkms/v1
- SERVICE_NAME: 使用するサポート対象サービスの名前。例:
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 エンドポイントへのリクエストをブロックします。詳細については、エンドポイントの使用の制限をご覧ください。