このページでは、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 のユーザー アカウントまたはサービス アカウントに対する Dataproc Metastore 管理者 (
roles/metastore.admin
) - Dataproc Metastore リソースに対する完全な制御を許可する場合: Dataproc Metastore のユーザー アカウントまたはサービス アカウントに対する Dataproc Metastore 編集者(
roles/metastore.editor
) -
移行を開始する権限を付与する場合: サービス プロジェクト内の Dataproc Metastore サービス エージェントの移行管理者 (
roles/metastore.migrationAdmin
)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
プロジェクト設定に応じて追加のロールを付与する
プロジェクトの構成方法によっては、次のロールの追加が必要になる場合があります。これらのロールを適切なアカウントに付与する方法の例は、このページの前提条件のセクションに示されています。
- ネットワーク ユーザー(
roles/compute.networkUser
)のロールをサービス プロジェクトの Dataproc Metastore サービス エージェントと [Google API サービス エージェント] に付与します。 - ホスト プロジェクトの Datastream サービス エージェントにネットワーク管理者(
roles/compute.networkAdmin
)ロールを付与します。
Cloud SQL インスタンスが Dataproc Metastore サービス プロジェクトとは異なるプロジェクトにある場合:
roles/cloudsql.client
ロールとroles/cloudsql.instanceUser
ロールを Cloud SQL インスタンス プロジェクトの Dataproc Metastore サービス エージェントに付与します。
変更データ キャプチャ パイプラインの 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 が
/29
CIDR 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 はピアリング ジョブをクリーンアップできません。この場合は、自分でジョブをクリーンアップする必要があります。