Requisitos previos para la migración administrada

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

Antes de comenzar

Funciones requeridas

A fin de obtener los permisos que necesitas para crear un Dataproc Metastore 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, haz lo siguiente: 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, sigue estos pasos: Editor de Dataproc Metastore (roles/metastore.editor) en la cuenta de usuario o de servicio de Dataproc Metastore
  • Si deseas otorgar permiso para iniciar una migración, haz lo siguiente: Administrador de migración (roles/metastore.migrationAdmin) en el agente de servicio de Dataproc Metastore en el proyecto de servicio

Si quieres obtener más información para otorgar roles, consulta Administra el acceso.

Es posible que también puedas obtener los permisos necesarios a través de funciones personalizadas o, también, otras funciones predefinidas.

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

Según la configuración de tu proyecto, es posible que debas agregar las siguientes funciones adicionales. Los ejemplos sobre cómo otorgar estas funciones a las cuentas adecuadas se muestran en la sección de requisitos previos más adelante en esta página.

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

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

Si el bucket de Cloud Storage para la canalización de captura de datos modificados está en un proyecto diferente al de tu proyecto de servicio de Dataproc Metastore, haz lo siguiente:

  • Asegúrate de que tu 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

Para facilitar la transferencia de datos, Dataproc Metastore utiliza proxies y una canalización de captura de datos modificados. Es importante comprender cómo funcionan antes de comenzar 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 al 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 la función 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 IP privada de Cloud SQL

    • 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 desde el balanceador de cargas al MIG del 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 PSC 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 de 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
    

Pasos si usas una VPC compartida (opcional)

Sigue estos pasos si usas una configuración de VPC compartida.

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

  1. Otorga la función 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 la función 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 la función roles/compute.networkAdmin, crea una función personalizada con los permisos enumerados en Requisitos previos de la VPC compartida.

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

  • Este rol se puede quitar en cuanto comience la migración. Sin embargo, si quitas la función antes de que se complete la migración, Dataproc Metastore no podrá limpiar el trabajo de intercambio de tráfico. En este caso, debes limpiar el trabajo tú mismo.

Consideraciones de proxy y canalización

Proxies

Dataproc Metastore usa un proxy de autenticación de Cloud SQL encadenado a un proxy SOCKS5 para conectarse a tu instancia de IP privada de Cloud SQL. Los servidores proxy SOCKS5 se exponen a través de un adjunto de servicio, como se muestra en el diagrama de arquitectura sobre las migraciones administradas.

  • Dado que una subred NAT no puede tener más de 1 adjunto de servicio, cada migración requiere una subred NAT dedicada.

  • A fin de evitar problemas de latencia entre regiones, proporciona subredes que se encuentren en la misma región que tu instancia de Cloud SQL para alojar el proxy SOCKS5. Por ejemplo, proxy_subnet y nat_subnet

Canalización de captura de datos modificados

Para la canalización de captura de datos modificados, se establece una conexión de Cloud SQL con una IP privada y Datastream mediante el intercambio de tráfico entre VPC.

  • Para cada migración, se crea una conexión privada nueva y se establece una conexión de intercambio de tráfico nueva.

  • La red de VPC que aloja la instancia de Cloud SQL tiene tantas conexiones de intercambio de tráfico como migraciones activas. Asegúrate de que la red de VPC tenga la capacidad de alojar todas las conexiones de intercambio de tráfico necesarias.

¿Qué sigue?