Conditions préalables à la migration gérée

Cette page explique comment configurer votre projet Google Cloud pour préparer une migration gérée Dataproc Metastore.

Avant de commencer

  • Découvrez comment fonctionne la migration gérée.

  • Configurez ou accédez aux services suivants:

    • Un métastore Dataproc configuré avec le type de base de données Spanner.
    • Instance de base de données Cloud SQL pour MySQL configurée avec une adresse IP privée. Pour l'instance Cloud SQL, vérifiez les points suivants:

      • L'instance Cloud SQL est configurée avec un réseau VPC qui utilise les sous-réseaux requis.

      • L'instance Cloud SQL utilise un schéma de base de données compatible avec la version de Hive Metastore exécutée sur le service Dataproc Metastore (où les données sont copiées).

      • L'instance Cloud SQL contient les utilisateurs appropriés pour établir une connectivité entre Datastream et Dataproc Metastore, ainsi qu'entre Dataproc Metastore et Cloud SQL.

Rôles requis

Pour obtenir les autorisations nécessaires pour créer un métastore Dataproc et démarrer une migration gérée, demandez à votre administrateur de vous accorder les rôles IAM suivants:

  • Pour accorder un accès complet à toutes les ressources Dataproc Metastore, y compris pour définir des autorisations IAM : Administrateur Dataproc Metastore (roles/metastore.admin) sur le compte utilisateur ou le compte de service Dataproc Metastore
  • Pour accorder un contrôle total sur les ressources Dataproc Metastore : Éditeur Dataproc Metastore (roles/metastore.editor) sur le compte utilisateur ou le compte de service Dataproc Metastore
  • Pour accorder l'autorisation de démarrer une migration : Migration Admin (roles/metastore.migrationAdmin) sur l'agent de service Dataproc Metastore dans le projet de service

Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Accorder des rôles supplémentaires en fonction des paramètres de votre projet

Selon la configuration de votre projet, vous devrez peut-être ajouter les rôles supplémentaires suivants. Des exemples d'attribution de ces rôles aux comptes appropriés sont présentés dans la section Conditions préalables plus loin sur cette page.

  • Attribuez le rôle Utilisateur réseau (roles/compute.networkUser) à l'agent de service Dataproc Metastore et à l'[Agent de service des API Google] du projet de service.
  • Attribuez le rôle Administrateur réseau (roles/compute.networkAdmin) à l'agent de service Datastream du projet hôte.

Si votre instance Cloud SQL se trouve dans un projet différent de celui du service Dataproc Metastore:

  • Attribuez le rôle roles/cloudsql.client et le rôle roles/cloudsql.instanceUser à l'agent de service Dataproc Metastore dans le projet d'instance Cloud SQL.

Si le bucket Cloud Storage du pipeline Change-Data-Capture se trouve dans un projet différent de celui de votre service Dataproc Metastore:

  • Assurez-vous que votre agent de service Datastream dispose des autorisations nécessaires pour écrire dans le bucket. Il s'agit généralement des rôles roles/storage.objectViewer, roles/storage.objectCreator et roles/storage.legacyBucketReader.

Conditions préalables à la migration gérée

Dataproc Metastore utilise des proxys et un pipeline de capture des données modifiées pour faciliter le transfert de données. Il est important de bien comprendre leur fonctionnement avant de commencer un transfert.

Mots clés

  • Projet de service: un projet de service est le projet Google Cloud dans lequel vous avez créé votre service Dataproc Metastore.
  • Projet hôte: projet Google Cloud qui contient vos réseaux VPC partagés. Un ou plusieurs projets de service peuvent être associés à votre projet hôte pour utiliser ces réseaux partagés. Pour en savoir plus, consultez la section VPC partagé.
  1. Activez l'API Datastream dans votre projet de service.
  2. Attribuez le rôle roles/metastore.migrationAdmin à l'agent de service Dataproc Metastore dans votre projet de service.

    gcloud projects add-iam-policy-binding SERVICE_PROJECT --role "roles/metastore.migrationAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-metastore.iam.gserviceaccount.com"
    
  3. Ajoutez les règles de pare-feu suivantes.

    Établir une connexion entre Dataproc Metastore et votre instance Cloud SQL à adresse IP privée

    • Une règle de pare-feu pour autoriser le trafic provenant de la sonde de vérification de l'état à l'équilibreur de charge réseau du proxy SOCKS5. Exemple :

      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
      

      Le port 1080 est celui sur lequel le serveur proxy SOCKS5 est exécuté.

    • Une règle de pare-feu pour autoriser le trafic de l'équilibreur de charge vers le MIG du proxy SOCKS5 Exemple :

      gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK--action=ALLOW --rules=all --source-ranges=PROXY_SUBNET_RANGE
      
    • Règle de pare-feu pour autoriser le trafic provenant du rattachement de service Private Service Connect vers l'équilibreur de charge. Exemple :

      gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK --allow=tcp:1080 --source-ranges=NAT_SUBNET_RANGE
      

    Une règle de pare-feu permettant à Datastream d'utiliser la plage d'adresses IP CIDR /29 pour créer une connexion IP privée. Exemple :

    gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK --action=ALLOW --rules=all --source-ranges=CIDR_RANGE
    

(Facultatif) Ajouter des rôles au VPC partagé

Suivez ces étapes si vous utilisez un VPC partagé.

Pour en savoir plus sur un VPC partagé, consultez la section Administrateurs de projet de service.

  1. Attribuez le rôle roles/compute.networkUser à l'agent de service Dataproc Metastore et à l'agent de service des API Google dans le projet hôte.

    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. Accordez le rôle roles/compute.networkAdmin à l'agent de service Datastream dans le projet hôte.

    gcloud projects add-iam-policy-binding HOST_PROJECT --role "roles/compute.networkAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-datastream.iam.gserviceaccount.com"
    

Si vous ne pouvez pas accorder le rôle roles/compute.networkAdmin, créez un rôle personnalisé avec les autorisations listées dans les Conditions préalables pour le VPC partagé.

  • Ces autorisations sont requises au début de la migration pour établir un appariement entre le réseau VPC du projet hôte et Datastream.

  • Ce rôle peut être supprimé dès le début de la migration. Si vous supprimez le rôle avant la fin de la migration, Dataproc Metastore ne peut pas nettoyer la tâche d'association. Dans ce cas, vous devez nettoyer la tâche vous-même.

Étape suivante