Migrar de AWS a Google Cloud: migrar de Amazon EC2 a Compute Engine

Last reviewed 2024-11-20 UTC

Google Cloud proporciona herramientas, productos, guías y servicios profesionales para migrar máquinas virtuales (VM) junto con sus datos de Amazon Elastic Compute Cloud (Amazon EC2) a Compute Engine. En este documento se explica cómo diseñar, implementar y validar un plan para migrar de Amazon EC2 a Compute Engine.

La información de este documento está dirigida a administradores de la nube que quieran obtener detalles sobre cómo planificar e implementar un proceso de migración. También está dirigido a los responsables de la toma de decisiones que están evaluando la oportunidad de migrar y que quieren saber cómo sería la migración.

Este documento forma parte de una serie de artículos sobre la migración de AWS aGoogle Cloud , que incluye los siguientes documentos:

Para llevar a cabo esta migración a Google Cloud, te recomendamos que sigas el framework de migración descrito en el artículo Migrar a Google Cloud: primeros pasos.

En el siguiente diagrama se muestra el recorrido de tu migración.

Ruta de migración con cuatro fases.

Puedes migrar de tu entorno de origen a Google Cloud en una serie de iteraciones. Por ejemplo, puedes migrar algunas cargas de trabajo primero y otras más adelante. En cada iteración de migración independiente, debes seguir las fases del marco de migración general:

  1. Evalúa e identifica tus cargas de trabajo y datos.
  2. Planifica y construye una base sobre Google Cloud.
  3. Migra tus cargas de trabajo y datos a Google Cloud.
  4. Optimiza tu Google Cloud entorno.

Para obtener más información sobre las fases de este marco, consulta el artículo Migrar a Google Cloud: primeros pasos.

Para diseñar un plan de migración eficaz, te recomendamos que valides cada paso del plan y que tengas una estrategia de restauración. Para validar tu plan de migración, consulta el artículo Migrar a Google Cloud: prácticas recomendadas para validar un plan de migración.

Evaluar el entorno de origen

En la fase de evaluación, determinas los requisitos y las dependencias para migrar tu entorno de origen a Google Cloud.

La fase de evaluación es fundamental para que la migración se lleve a cabo correctamente. Debes conocer en profundidad las cargas de trabajo que quieres migrar, sus requisitos, sus dependencias y tu entorno actual. Para planificar y llevar a cabo una migración correctamente, debes conocer tu punto de partida. Google Cloud

La fase de evaluación consta de las siguientes tareas:

  1. Crea un inventario completo de tus cargas de trabajo.
  2. Cataloga tus cargas de trabajo según sus propiedades y dependencias.
  3. Forma y educa a tus equipos sobre Google Cloud.
  4. Crea experimentos y pruebas de concepto en Google Cloud.
  5. Calcula el coste total de propiedad (CTP) del entorno de destino.
  6. Elige la estrategia de migración de tus cargas de trabajo.
  7. Elige las herramientas de migración.
  8. Define el plan y la cronología de la migración.
  9. Valida tu plan de migración.

Para obtener más información sobre la fase de evaluación y estas tareas, consulta el artículo Migración a Google Cloud: evaluar e identificar cargas de trabajo. Las siguientes secciones se basan en la información de ese documento.

Crear un inventario de tus instancias de Amazon EC2

Para definir el alcance de la migración, crea un inventario de tus instancias de Amazon EC2. Después, puedes usar el inventario para evaluar los procesos de implementación y operativos de implementación de cargas de trabajo en esas instancias.

Para crear el inventario de tus instancias de Amazon EC2, te recomendamos que uses Migration Center, la plataforma unificada deGoogle Cloudque te ayuda a agilizar tu migración a la nube de principio a fin desde tu entorno actual hasta Google Cloud. Migration Center le permite ejecutar un descubrimiento de inventario en AWS.

Es posible que los datos que proporcionan Migration Center y la CLI del cliente de detección de Migration Center no reflejen por completo las dimensiones que te interesan. En ese caso, puedes integrar esos datos con los resultados de otros mecanismos de recogida de datos que crees y que se basen en las APIs de AWS, las herramientas para desarrolladores de AWS y la interfaz de línea de comandos de AWS.

