¿Qué es AWS CloudFormation?
AWS CloudFormation, un servicio de Amazon, dedicado a solventar la necesidad de estandarizar y replicar las arquitecturas que tenemos dentro de nuestro expertise y conocimiento, con el objetivo de facilitar su ejecución y optimizar recursos y costos en la entrega de aplicaciones, o el cumplimiento de requerimientos de nuestra organización.
Con AWS CloudFormation se pueden crear plantillas de servicios de AWS a través del uso de código, crear sus dependencias y el aprovisionamiento de recursos sin la necesidad de ejecutar toda la arquitectura desde cero. Esto permite crear una biblioteca propietaria de plantillas de instancias o arquitecturas capaces de ser entregadas en cualquier momento y de manera organizada, a través de programación.
Algunos de los casos más comunes sobre los que se utiliza CloudFormation, es la creación de ambientes de estrés, así como en aquellas organizaciones donde se requiere de una amplitud de instancias para avanzar en el proceso de desarrollo y aplicaciones. Este servicio es utilizado de manera frecuente como parte de la metodología DevOps.
Algunas de las Características de AWS CloudFormation:
- Seguir un formato similar: una plantilla de CloudFormation es un archivo de texto con formato JSON (Javascript Object Notation) que describe la infraestructura de AWS necesaria para ejecutar una aplicación o un servicio, junto con las interconexiones que existan entre ellos.
- Administrar relaciones: las plantillas contienen una descripción concisa de las relaciones entre los recursos, por ejemplo las instancias EC2 que es necesario asociar con un balanceador de carga de Elastic Load Balancing, o la necesidad de que un volumen de EBS esté en la misma zona de disponibilidad de EC2 que la instancia a la que se conecta.
- Uso constante: la utilización de los parámetros de las plantillas permite utilizar una única plantilla para muchas implementaciones de la infraestructura con diferentes valores de configuración, como cuántas instancias hay que implementar para la aplicación.
- Obtener comentarios útiles: las plantillas también ofrecen propiedades de salida para comunicar al usuario los resultados de implementación o información relativa a la configuración. Por ejemplo, cuando se incluye en una instancia, una plantilla puede incluir la URL del punto de enlace de Elastic Load Balancing que el usuario debería utilizar para conectarse a la aplicación que acaba de incluir en una instancia.
- Evitar conflictos: todos los recursos de AWS incluidos en una plantilla se identifican utilizando nombres lógicos, lo que permite crear varias pilas a partir de una plantilla sin temor a encontrarse con conflictos de nomenclatura entre recursos de AWS.
- CloudFormation Designer permite ver las plantillas en un diagrama. La herramienta permite ver fácilmente los recursos de AWS y sus relaciones, y organizarlos espacialmente de modo tal que el diagrama resulte comprensible. Puede modificar las plantillas arrastrando los elementos con el ratón y con el editor de JSON integrado. Los cambios que haga en el diagrama se trasladarán automáticamente al código JSON de la plantilla.
- Buscar recursos: AWS CloudFormation conserva una copia de la plantilla de pila para poder utilizar la consola de administración de AWS, las herramientas de línea de comandos o las API con objeto de consultar las configuraciones precisas de recursos que se aplicaron durante la creación de la pila.
- Automatizar: tiene la opción de automatizar la generación de plantillas con la utilización de un lenguaje de programación o una herramienta de su elección. También puede automatizar la creación de pilas a partir de plantillas mediante el API de CloudFormation, los AWS SDK o la CLI de AWS.