このページでは、Dataproc Metastore のマネージド移行の準備として Google Cloud プロジェクトを設定する方法について説明します。
始める前に
次のサービスを設定するか、アクセス権を取得します。
- Spanner データベース タイプで構成された Dataproc Metastore。
プライベート IP で構成された Cloud SQL for MySQL データベース インスタンス。Cloud SQL インスタンスの場合は、次のことを確認してください。
Cloud SQL インスタンスは、 必要なサブネットを使用する VPC ネットワークで構成されています。
Cloud SQL インスタンスは、Dataproc Metastore サービス(データのコピー先)で実行される Hive Metastore バージョンとの互換性のあるデータベース スキーマを使用しています。
Cloud SQL インスタンスには、Datastream と Dataproc Metastore、Dataproc Metastore と Cloud SQL の間の接続を確立するための適切なユーザーが含まれています。
必要なロール
Dataproc Metastore を作成してマネージド移行を開始するために必要な権限を取得するには、管理者に次の IAM ロールの付与を依頼してください。
-
すべての Dataproc Metastore リソースに対する完全アクセス権を付与する(IAM 権限の設定を含む)場合:
Dataproc Metastore 管理者 (
roles/metastore.admin) Dataproc Metastore のユーザー アカウントまたはサービス アカウントに対する -
Dataproc Metastore リソースに対する完全アクセス権を付与する場合:
Dataproc Metastore 編集者 (
roles/metastore.editor) Dataproc Metastore のユーザー アカウントまたはサービス アカウントに対する -
移行を開始する権限を付与する場合:
移行管理者 (
roles/metastore.migrationAdmin) サービス プロジェクト内の Dataproc Metastore サービス エージェント
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
プロジェクト設定に応じて追加のロールを付与する
プロジェクトの構成によっては、次の追加のロールが必要になる場合があります。これらのロールを適切なアカウントに付与する方法の例は、このページの前提条件のセクションに示されています。
- サービス プロジェクトの Dataproc Metastore サービス エージェントと [Google APIs サービス エージェント]にネットワーク ユーザー(
roles/compute.networkUser)ロールを付与します。 - ホスト プロジェクトの
Datastream サービス エージェントにネットワーク管理者(
roles/compute.networkAdmin)ロールを付与します。
Cloud SQL インスタンスが Dataproc Metastore サービス プロジェクトとは異なるプロジェクトにある場合:
- Cloud SQL インスタンス プロジェクトの Dataproc Metastore サービス エージェントに
roles/cloudsql.clientロールとroles/cloudsql.instanceUserロールを付与します。
変更データ キャプチャ パイプラインの Cloud Storage バケットが Dataproc Metastore サービス プロジェクトとは異なるプロジェクトにある場合:
- Datastream サービス エージェントにバケットへの書き込みに必要な権限があることを確認します。通常、これらは
roles/storage.objectViewer、roles/storage.objectCreator、roles/storage.legacyBucketReaderロールです。
マネージド移行の前提条件
Dataproc Metastore は、プロキシと 変更データ キャプチャ パイプラインを使用してデータ転送を容易にします。 転送を開始する前に、これらの仕組みを理解しておくことが重要です。
主な用語
- サービス プロジェクト: サービス プロジェクトは、Dataproc Metastore サービスを 作成した Google Cloud プロジェクトです。
- ホスト プロジェクト: ホスト プロジェクトは、共有 VPC ネットワークを保持する Google Cloud プロジェクトです。これらの共有ネットワークを使用するために、1 つ以上のサービス プロジェクトをホスト プロジェクトにリンクできます。詳しくは、 共有 VPC をご覧ください。
- サービス プロジェクトで Datastream API を有効にします。
サービス プロジェクトの Dataproc Metastore サービス エージェントに
roles/metastore.migrationAdminロールを付与します。gcloud projects add-iam-policy-binding SERVICE_PROJECT --role "roles/metastore.migrationAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-metastore.iam.gserviceaccount.com"
次のファイアウォール ルールを追加します。
Dataproc Metastore とプライベート IP Cloud SQL インスタンスの間に接続を確立するには:
ヘルスチェック プローブから SOCKS5 プロキシのネットワーク ロード バランサへのトラフィックを許可するファイアウォール ルール。次に例を示します。
gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK--allow=tcp:1080 --source-ranges=35.191.0.0/16,130.211.0.0/22
ポート
1080は、SOCKS5 プロキシ サーバーが実行されている場所です。ロードバランサから SOCKS5 プロキシ MIG へのトラフィックを許可するファイアウォール ルール。例:
gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK--action=ALLOW --rules=all --source-ranges=PROXY_SUBNET_RANGE
Private Service Connect サービス アタッチメントからロードバランサへのトラフィックを許可するファイアウォール ルール。例:
gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK --allow=tcp:1080 --source-ranges=NAT_SUBNET_RANGE
Datastream が
/29CIDR IP 範囲を使用してプライベート IP 接続を作成できるようにするファイアウォール ルール。例:gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK --action=ALLOW --rules=all --source-ranges=CIDR_RANGE
(省略可)共有 VPC にロールを追加する
共有 VPC を使用する場合は、次の手順に沿って操作します。
共有 VPC の詳細については、サービス プロジェクト管理をご覧ください。
ホスト プロジェクトの Dataproc Metastore サービス エージェントと Google API サービス エージェントに
roles/compute.networkUserロールを付与します。gcloud projects add-iam-policy-binding HOST_PROJECT --role "roles/compute.networkUser" --member "serviceAccount:service-SERVICE_ACCOUNT@gcp-sa-metastore.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding HOST_PROJECT --role "roles/compute.networkUser" --member "serviceAccount:SERVICE_PROJECT@cloudservices.gserviceaccount.com"
ホスト プロジェクトの Datastream サービス エージェントに
roles/compute.networkAdminロールを付与します。gcloud projects add-iam-policy-binding HOST_PROJECT --role "roles/compute.networkAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-datastream.iam.gserviceaccount.com"
roles/compute.networkAdmin ロールを付与できない場合は、
共有 VPC
の前提条件に記載されている権限を持つカスタムロールを作成します。
これらの権限は、移行の開始時に、ホスト プロジェクトの VPC ネットワークと Datastream の間にピアリングを確立するために必要です。
このロールは、移行が開始されるとすぐに削除できます。移行が完了する前にロールを削除すると、Dataproc Metastore はピアリング ジョブをクリーンアップできません。この場合は、ジョブを自分でクリーンアップする必要があります。