Además de los datos que obtiene de Migration Center y de la CLI del cliente de detección de Migration Center, tenga en cuenta los siguientes puntos de datos de cada instancia de Amazon EC2 que quiera migrar:

  • Región y zona de implementación.
  • Tipo y tamaño de la instancia.
  • La imagen de máquina de Amazon (AMI) desde la que se inicia la instancia.
  • El nombre de host de la instancia y cómo otras instancias y cargas de trabajo usan este nombre de host para comunicarse con la instancia.
  • Las etiquetas de instancia, así como los metadatos y los datos de usuario.
  • Tipo de virtualización de la instancia.
  • La opción de compra de la instancia, como la compra bajo demanda o la compra de instancia de spot.
  • Cómo almacena los datos la instancia, por ejemplo, mediante almacenes de instancias y volúmenes de Amazon EBS.
  • Configuración del alquiler de la instancia.
  • Indica si la instancia está en un grupo de emplazamientos específico.
  • Indica si la instancia pertenece a un grupo de autoescalado específico.
  • Los grupos de seguridad a los que pertenece la instancia.
  • Cualquier configuración de AWS Network Firewall que implique la instancia.
  • Indica si las cargas de trabajo que se ejecutan en la instancia están protegidas por AWS Shield y AWS WAF.
  • Si controlas el estado del procesador de tu instancia y cómo dependen las cargas de trabajo que se ejecutan en la instancia del estado del procesador.
  • La configuración del programador de E/S de la instancia.
  • Cómo expones las cargas de trabajo que se ejecutan en la instancia a los clientes que se ejecutan en tu entorno de AWS (como otras cargas de trabajo) y a los clientes externos.

Evalúa tus procesos de implementación y operativos

Es importante que tengas claro cómo funcionan tus procesos de implementación y operativos. Estos procesos son una parte fundamental de las prácticas que preparan y mantienen tu entorno de producción y las cargas de trabajo que se ejecutan en él.

Tus procesos de implementación y operativos pueden crear los artefactos que necesitan tus cargas de trabajo para funcionar. Por lo tanto, debes recoger información sobre cada tipo de artefacto. Por ejemplo, un artefacto puede ser un paquete de sistema operativo, un paquete de despliegue de aplicaciones, una imagen de sistema operativo, una imagen de contenedor u otro elemento.

Además del tipo de artefacto, ten en cuenta cómo completas las siguientes tareas:

  • Desarrolla tus cargas de trabajo. Evalúa los procesos que tienen los equipos de desarrollo para crear tus cargas de trabajo. Por ejemplo, ¿cómo diseñan, codifican y prueban tus equipos de desarrollo las cargas de trabajo?
  • Genera los artefactos que vas a implementar en tu entorno de origen. Para implementar tus cargas de trabajo en el entorno de origen, puedes generar artefactos implementables, como imágenes de contenedor o imágenes de sistema operativo, o personalizar artefactos, como imágenes de sistema operativo de terceros, instalando y configurando software. Recopilar información sobre cómo generas estos artefactos te ayuda a asegurarte de que sean adecuados para implementarlos enGoogle Cloud.
  • Almacena los artefactos. Si produces artefactos que almacenas en un registro de artefactos de tu entorno de origen, debes hacer que estén disponibles en tu entorno de destino. Google Cloud Para ello, puedes emplear estrategias como las siguientes:

    • Establece un canal de comunicación entre los entornos: haz que los artefactos de tu entorno de origen sean accesibles desde el entorno de destino.Google Cloud
    • Refactorizar el proceso de compilación de artefactos: completa una refactorización menor de tu entorno de origen para que puedas almacenar artefactos tanto en el entorno de origen como en el de destino. Este enfoque facilita la migración, ya que crea una infraestructura, como un repositorio de artefactos, antes de que tengas que implementar procesos de compilación de artefactos en el entorno de destino Google Cloud. Puedes implementar este enfoque directamente o basarte en el enfoque anterior de establecer primero un canal de comunicación.

    Si los artefactos están disponibles tanto en el entorno de origen como en el de destino, puedes centrarte en la migración sin tener que implementar procesos de compilación de artefactos en el entorno de destino Google Cloud como parte de la migración.

  • Escanear y firmar código. Como parte de los procesos de compilación de artefactos, puedes usar el análisis de código para protegerte frente a vulnerabilidades comunes y exposiciones de red no deseadas, así como la firma de código para asegurarte de que solo se ejecute código de confianza en tus entornos.

  • Despliega artefactos en tu entorno de origen. Después de generar artefactos implementables, es posible que los implementes en tu entorno de origen. Te recomendamos que evalúes cada proceso de implementación. La evaluación ayuda a asegurar que tus procesos de implementación sean compatibles con Google Cloud. También te ayuda a entender el esfuerzo que será necesario para refactorizar los procesos. Por ejemplo, si tus procesos de implementación solo funcionan con tu entorno de origen, es posible que tengas que refactorizarlos para que se dirijan a tu entorno de Google Cloud .

  • Inyectar configuración de tiempo de ejecución. Puede que estés insertando una configuración de tiempo de ejecución para clústeres, entornos de tiempo de ejecución o implementaciones de cargas de trabajo específicos. La configuración puede inicializar variables de entorno y otros valores de configuración, como secretos, credenciales y claves. Para asegurarte de que los procesos de inyección de configuración de tiempo de ejecución funcionan en Google Cloud, te recomendamos que evalúes cómo configuras las cargas de trabajo que se ejecutan en tu entorno de origen.

  • Registro, monitorización y creación de perfiles. Evalúa los procesos de registro, monitorización y creación de perfiles que tienes implementados para monitorizar el estado de tu entorno de origen, las métricas de interés y cómo consumes los datos proporcionados por estos procesos.

  • Autenticación. Evalúa cómo te autenticas en tu entorno de origen.

  • Aprovisiona y configura tus recursos. Para preparar tu entorno de origen, es posible que hayas diseñado e implementado procesos que aprovisionen y configuren recursos. Por ejemplo, puedes usar Terraform junto con herramientas de gestión de la configuración para aprovisionar y configurar recursos en tu entorno de origen.

