Creación de imágenes de Amazon con API Tools
Por Ivan Jiménez
En esta ocasión les voy a mostrar cómo realizar respaldos de sus instancias EC2 de Amazon por medio de las API Tools de manera automática.
Las herramientas de la API de Amazon son los paquetes de Scripts de línea de comandos para el servicio web de AWS (Amazon Web Services) que se utilizan para administrar instancias.
Existen otras herramientas de desarrollo proporcionadas por Amazon, pero las más utilizadas para administrar instancias EC2 son:
Amazon EC2 API Tools (http://aws.amazon.com/developertools/351).
Estas herramientas sirven como interfaz de cliente para el servicio Web de Amazon EC2, son utilizadas para registrar, lanzar instancias, gestionar grupos de seguridad, etc.
Amazon EC2 AMI Tools (http://aws.amazon.com/developertools/368).
Las AMI Tools son herramientas en líneas de comandos que sirven para crear una AMI (Amazon Machine Image) existente o volumen instalado.
* Para instalar estas herramientas consulte la documentación de Amazon.
Tomando en cuenta que ya se tienen instaladas las herramientas de Amazon, procederemos con la creación del Script.
Creación del Script
Las Tools de Amazon al no ser un programa que se instale, sino un conjunto de Scripts y comandos que se utilizan por terminal, es necesario definir las variables de entorno.
Explicando el Script
En la primera parte del Script se configuran las variables de entorno, certificados y llaves Amazon, ruta de las AMI y API Tools, ruta de archivos binarios.
El comando para describir instancias es “ec2-describe-instances –headers”, pero para obtener sólo los datos que necesitamos aplicamos unos filtros con los siguientes comandos:
- grep Name: Nos mostrará nuestras instancias listadas por nombre.
TAG instance i-abcd Name nombre-instancia
- awk {‘print $3″ “$5′}: Imprimimos las columnas 3 y 5.
i-abcd nombre-instancia
- sed “s/[ ][ ]*/:/g”: Eliminamos los espacios entre columnas y ponemos “:” como separador.
i-abcd:nombre-instancia
Esta salida la guardaremos en un archivo de texto, en este caso llamado imagenes.txt, el cual guardará el ID y nombre de nuestras instancias con el formato que le dimos.
El comando para la creación de imagenes es “ec2-create-image instance_id –name name –description description”. Como los datos los vamos a obtener de nuestro archivo de texto necesitamos leerlo y obtener la información deseada por medio de un while y filtros.
- /bin/echo $line: Lee línea por línea el archivo imagenes.txt.
- /bin/cut -d: -f1: Selecciona la primera columna delimitada por “:”.
ec2-create-image i-abcd
- /bin/cut -d: -f2`_`date +%d-%m-%Y`: Para el nombre de la instancia se selecciona la segunda columna delimitada por “:”, también le agregamos la fecha actual en el formato dd:mm:aaaa.
ec2-create-image i-abcd –name nombre-instancia_dd:mm:aaaa
- /bin/cut -d: -f2`_`date +%d-%m-%Y`: Para la descripción se utiliza el mismo nombre de la instancia y de igual manera se le agrega la fecha actual.
ec2-create-image i-abcd –name nombre-instancia_dd:mm:aa –description nombre-instancia_dd:mm:aaaa
Finalmente, para que esta tarea se haga de forma automática, lo tenemos que programar en el cron, en este caso el Script se ejecutará todos los domingos a las 2:00 am
0 2 * * 7 root sh /ruta-script/script.sh