Controlando la nube con código

Carlos Hernandez
KarmaPulse Developers
3 min readSep 30, 2016

Si usted no ha oído hablar del servicio AWS CloudFormation, quiero ser honesto, hasta hace meses, nosotros tampoco.

Antes de la nube, era una pesadilla crear nuevos ambientes en una infraestructura dedicada o una virtual, sin embargo, su llegada no fue limpia y sin complicaciones. AWS CloudFormation se puso en marcha para resolver uno de los problemas más comunes al implementar varios servicios en la nube: la inmutabilidad del medio ambiente.

CloudFormation tiene dos partes: Plantillas y Stacks. Una plantilla es un archivo de texto JavaScript Object Notation (JSON) que define los recursos que requiere una aplicación. Por ejemplo, la plantilla puede declarar que la aplicación requiere una instancia de Amazon Elastic Compute Cloud (EC2).

Cuando la plantilla se entrega al servicio, CloudFormation crea los recursos necesarios en la cuenta del cliente y crea una instancia en ejecución de la plantilla, poniendo las dependencias y los flujos de datos en el orden correcto automáticamente. La instancia de ejecución se llama una Stack.

Los clientes pueden hacer cambios al Stack después de que ha sido desplegado mediante el uso de herramientas CloudFormation y un proceso de edición que es similar al control de versiones. Cuando se elimina una pila, todos los recursos relacionados se eliminan automáticamente.

Esta característica de AWS es una combinación de tu mejor amigo y tu peor enemigo, debido a la transparencia con la que sucederá un cambio de plantilla aplicado a un Stack pero también debido a la falta de flexibilidad, ya que, al realizar cambios en la plantilla éstos no se ven reflejados en el Stack actualmente desplegado sino que deberíamos crear un nuevo Stack a partir de la nueva plantilla.

La otra cosa que AWS resuelve con CloudFormation es la automatización del lanzamiento y la conexión de los servicios entre sí. Desde algo tan simple como reservar una IP elástica (IP fija) y adjuntarla a una instancia EC2 para implementar una VPC completa, incluyendo NAT, pasarelas, subredes, puertas de enlace de Internet, etc.

La curva de aprendizaje para CloudFormation es bastante sencillo una vez que tenga el entendimiento base. AWS también proporciona una herramienta llamada AWS CloudFormation Designer, que le ayuda a desarrollar una plantilla desde cero, incluso esta puede ser usada como diagrama de infraestructura.

Una vez que comienzas con el fascinante mundo de CloudFormation y la automatización de la nube AWS, créeme, ¡nunca volverás a poner en marcha una instancia EC2 o RDS de nuevo manualmente! Bueno, depende de ti.

--

--

Carlos Hernandez
KarmaPulse Developers

Apasionado de la #Infraestructura y #DevOps, nuevo jugador en @konfiomx, adicto a la adrenalina y el amor.