Planifica y construye tu base

En la fase de planificación y creación, aprovisionas y configuras la infraestructura para hacer lo siguiente:

  • Compatibilidad con tus cargas de trabajo en tu Google Cloud entorno.
  • Conecta tu entorno de origen y tu entorno de Google Cloud para completar la migración.

La fase de planificación y creación se compone de las siguientes tareas:

  1. Crea una jerarquía de recursos.
  2. Configura la gestión de identidades y accesos (IAM) de Google Cloud.
  3. Configura la facturación
  4. Configura la conectividad de red.
  5. Refuerza tu seguridad.
  6. Configura el almacenamiento de registros, la monitorización y las alertas.

Para obtener más información sobre cada una de estas tareas, consulta el artículo Migrar a Google Cloud: planificar y crear la base.

Migra tus cargas de trabajo

Para migrar tus cargas de trabajo de Amazon EC2 a Compute Engine, haz lo siguiente:

  1. Migra máquinas virtuales de Amazon EC2 a Compute Engine.
  2. Migra los discos de tus VMs a Persistent Disk.
  3. Expone las cargas de trabajo que se ejecutan en Compute Engine a los clientes.
  4. Refactoriza los procesos de implementación y operativos para que se dirijan aGoogle Cloud en lugar de a Amazon EC2.

En las siguientes secciones se ofrecen detalles sobre cada una de estas tareas.

Migrar tus máquinas virtuales a Compute Engine

Para migrar VMs de Amazon EC2 a Compute Engine, te recomendamos que uses Migrate to Virtual Machines, un servicio totalmente gestionado. Para obtener más información, consulta el artículo Proceso de migración con Migrate to VMs.

Como parte de la migración, Migrate for VMs migra las instancias de Amazon EC2 en su estado actual, excepto los cambios de configuración obligatorios. Si tus instancias de Amazon EC2 ejecutan AMIs de Amazon EC2 personalizadas, Migrate for VMs migra estas personalizaciones a instancias de Compute Engine. Sin embargo, si quieres que tu infraestructura sea reproducible, es posible que tengas que aplicar personalizaciones equivalentes creando imágenes de sistema operativo de Compute Engine como parte de tus procesos de despliegue y operativos, tal como se explica más adelante en este documento.

Migrar los discos de tus máquinas virtuales a Persistent Disk

También puedes usar Migrate to VMs para migrar discos de tus VMs de Amazon EC2 de origen a Persistent Disk, con interrupciones mínimas en las cargas de trabajo que se ejecutan en las VMs de Amazon EC2. Para obtener más información, consulta Migrar discos de VM y conectarlos a una VM nueva.

Por ejemplo, puedes migrar un disco de datos conectado a una VM de Amazon EC2 a un disco persistente y conectarlo a una nueva VM de Compute Engine.

Exponer cargas de trabajo que se ejecutan en Compute Engine

Después de migrar tus instancias de Amazon EC2 a instancias de Compute Engine, es posible que tengas que aprovisionar y configurar tu entorno de Google Cloud para exponer las cargas de trabajo a los clientes.

Google Cloud ofrece servicios y productos seguros y fiables para exponer tus cargas de trabajo a los clientes. En el caso de las cargas de trabajo que se ejecutan en tus instancias de Compute Engine, puedes configurar recursos de las siguientes categorías:

  • Cortafuegos
  • Balanceo de carga de tráfico
  • Nombres, zonas y registros DNS
  • Protección frente a DDoS y cortafuegos de aplicaciones web

