Como Migrar instancias EC2 de una cuenta de AWS a otra cuenta AWS sin perder datos y manteniendo ip privadas y públicas.

Es posible que tengamos algunas cargas de trabajo en EC2 en nuestra cuenta de AWS y necesitemos migrar todas las instancias a una nueva cuenta de AWS, sin querer perder ningún dato de sus aplicaciones actuales y queriendo mantener las mismas IP privadas, IP públicas y la misma llave de conexión .PEM.

Requisitos:

  • Tener el ID de cuenta AWS A Origen

Migración Instancias EC2

Para migrar las instancias EC2 debemos sacar inicialmente una imagen de máquina de Amazon (AMI) por cada uno de los servidores que se requiera trasladar a la cuenta de AWS B Destino.

También es indispensable tener la información detallada de la instancia que vamos a migrar a la otra cuenta de AWS, con el fin de tener la Subnet destino, Ip privada , Grupo de Seguridad como información necesaria al momento de desplegar la imagen de máquina de Amazon (AMI) en la cuenta B destino.

Información detalle de la instancia a migrar de Cuenta AWS A
Cómo crear una AMI de una instancia en ls Cuenta AWS A Origen.

Debemos poner un nombre a la AMI de la instancia que queremos migrar

Creación de las imagen EC2

Compartir Imagen EC2 entre cuentas de AWS

Una vez que que la imagen del servidor a migrar ya se encuentra en status Available, debemos ir a la siguiente ruta para poder compartirla con la cuenta destino AWS B donde la vamos a migrar.

Seguiremos el siguiente documento de referencia

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html

Debe Selecionar la AMI creada y otorgar los permisos para compartirla a la cuenta de AWS B Destino siguiendo la ruta → Actions, Modify Image Permissions como se muestra a continuación.

Tenga cuidado cuando copia y pega el ID de la cuenta donde va a compartir, puesto que en ocasiones queda un espacio en blanco al final y no permite agregar el permiso .

Para permitir la creación de permisos de volumen para instantáneas, seleccione Agregar permisos de “crear volumen” a las siguientes instantáneas asociadas al crear permisos.

Siguientes Pasos en la cuenta destino

Debe hacer Login en la consola de Cuenta Destino AWS B donde realizaremos los siguientes pasos.

  • Debes lanzar una instancia en EC2 → Launch Instance y seleccionar la imagen que ha sido compartida desde la cuenta AWS Origen A
Lanzar instancia a partir de AMI en Cuenta Destino AWS B
  • Debes selecionar el tipo de instancia que tenías originalmente en la cuenta AWS Origen A , debido que AWS siempre le selecciona la instancia T2.Micro que esta en la capa gratuita, cuando usted lo que requiere es desplegar la que tenías originalmente ( T3.Small ).
Ten cuidado siempre de seleccionar el tipo de instancia que requieres.

Debes poner la IP privada que tenía la instancia de la cuenta AWS Origen A donde fue sacada la Imagen AMI.

También es importante que seleccione la VPC y subnet previamente creada en la cuenta Destino AWS B .

Propiedades de red al lanzar la instancia.

Debes dejar el mismo almacenamiento que tenías en la instancia a migrar

Propiedades de almacenamiento

Debes crear el mismo grupo de seguridad que tenías en la Cuenta Origen AWS A , el cuál tendrá la instancia migrada

Encuentras un resumen de toda la configuración de la instancia a migrar

Resumen de la instancia a desplegar en base a la AMI

Nota : para mantener la misma llave de ingreso al servidor que esta migrando a su cuenta nueva de AWS , debe escoger la opción “Proceed Without a key”

Escoger Proceed without key par para mantener la misma llave del servidor migrado.

Para conectar a la nueva instancia una vez se encuentre lista para su conexión, es necesario saber cuál será la IP pública temporal, o la de la elastic IP asignada para conectar con la misma llave.

Recuerda que por la interfaz de la conexión ya no mostrará cual es el nombre de la llave antigua e incluso tampoco el usuario ec2-user

Migrar la IP pública de la instancia de la Cuenta Origen AWS A → Cuenta Destino AWS B

Este proceso actualmente no es soportado realizarlo a través de la consola , pero puede ser solicitado a través de un Ticket de soporte sin importar si la cuenta tiene nivel de soporte básico ( Free).

La ruta para la creación de los 2 casos en cada cuenta puede hacerse en la siguiente ruta.

crear un ticket de soporte para el movimiento de la EIP entre cuentas de AWS
Ruta de la creación del ticket que se debe hacer en ambas cuentas

Los pasos son lo siguientes y tenga en cuenta que esto podrá tardar un par de días ( en mi experiencia no mas de 3 ) mientras el equipo de servicio de AWS realizan el proceso.

  1. Desde la cuenta A, cree un nuevo caso de soporte para decir que desea mover EIP X.X.X.X a la cuenta B (BBBBBBBBBB)
    2. Desde la Cuenta B, cree un nuevo Caso de Soporte para decir que desea recibir EIP X.X.X.X de la Cuenta A (AAAAAAAAA) e incluya el ID del Caso de Soporte creada en el Paso 1.
    3. AWS procesará su solicitud y vinculará los dos casos. AWS bloqueará el EIP X.X.X.X a la cuenta BBBBBBBB.
    4. AWS le informará cuando esté completo. Una vez que esté completo, puede mover el EIP cuando esté listo.
    5. Desde la cuenta A, libera EIP X.X.X.X
    6. Desde la cuenta B, ejecuta el comando con AWSCLI “aws ec2 allocate-address — domain vpc — address XXXX” sin las comillas (“).
    7. Luego puede asociar el EIP X.X.X.X con la instancia.

Recomiendo que indique en los 2 casos de soporte abiertos como parte de la descripción, que la cuenta destino B (BBBBBBBBBB)acepta los cargos de las nuevas EIP y que usted es el root de las 2 cuentas.

Conclusiones

Es posible realizar este mismo proceso tanto para migrar una instancia como muchas de manera manual donde es requerido debido al cambio de cuenta de AWS de parte del cliente o Partner.

Podemos mantener las IP públicas , IP privadas para no afectar aplicaciones, que en su mala práctica a veces de los clientes llaman en su desarrollo la ip privada pudiendo nosotros evitar cualquier impacto.

Podemos Mantener las mismas Keypar para el acceso a todos servidores que hemos migrado de cuentas AWS.

Entrepreneur, travel lover, AWS x3, CIO High Cloud Tec , AWS Community Builder, passionate about cloud learning

Entrepreneur, travel lover, AWS x3, CIO High Cloud Tec , AWS Community Builder, passionate about cloud learning