Revista Tecnología

Cómo migrar una máquina virtual entre VMware y AWS (Parte2)

Publicado el 07 septiembre 2015 por Dbigcloud @dbigcloud

La semana pasada estuvimos viendo cómo preparar nuestro entorno de AWS, para poder realizar una importación/exportación de una máquina virtual VMware, hoy vamos a ver como realizar dichas tareas, pero antes debemos configurar la herramienta Amazon EC2 API tools, con la que vamos a trabajar en linea de comandos.

 

aws por DBigCloud

A modo resumen, la importación/exportación de la máquina virtual es guardada en un bucket S3, para realizar la importación debemos realizarla sobre una instancia EC2, para la exportación solo será necesario descargar la instancia de nuestro bucket e importarla en nuestro entorno VMware, estas dos tareas son realizadas en segundo plano con la herramienta Amazon EC2 API tools. Debemos tener en cuenta que solo podemos exportar una máquina virtual que ya hayamos importado anteriormente.

IMPORTANTE: Debéis tener cuidado con las operaciones que realizáis ya que podéis sufrir algún cargo en vuestra cuenta, la importación de la instancia se realizará en una de tamaño m3.medium, la cual no entra dentro del plan free tier, pero al estar parada (sin arrancar) no deberían cobrarte ningún cargo, en DbigCloud no nos hacemos responsable si recibís algún cargo.

Cómo preparar Amazon EC2 API tools

Es necesario descargar la Amazon EC2 API tools con la que vamos a realizar las tareas de exportar/importar, una vez descargada, debéis crear una variable de entorno llamada EC2_HOME con la ruta de la herramienta que hemos descargado y añadirla al PATH de windows, luego asegurarse que tenemos Java 1.7 o superior instalado y crear la variable de entorno JAVAHOME, en el siguiente enlace se explica cómo hacerlo:Setting Up the Amazon EC2 Command Line Interface Tools on Windows, los pasos son muy sencillos.

También debemos configurar la variable EC2_URL para establecer la zona que vamos a usar, en mi caso como el bucket lo creer por defecto en Oregon que es el equivalente a us-west-2 usaré la URL: https://ec2.us-west-2.amazonaws.com, el listado de regiones podéis consultarlo aquí.

Recomendación: Crear variables de entorno AWS_ACCESS_KEYAWS_SECRET_KEY con los valores que vimos en el post anterior, para no tener que estar usandolos a través de esta herramienta cada vez que ejecutemos comandos.

Podéis comprobar si se ha creado la variable de entorno EC2_HOME correctamente ejecutando lo siguiente:

dir %EC2_HOME

  

EC2 HOME por DBigCloud

Para usar esta herramienta nuestro usuario debe tener permisos para hacer uso de instancias EC2 y S3, para comprobarlo nos debemos dirigir a IAM > Users > Nombre de usuario y ver en el apartado permissions si los disponemos.

User permission AWS por DBigCloud

 También tenéis que aseguraros que vuestro usuario tiene acceso a la zona donde creasteis el bucket, comprobadlo en: IAM -> Account Settings -> Security Token Service Regions.

Cómo importar nuestra instancia VMware a AWS

Ahora ya tenemos listo nuestro entorno para importar una instancia de VMware a AWS, usando el comando ec2-import-instance, pero necesitamos conocer los siguientes parámetros:

  • disk_image_filename -> La ruta del disco VMDK que vamos a exportar, por lo que la máquina virtual la debemos descargar de nuestro entorno VMware al equipo donde vayamos a realizar la importación.
  • file_format -> El tipo de disco que estamos usando en este caso VMDK.
  • instance_type -> En EC2 existen diferentes tipos de instancias dependiendo de sus características, para la free tier tenemos disponible la m3.medium
  • architecture -> Dependiendo del sistema operativo si es i386 o x86_64, en mi caso será x86_64.
  • s3_bucket_name -> Nombre del bucket donde vamos a guardar la importación.
  • owner -> AWS_ACCESS_KEY
  • secret_key -> AWS_SECRET_KEY
  • platform_name -> El tipo de plataforma de nuestra instacia, si el linux o windows, en mi caso linux.

Es el momento de lanzar el comando para la importación, voy a utilizar de ejemplo la máquina virtual con Ubuntu 14.0.3, para ello debemos exportarla a OVF ya que sino no podremos importarla.

export ovf por DBigCloud

Ahora debemos abrir una consola para usar CLI, en mi caso al instalarlo en windows, ejecutaré cmd y lanzaré el comando:

ec2-import-instance ./dbcubu01-disk1.vmdk -f vmdk -t m3.medium -a x86_64 -b dbigcloud -o "%AWS_ACCESS_KEY%" -w "%AWS_SECRET_KEY%" -p linux

importVM AWS por DBigCloud

Una vez la imagen esta subida a nuestro bucket, en segundo plano es convertida a una instancia ec2, si accedéis al bucket a través de la consola AWS, podréis observar la carpeta con los fichero de la instancia, para comprobar el progreso de la conversión lo haremos con el comando:

ec2-describe-conversion-tasks

 

conversion AWS

Y con esto ya tenemos nuestra instancia importada, si accedemos a la consola AWS- EC2 -> Instances veremos como esta nuestra nueva instancia ya importada y parada, acordaros de eliminar el contenido del bucket si no los vamos a usar más-

instancia creada

Cómo exportar nuestra instancia EC2 a VMware

Ahora es el momento de exportar la instancia que anteriormente importamos, pero antes necesitamos conocer los siguientes datos:

  • instance_id -> EL ID de nuestra instancia, podemos conocerlo directamente desde el panel de EC2 -> Instances
  • target_environment -> VMware, Citrix, or Microsoft.
  • disk_image_format -> EL tipo de disco de la máquina virtual, VMDK para VMware, VHD para Microsoft Hyper-V y Citrix Xen.
  • container_format -> Esto es opcional, pero útil para nosotros ya que vamos a exportarlo en OVA.
  • s3_bucket -> El bucket de S3 donde se va a alojar dicha exportación.
ec2-create-instance-export-task i-6f09cfc3 -e VMware -f VMDK -c OVA -b dbigcloud

Con el comando lanzado comenzará a exportarse la instancia en segundo plano, si queremos consultar el progreso de la tarea lo haremos con el siguiente comando:

ec2-describe-export-tasks

export instance ec2 to VMware

Una vez en la tarea nos aparezca complete, debemos dirigirnos a nuestra consola AWS -> S3 - Bucket y en Actions, descargar el fichero OVA.

exportada ec2

Ahora lo que queda es llevarnos nuestro template al vCenter e importarlo, para ello debemos dirigirnos a File -> Deploy OVF Template.

import ovf

Se nos abrirá un asistente, el cual iremos siguiente para realizar el despliegue de nuestra máquina virtual, deberemos ir seleccionando el datastore donde será importado, el nombre de la instancia e incluso podremos editar el virtual hardware, una vez finalicemos ya tendremos nuestra instancia EC2 de nuevo en nuestro entorno VMware.

asistente OVF

Con esto finalizamos estos posts de cómo exportar máquinas virtuales VMware a AWS y viceversa, espero que os sea de ayuda, informaros que durante el proceso que he ido realizando he recibido un cargo 0.04$, por lo que si hacéis los pasos que he realizado, los cargos no deben ser muy diferentes.



Volver a la Portada de Logo Paperblog