En cada una de estas categorías, puedes empezar implementando una configuración de referencia similar a la que usaste para configurar los servicios y recursos de AWS en la categoría equivalente. Después, puedes iterar en la configuración y usar funciones adicionales que proporcionan los servicios de Google Cloud .

En las siguientes secciones se explica cómo aprovisionar y configurar recursos deGoogle Cloud en estas categorías, así como la correspondencia con los recursos de AWS en categorías similares.

Cortafuegos

Si has configurado grupos de seguridad de AWS y políticas y reglas de cortafuegos de red de AWS, puedes configurar políticas y reglas de cortafuegos de nueva generación de Cloud. También puedes aprovisionar reglas de Controles de Servicio de VPC para regular el tráfico de red dentro de tu VPC. Puedes usar Controles de Servicio de VPC para controlar el tráfico saliente de tus instancias de Compute Engine y mitigar el riesgo de filtración externa de datos.

Por ejemplo, si usas grupos de seguridad de AWS para permitir o denegar conexiones a tus instancias de Amazon EC2, puedes configurar reglas de cortafuegos de nube privada virtual (VPC) similares que se apliquen a tus instancias de Compute Engine.

Si usas protocolos de acceso remoto, como SSH o RDP, para conectarte a tus máquinas virtuales de Amazon EC2, puedes quitar la dirección IP pública de la máquina virtual y conectarte a ella de forma remota con Identity-Aware Proxy (IAP). El reenvío de TCP de IAP te permite establecer un túnel cifrado. Puedes usar el túnel para reenviar tráfico SSH, RDP y otro tráfico de Internet a las VMs sin asignarles direcciones IP públicas. Como las conexiones del servicio IAP proceden de un intervalo de direcciones IP públicas reservado, debes crear reglas de cortafuegos de VPC coincidentes. Si tienes máquinas virtuales basadas en Windows y has activado el Firewall de Windows, comprueba que no esté configurado para bloquear las conexiones RDP de IAP. Para obtener más información, consulta Solucionar problemas de RDP.

Balanceo de carga de tráfico

Si has configurado Elastic Load Balancing (ELB) en tu entorno de AWS, puedes configurar Cloud Load Balancing para distribuir el tráfico de red y mejorar la escalabilidad de tus cargas de trabajo en Google Cloud. Cloud Load Balancing admite varios productos de balanceo de carga globales y regionales que funcionan en diferentes capas del modelo OSI, como la capa de transporte y la capa de aplicación. Puedes elegir un producto de balanceo de carga que se adapte a los requisitos de tus cargas de trabajo.

Cloud Load Balancing también admite la configuración de Seguridad en la capa de transporte (TLS) para cifrar el tráfico de red. Cuando configuras TLS para Cloud Load Balancing, puedes usar certificados TLS autogestionados o gestionados por Google, según tus necesidades.

Nombres, zonas y registros DNS

Si usas Amazon Route 53 en tu entorno de AWS, puedes usar lo siguiente en Google Cloud:

Por ejemplo, si has registrado un dominio con Amazon Route 53, puedes transferir el registro del dominio a Cloud Domains. Del mismo modo, si has configurado zonas DNS públicas y privadas con Amazon Route 53, puedes migrar esa configuración a Cloud DNS.

Protección frente a DDoS y cortafuegos de aplicaciones web

Si has configurado AWS Shield y AWS WAF en tu entorno de AWS, puedes usar Google Cloud Armor para proteger tus cargas de trabajo Google Cloud frente a ataques DDoS y vulnerabilidades comunes.

Refactorizar los procesos de implementación y operativos

Después de refactorizar tus cargas de trabajo, refactoriza tus procesos de implementación y operativos para hacer lo siguiente:

  • Aprovisiona y configura recursos en tu Google Cloud entorno en lugar de aprovisionar recursos en tu entorno de origen.
  • Crea y configura cargas de trabajo, e impleméntalas en tu Google Cloud en lugar de hacerlo en tu entorno de origen.

Ha recogido información sobre estos procesos durante la fase de evaluación, que se ha llevado a cabo anteriormente en este proceso.

