Por Josué Armando Vazquez, Infrastructure DevOps en Financial Solutions
AWS CloudFormation es un servicio que nos ayuda a crear recursos de AWS de una manera más rápida, de tal forma que se reduce considerablemente el tiempo de despliegue de infraestructuras.
Existen varias plantillas predeterminadas y creadas por Amazon que sirven para replicar entornos complejos para el desarrollo, ya sea en pre o producción, pueden ser similares o prácticamente iguales simplemente escalando los recursos. Para consultar estas plantillas de ejemplo, es necesario revisar la siguiente liga: https://amzn.to/2SfY3Vm
El uso de estas plantillas va a depender del requerimiento que tengamos, no es obligatorio utilizarlas, ya que se puede crear un script de CloudFormation desde cero en formato YAML o JSON.
Algunas de las ventajas de utilizar plantillas predeterminadas son:
· El tiempo de codificación es menor a crear una plantilla de cero, ya que algunas, no podrían estar parametrizadas con las configuraciones que necesitamos en ese momento y tendríamos que invertir tiempo en modificarlas.
· Al no requerir modificar las configuraciones, que vienen por default de los recursos de estas plantillas, el despliegue es rápido y en cuestión de minutos tendremos nuestro servicio desplegado, contemplando que cada servicio tiene su propio tiempo de creación.
Para crear nuestras variables de entorno, es necesario que nuestra plantilla tenga la sección de parameters como se muestra a continuación:
Estos serían los requisitos que se deben de tomar en cuenta al momento de usar los parámetros:
De esa forma, se volvería una sección “personalizada” y debería de verse como se muestra a continuación:
En formato YAML:
En formato JSON:
De esta forma, podemos reutilizar nuestras plantillas cuantas veces queramos y al ejecutarlas, CloudFormation identificará estas variables solicitándolas como en el paso 2.
Para poder utilizar estas variables o parámetros a lo largo de nuestra plantilla, es necesario utilizar la palabra reservada “REF”. De esta manera, se le específica a CloudFormation que debe utilizar ese parámetro.
Aquí se muestra un ejemplo de cómo sería en formato JSON o YAML:
En esta imagen se muestra cómo es que se da de alta en la sección de parámetros:
En esta nos muestra como luce la referencia hacia la variable en formato JSON:
Y esta, nos muestra como luce la referencia hacia la variable en formato YAML:
La importancia de personalizar nuestras plantillas de CloudFormation es mucha, ya que, al realizarlo de esta manera, podemos tener bien organizados los valores que necesitamos a lo largo de nuestro YAML o JSON. También, nos permite reutilizar nuestras plantillas, sin la necesidad de editar estos archivos.
Utilizar CloudFormation en el momento de crear o clonar recursos, nos ahorra tiempo, trabajo y configuraciones.
¡Cuéntame si te funciono y comenta si te gustarían algunos otros tutoriales!