Cloud Amazon EC2. AMI personalizada

(English version)

En este artículo vamos a explicar cómo crear y registrar tu propia AMI personalizada de tu propio servidor dedicado o servidor virtual externo al Cloud Amazon EC2.

Una AMI (Amazon Machine Image) es una imagen preconfigurada de un sistema operativo que sirve para lanzar instancias en Amazon EC2.

Supongamos que tenemos un servidor dedicado o virtual y queremos probar un proyecto nuevo en el cloud de Amazon EC2. Supongamos también que deseamos usar una réplica  de nuestro servidor para probar esta nueva aplicación, ya que tenemos todo el software que nos hace falta instalado.

Pues bien, lo primero es instalar las ami tools y las api tools. En Centos no están en los repositorios pero podemos bajarlas desde estos enlaces:

Amazon EC2 AMI Tools
Amazon EC2 API Tools

En Ubuntu las podemos instalar directamente con el gestor de paquetes:

:$ aptitude install ec2-ami-tools ec2-api-tools

Creación de la AMI para Amazon EC2.

Antes de nada tenemos que obtener de la cuenta de Amazon nuestro certificado X509 compuesto por una clave privada y un certificado.

Este certificado lo podemos crear en el perfil de nuestra cuenta en la sección “Security Credentials” del menú de la izquierda, y nos permite bajarnos los archivos correspondientes a la clave privada y  al certificado, ambos en formato pem.

Como es de suponer, si generamos una AMI con un certificado y lo perdemos, al generar un nuevo certificado nuestra cuenta de AWS quedará asociada a éste nuevo, por lo que la AMI generada será como si no fuera nuestra, aunque esté alojada en nuestra propia cuenta de S3. Así que OJO!
Para crear la imagen personalizada de nuestro servidor para lanzar instancias de Amazon EC2, ejecutamos lo siguiente:

:$ ec2-bundle-vol -k pk-****************.pem -c cert- *******.pem -u ****-*****-**** -r x86_64 --no-inherit -d /mnt/ami/

-k es la ruta al archivo correspondiente a la clave.
-c es la ruta al archivo correspondiente al certificado.
-r tipo de arquitectura, 64 bits en nuestro caso.
–no-inherit  para no heredar los metadatos de una instancia de Amazon EC2.
-u es el número de cuenta de AWS, NO es el  Access Key ID.

 

El comando anterior generará en el directorio /mn/ami la imagen de nuestro servidor dividida en volúmenes:

root@localhost:~# ls -lsa /mnt/ami/
total 2165680
4 drwxr-xr-x 2 root root 4096 jun 13 15:57 .
4 drwxr-xr-x 4 root root 4096 jun 13 15:51 ..
1593432 -rw-r--r-- 1 root root 8589934592 jun 13 15:53 image
12 -rw-r--r-- 1 root root 9370 jun 13 15:57 image.manifest.xml
10240 -rw-r--r-- 1 root root 10485760 jun 13 15:56 image.part.00
10240 -rw-r--r-- 1 root root 10485760 jun 13 15:56 image.part.01
10240 -rw-r--r-- 1 root root 10485760 jun 13 15:56 image.part.02
10240 -rw-r--r-- 1 root root 10485760 jun 13 15:56 image.part.03

Subir la AMI a Amazon S3

Con el siguiente comando subimos la imagen el bucket de nuestra cuenta de Amazon S3.

:$ ec2-upload-bundle -b bucketname -m /mnt/ami/image.manifest.xml -a ************* -s *****************

-b es el nombre del backet. Si no existe lo crea.
-m es la ruta al archivo xml generado al crear la imagen.
-a es el “acces key id” de nuesta cuenta.
-s es el “Secret Access Key” de nuestra cuenta.

Tanto el “acces key id” como el “Secret Access Key” lo podemos encontrar en el perfil de nuestra cuenta en la sección “Security Credentials” del menú de la izquierda.

Cuando se termine de subir la imagen podremos ver en nuestra cuenta de S3 la imagen dividida en volumenes junto con el archivo xml.

Registrar nuestra AMI

Una vez subida nuestra AMI personalizada, podemos registrarla para lanzar instancias basadas en ella.

Para registrar la imagen basta con acceder al servicio EC2 de nuestra cuenta, y hacer click en la sección “IMAGENES – AMIs”. En la parte superior central de la pantalla está la opción “Register New AMI”. Si pulsamos en ella aparecerá un formulario para que indiquemos la url de nuestra imagne.

En nuestro caso es bucketname/image.manifest.xml. Es decir, nombre_del_backet/image.manifest.xml

Una vez añadida ya podemos lanzar instancias con esta imagen.

También se puede registrar AMIs con este comando desde consola:

:$ ec2-register ftbamijapon/image.manifest.xml -a x86_64 -K pk-*************.pem -C cert-***********.pem --region ap-northeast-1

-a arquitectura 32 o 64 bits (64 en nuestro caso).
-K es la ruta al archivo correspondiente a la clave.
-C es la ruta al archivo correspondinete al certificado.
–region en qué región o zona de Amazon queremos registrar nuestra AMI en Amazon EC2.

Cosas a tener en cuenta

Zona o region de Amazon

Es muy importante elegir la misma zona tanto en el Amazon S3 como en el Amazon EC2. Si estuvieran en distintas zonas el precio del tráfico enviado al cargar nuestra AMI en el momento de lanzar un instancia, será más caro que si están en la misma zona.

Lo mismo se puede decir de dos instancias de Amazon EC2 que se envíen datos entre sí, como por ejemplo, un servidor de base de datos y servidor web.

ELECCIÓN DEL KERNEL

Otra cosa a tener en cuenta es la elección del kernel a la hora de registrar la AMI. Si no se selecciona el apropiado nuestra instancia en Amazon EC2 no arrancará.

Un pensamiento en “Cloud Amazon EC2. AMI personalizada

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *