このページでは、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) |
リージョン エンドポイントは、次のサービスでサポートされています。
| サービス名 | リージョン エンドポイント |
|---|---|
| App Hub |
apphub.me-central2.rep.googleapis.com
|
| 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
|
| Managed Service for Apache Spark |
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 エンドポイントへのリクエストをブロックします。詳細については、エンドポイントの使用を制限するをご覧ください。