El tipo de refactorización que debes tener en cuenta para estos procesos depende de cómo los hayas diseñado e implementado. La refactorización también depende del estado final que quieras conseguir en cada proceso. Por ejemplo, plantéate lo siguiente:

  • Es posible que hayas implementado estos procesos en tu entorno de origen y que tengas la intención de diseñar e implementar procesos similares en Google Cloud. Por ejemplo, puedes refactorizar estos procesos para usar Cloud Build, Cloud Deploy e Infrastructure Manager.
  • Es posible que hayas implementado estos procesos en otro entorno de terceros fuera de tu entorno de origen. En este caso, debes refactorizar estos procesos para que se dirijan a tu entorno de Google Cloud en lugar de a tu entorno de origen.
  • Una combinación de los enfoques anteriores.

Refactorizar los procesos de implementación y operativos puede ser complejo y requerir un esfuerzo considerable. Si intentas realizar estas tareas como parte de la migración de tu carga de trabajo, la migración puede volverse más compleja y exponerte a riesgos. Después de evaluar los procesos de implementación y operativos, probablemente tengas una idea de su diseño y complejidad. Si crees que necesitas dedicar mucho tiempo a refactorizar tu implementación y tus procesos operativos, te recomendamos que lo hagas en un proyecto independiente.

Para obtener más información sobre cómo diseñar e implementar procesos de implementación en Google Cloud, consulta los siguientes artículos:

Este documento se centra en los procesos de implementación que generan los artefactos que se van a implementar y en cómo implementarlos en el entorno de ejecución de destino. La estrategia de refactorización depende en gran medida de la complejidad de estos procesos. En la siguiente lista se describe una posible estrategia general de refactorización:

  1. Aprovisiona repositorios de artefactos en Google Cloud. Por ejemplo, puedes usar Artifact Registry para almacenar artefactos y compilar dependencias.
  2. Refactoriza tus procesos de compilación para almacenar artefactos tanto en tu entorno de origen como en Artifact Registry.
  3. Refactoriza tus procesos de implementación para implementar tus cargas de trabajo en tu entorno de destinoGoogle Cloud . Por ejemplo, puedes empezar desplegando un pequeño subconjunto de tus cargas de trabajo en Google Cloudcon artefactos almacenados en Artifact Registry. Después, aumenta gradualmente el número de cargas de trabajo implementadas en Google Cloudhasta que todas las cargas de trabajo que quieras migrar se ejecuten enGoogle Cloud.
  4. Refactoriza tus procesos de compilación para almacenar artefactos solo en Artifact Registry.
  5. Si es necesario, migra versiones anteriores de los artefactos para implementarlos desde los repositorios de tu entorno de origen a Artifact Registry. Por ejemplo, puedes copiar imágenes de contenedor en Artifact Registry.
  6. Retira los repositorios de tu entorno de origen cuando ya no los necesites.

Para facilitar las reversiones que puedan ser necesarias debido a problemas imprevistos durante la migración, puedes almacenar imágenes de contenedor tanto en tus repositorios de artefactos actuales en Google Cloud mientras se lleva a cabo la migración a Google Cloud . Por último, como parte de la retirada del servicio de tu entorno de origen, puedes refactorizar tus procesos de compilación de imágenes de contenedor para almacenar artefactos solo enGoogle Cloud .

Aunque no sea crucial para que la migración se lleve a cabo correctamente, es posible que tengas que migrar las versiones anteriores de tus artefactos del entorno de origen a tus repositorios de artefactos en Google Cloud. Por ejemplo, para admitir la restauración de tus cargas de trabajo a puntos arbitrarios en el tiempo, es posible que tengas que migrar versiones anteriores de tus artefactos a Artifact Registry. Para obtener más información, consulta Migrar imágenes desde un registro de terceros.

Si usas Artifact Registry para almacenar tus artefactos, te recomendamos que configures controles para proteger tus repositorios de artefactos, como el control de acceso, la prevención de la exfiltración de datos, el análisis de vulnerabilidades y Binary Authorization. Para obtener más información, consulta Controlar el acceso y proteger los artefactos.

Optimizar tu Google Cloud entorno

La optimización es la última fase de la migración. En esta fase, repites las tareas de optimización hasta que tu entorno de destino cumpla los requisitos de optimización. Los pasos de cada iteración son los siguientes:

  1. Evalúa tu entorno, tus equipos y tu bucle de optimización actuales.
  2. Establezca sus requisitos y objetivos de optimización.
  3. Optimiza tu entorno y tus equipos.
  4. Ajusta el bucle de optimización.

Repite esta secuencia hasta que hayas alcanzado tus objetivos de optimización.

Para obtener más información sobre cómo optimizar tu entorno, consulta los artículos Migrar a Google Cloud: optimizar tu entorno y Google Cloud Well-Architected Framework: optimización del rendimiento. Google Cloud

Siguientes pasos

Colaboradores

Autor: Marco Ferrari | Arquitecto de soluciones en la nube