Dataproc は、単一のグローバル エンドポイントと Compute Engine ゾーンに基づくリージョン エンドポイントの両方をサポートします。
グローバル エンドポイント: グローバル エンドポイントとは、ユーザー指定の Compute Engine ゾーン内の Dataproc リソースとやり取りできる特別なマルチリージョンの名前空間です。
リージョン エンドポイント: 各 Dataproc リージョンは、リージョン内の Compute Engine ゾーンへのインスタンスのデプロイに制約される独立したリソース名前空間を構成します。また、個別のリージョン(「us-east1」や「europe-west1」など)を複数指定することで、Dataproc によって利用されるリソース(VM インスタンス、Cloud Storage など)とメタデータの保存場所をユーザーが指定したリージョンごとに分離することもできます。このことは、Dataproc の基になる(コントロール プレーンを含む)インフラストラクチャがリージョンごとにデプロイされるために可能となっています。リージョンの名前空間は、参照される Dataproc リソース URI の /regions/<region>
セグメントに対応します。
リージョン エンドポイントのメリット:
- Dataproc を複数のリージョンで使用する場合、リージョン エンドポイントを指定すると、リージョンの分離と保護について向上がみられる可能性があります。
- 「グローバルな」マルチリージョンの名前空間よりもリージョン エンドポイントを(特に、地理に基づいて)選択する方が、パフォーマンスが向上する場合があります。
- クラスタの作成時にリージョン エンドポイントを指定する場合、そのリージョン内のゾーンを指定する必要はありません。Dataproc の自動ゾーン プレースメントによってゾーンが選択されます。
リージョン エンドポイントのセマンティクス
リージョン エンドポイントの名前は、Compute Engine ゾーンに基づく標準の命名規則に従います。たとえば、中央アメリカのリージョン名は us-central1
、西ヨーロッパのリージョン名は europe-west1
です。gcloud compute regions list
コマンドを使用して、利用可能なリージョンのリストを表示します。
リージョン エンドポイントの使用
gcloud
--region
フラグを指定して gcloud
コマンドライン ツールを使用し、リージョンまたはマルチリージョンのエンドポイントを指定します。
gcloud dataproc clusters create cluster-name \ --region=region \ other args ...
REST API
clusters.create リクエストで region
URL パラメータを使用して、クラスタのリージョンまたは「グローバル」なマルチリージョンのエンドポイントを指定します。グローバル エンドポイントのリクエスト本文に zoneUri
パラメータを指定する必要があります。リージョン エンドポイントのゾーンを指定するか、空のままにして、Dataproc の Dataproc 自動ゾーン プレースメントがクラスタのゾーンを選択できるようにします。
gRPC
デフォルトの gRPC エンドポイントは、global
マルチリージョン名前空間にアクセスします。リージョン エンドポイントを使用するには、次のパターンを使用して、エンドポイントをクライアントのトランスポートのアドレスに構成します。
region-dataproc.googleapis.com
Python(google-cloud-python)の例:
from google.cloud import dataproc_v1
from google.cloud.dataproc_v1.gapic.transports import cluster_controller_grpc_transport
transport = cluster_controller_grpc_transport.ClusterControllerGrpcTransport(
address='us-central1-dataproc.googleapis.com:443')
client = dataproc_v1.ClusterControllerClient(transport)
project_id = 'my-project'
region = 'us-central1'
cluster = {...}
Java(google-cloud-java)の例:
ClusterControllerSettings settings =
ClusterControllerSettings.newBuilder()
.setEndpoint("us-central1-dataproc.googleapis.com:443")
.build();
try (ClusterControllerClient clusterControllerClient = ClusterControllerClient.create(settings)) {
String projectId = "my-project";
String region = "us-central1";
Cluster cluster = Cluster.newBuilder().build();
Cluster response =
clusterControllerClient.createClusterAsync(projectId, region, cluster).get();
}
Console
Cloud Console で、Dataproc の [クラスタの作成] ページにある [クラスタの設定] パネルの [ロケーション] セクションで Dataproc リージョンを指定します。
次のステップ
- 地域とリージョン
- Compute Engine → リージョンとゾーン
- Compute Engine → グローバル リソース、リージョン リソース、ゾーンリソース
- Dataproc 自動ゾーン プレースメント