Requisitos previos para la migración administrada

En esta página, se muestra cómo configurar tu proyecto de Google Cloud para prepararte para una migración administrada de Dataproc Metastore.

Antes de comenzar

  • Comprende cómo funciona la migración administrada.

  • Configurar o tener acceso a los siguientes servicios:

    • Un Dataproc Metastore configurado con el tipo de base de datos Spanner
    • Una instancia de base de datos de Cloud SQL para MySQL configurada con IP privada Para la instancia de Cloud SQL, asegúrate de lo siguiente:

      • La instancia de Cloud SQL está configurada con una red de VPC que usa las subredes requeridas.

      • La instancia de Cloud SQL usa un esquema de base de datos que es compatible con la versión de Hive Metastore que se ejecuta en el servicio de Dataproc Metastore (al que se copian los datos).

      • La instancia de Cloud SQL contiene los usuarios adecuados para establecer conectividad entre Datastream y Dataproc Metastore, y entre Dataproc Metastore y Cloud SQL.

Funciones requeridas

Para obtener los permisos que necesitas para crear un metastore de Dataproc y comenzar una migración administrada, pídele a tu administrador que te otorgue los siguientes roles de IAM:

  • Para otorgar acceso completo a todos los recursos de Dataproc Metastore, incluida la configuración de permisos de IAM, usa el rol de administrador de Dataproc Metastore (roles/metastore.admin) en la cuenta de usuario o de servicio de Dataproc Metastore.
  • Para otorgar control total de los recursos de Dataproc Metastore, usa el Editor de Dataproc Metastore (roles/metastore.editor) en la cuenta de usuario o de servicio de Dataproc Metastore.
  • Para otorgar permiso para iniciar una migración, usa el rol Administrador de migración (roles/metastore.migrationAdmin) en el agente de servicio de Dataproc Metastore en el proyecto de servicio.

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Otorga roles adicionales según la configuración de tu proyecto

Según cómo esté configurado tu proyecto, es posible que debas agregar los siguientes roles adicionales. En la sección Requisitos previos, que se encuentra más adelante en esta página, se muestran ejemplos sobre cómo otorgar estos roles a las cuentas adecuadas.

  • Otorga el rol de usuario de red (roles/compute.networkUser) al agente de servicio de Dataproc Metastore y al [Agente de servicio de las APIs de Google] en el proyecto de servicio.
  • Otorga el rol de administrador de red (roles/compute.networkAdmin) al agente de servicio de Datastream en el proyecto host.

Si tu instancia de Cloud SQL se encuentra en un proyecto diferente al proyecto de servicio de Dataproc Metastore, haz lo siguiente:

  • Otorga los roles roles/cloudsql.client y roles/cloudsql.instanceUser al agente de servicio de Dataproc Metastore en el proyecto de la instancia de Cloud SQL.

Si el bucket de Cloud Storage de la canalización de Change-Data-Capture está en un proyecto diferente al de tu servicio de Dataproc Metastore, haz lo siguiente:

  • Asegúrate de que el agente de servicio de Datastream tenga los permisos necesarios para escribir en el bucket. Por lo general, estos son los roles roles/storage.objectViewer, roles/storage.objectCreator y roles/storage.legacyBucketReader.

Requisitos previos para la migración administrada

Dataproc Metastore usa proxies y una canalización de captura de datos modificados para facilitar la transferencia de datos. Es importante comprender cómo funcionan antes de iniciar una transferencia.

Términos clave

  • Proyecto de servicio: Un proyecto de servicio es el proyecto de Google Cloud en el que creaste tu servicio de Dataproc Metastore.
  • Proyecto host: Un proyecto host es el proyecto de Google Cloud que contiene tus redes de VPC compartida. Se pueden vincular uno o más proyectos de servicio a tu proyecto host para usar estas redes compartidas. Para obtener más información, consulta VPC compartida.
  1. Habilita la API de Datastream en tu proyecto de servicio.
  2. Otorga el rol roles/metastore.migrationAdmin al agente de servicio de Dataproc Metastore en tu proyecto de servicio.

    gcloud projects add-iam-policy-binding SERVICE_PROJECT --role "roles/metastore.migrationAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-metastore.iam.gserviceaccount.com"
    
  3. Agrega las siguientes reglas de firewall.

    Para establecer una conexión entre Dataproc Metastore y tu instancia de Cloud SQL con IP privada.

    • Una regla de firewall para permitir el tráfico del sondeo de verificación de estado al balanceador de cargas de red del proxy SOCKS5 Por ejemplo:

      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
      

      El puerto 1080 es donde se ejecuta el servidor proxy SOCKS5.

    • Una regla de firewall para permitir el tráfico del balanceador de cargas al MIG de proxy SOCKS5 Por ejemplo:

      gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK--action=ALLOW --rules=all --source-ranges=PROXY_SUBNET_RANGE
      
    • Una regla de firewall para permitir el tráfico del adjunto de servicio de Private Service Connect al balanceador de cargas Por ejemplo:

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

    Una regla de firewall para permitir que Datastream use el rango de IP CIDR /29 para crear una conexión de IP privada Por ejemplo:

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

Agrega roles a la VPC compartida (opcional)

Sigue estos pasos si usas una VPC compartida.

Para obtener más detalles sobre una VPC compartida, consulta Administradores de proyectos de servicio.

  1. Otorga el rol roles/compute.networkUser al agente de servicio de Dataproc Metastore y al agente de servicio de la API de Google en el proyecto host.

    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. Otorga el rol roles/compute.networkAdmin al agente de servicio de Datastream en el proyecto host.

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

Si no puedes otorgar el rol roles/compute.networkAdmin, crea un rol personalizado con los permisos que se indican en los requisitos previos de la VPC compartida.

  • Estos permisos son necesarios al comienzo de la migración para establecer el intercambio de tráfico entre la red de VPC en el proyecto host con Datastream.

  • Este rol se puede quitar en cuanto se inicia la migración. Si quitas el rol antes de que se complete la migración, Dataproc Metastore no podrá limpiar el trabajo de vinculación. En este caso, debes limpiar la tarea por tu cuenta.

¿Qué sigue?