Importar una imagen de VM en una instancia AWS

En primer lugar necesitamos una máquina virtual la cual vamos a cargar en Amazon (El equipo desde el que se trabaja en este caso es Windows, en caso de emplear un sistema basado en Unix consultar la configuración de CLI en Linux o Mac). En este caso se trata de una máquina CentOS con phpmyadmin instalado a través de apache con datos integrados.

CapturaPara ello necesitamos el o los discos que estén montados en esta imagen (formato vhd) y los colocamos en un directorio bien localizado el cual tendremos que acceder más tarde mediante consola. Una vez se tenga preparada la “imagen” se procede a la ejecución de los pasos para importarla a AWS:

  1. Instalar el CLI de Amazon EC2 en tu equipo. Comenzamos descargando el archivo comprimido desde la web de Amazon (es necesario tener instalado Java 1.7 mínimo). Para que estos comandos resulten efectivos debemos crear una serie de variables de entorno que permitan el manejo de dichos comandos de forma cómoda por la ventana de comandos del sistema.
    • Click en Inicio, Equipo, Propiedades.
    • Configuración avanzada del sistema.
    • Variables de entorno.
    • Variables de usuario, click en Nueva.
    • Nombre de variable, JAVA_HOME.
    • Valor de la variable, el path del ejecutable de Java: “C:\Program Files (x86)\Java\jre7” (sin incluir el directorio bin).
    • Ok.

    Estos mismos pasos hay que repetirlos para crear el resto de variables necesarias:

    • Nombre de variable EC2_HOME, valor de la variable path del directorio de CLI descargado: “C:\AWS\EC2\ec2-api-tools-1.7.0.0“.
    • Nombre de la variable AWS_ACCESS_KEY, valor de la variable la ID de tu clave de acceso.
    • Nombre de la variable AWS_SECRET_KEY, valor de la variable tu clave de acceso secreto.
    • Nombre de la variable EC2_URL, valor de la variable la url de la región donde desees trabajar (consultar en Amazon Web Services General Reference), “https://ec2.eu-west-1.amazonaws.com“.

    Captura2

  2. Mirar los requisitos previos de la máquina virtual para AWS, de ahí el formato de disco anterior y el hecho de guardar sólo los discos.
  3. Exportar la imagen de la máquina virtual. Este paso ya se realizó anteriormente, sin embargo, se coloca en este puesto para recordar que no solo es posible importar en AWS imágenes creadas por una máquina virtual, sino que existen herramientas (VMWare Converter, Microsoft System Center Virtual Machine Manager, XenConvert…) para crear copias virtuales de un equipo físico.
  4. Importar imagen en AWS. Antes de importar, es importante recordar que se debe crear un bucket en el servicio S3 de AWS, donde se almacenará la imagen que subamos mediante comandos.
    Captura3
    El formato del comando a emplear debe ser el siguiente:

    ec2-import-instance disk_image_filename -f file_format -t instance_type -a architecture -b s3_bucket_name -o owner -w secret_key -p platform_name

    Cabe recordar que es importante consultar qué máquina está disponible en tu región, qué tipo de instancia es compatible con tu sistema (windows o linux), etc. Aunque se guardaran las credenciales de la cuenta con Amazon en las variables de entorno correspondientes, es necesario volver a especificarlas en el comando, así como el bucket de S3 creado anteriormente. A modo de ejemplo el comando lanzado en nuestro caso fue el siguiente:

    ec2-import-instance C:\Users\usuario\Desktop\Centos\CentOSMiami-disk1_gueno.vhd -f VHD -t m3.xlarge -a i386 -b cloud-master-benito -o ... -w ... -p Linux

    Captura4Captura5

  5. Manipular la instancia en AWS. Una vez subida la imagen, aparecerá automáticamente la instancia en Amazon EC2, sin embargo, el que sea automático no implica que no podamos manejarla como una instancia propia, es decir, se puede guardar una AMI y emplearla en instancias puntuales si se desea, se puede realizar implementar el autoescalado de AWS, etc.
    Captura6Captura7
    Con ello, lanzando una instancia puntual con dicha AMI y tomando su IP pública, comprobamos que la imagen es exacta a la de la máquina virtual, pero sin restricciones iniciales, tal como si se hubiera creado desde un principio en Amazon.Captura8
    El último paso a realizar es eliminar los datos del bucket de S3, ya que no son necesarios mantenerlos ahí por más tiempo.

Referencias:

 

 

Leave a Reply