マネージド移行の前提条件

このページでは、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.objectViewerroles/storage.objectCreatorroles/storage.legacyBucketReader のロールです。

マネージド移行の前提条件

Dataproc Metastore は、プロキシと変更データ キャプチャ パイプラインを使用して、データ転送を容易にします。移行を開始する前に、これらの仕組みを理解しておくことが重要です。

主な用語

  • サービス プロジェクト: サービス プロジェクトは、Dataproc Metastore サービスを作成した Google Cloud プロジェクトです。
  • ホスト プロジェクト: ホスト プロジェクトは、共有 VPC ネットワークを保持する Google Cloud プロジェクトです。ホスト プロジェクトに 1 つ以上のサービス プロジェクトをリンクして、これらの共有ネットワークを使用できます。詳しくは、共有 VPC をご覧ください。
  1. サービス プロジェクトで Datastream API を有効にします
  2. サービス プロジェクトの 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"
    
  3. 次のファイアウォール ルールを追加します。

    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 の詳細については、サービス プロジェクト管理者をご覧ください。

  1. ホスト プロジェクトの 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"
    
  2. ホスト プロジェクトの 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 はピアリング ジョブをクリーンアップできません。この場合は、自分でジョブをクリーンアップする必要があります。

次のステップ