Es un servicio de Amazon que ayuda a modelar y configurar un conjunto de recursos de AWS.
Trabaja mediante plantillas, ya sean propias o de terceros. Existen varias formas de subir una plantilla:

1. Se pueden crear de forma gráfica en la consola de AWS mediante el drag and drop, mientras que por detras, AWS, lo va convirtiendo en una plantilla JSON o YAML.
2. Puedes subir la plantilla con formato JSON o YALM a un bucket y pegar la URL.
3. Se puede seleccionar la subida de archivo local.

¿Cómo se empieza?

En el buscador de servicios ponemos CloudFormation y, una vez dentro del servicio, creamos un nuevo stack.
Es aqui donde debemos ofrecer la plantilla o crear una.

Primero vamos a crear una con drag and drop.

drag-drop
create1

En el margen izquiero aparece un listado de servicios que podemos ir colocando para formar la plantilla. Únicamente hay que arrastrar y soltar en la cuadrícula.

drag-drop1

En la parte de abajo se irá traduciendo en código. Podemos modificarlo a mano si fuses necesario, por ejemplo, para poner tags a los servicios.

json

Una vez que hayamos terminado podemos guardar el template o subirlo directamente, creando así el stack.

options

Guardar | Subir

En el momento en el que le damos a crear stack, se genera un S3 donde se almacenará la plantilla y accederá a esta mediante la URL del servicio S3.

Bucket

s3

CloudFormation

s3-1


Los siguientes pasos son Next.

Ahora mostraré cómo se sube una plantilla propia, ya sea desde un S3 o seleccionando archivo local.

Para ello le damos a crear stack y seleccionamos Upload a template file:

local


Seleccionamos un archivo tipo JSON o YALM y le damos a Next. Una página para utilizar plantillas de terceros sería esta: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sample-templates-applications-us-west-2.html


Cuando la plantilla tiene parámetros, en los pasos siguientes debemos indicárselos. Un ejemplo de parámetro es el par de clave-valor, para poder conectarnos a la EC2 con SSH.

key

Un ejemplo de plantilla JSON sería este:

Parámetros:

parameters

Protocolo de entrada:

ports

UserData, que sería donde colocamos el bash para la instalación, en este caso, de Apache, Git , Dotnet y una app a partir de GitHub:

ec2-bash


Cuando se ha terminado de crear, podemos comprobar que la EC2 está iniciada y si nos conectamos a ella visualizaremos la app que le hemos indicado que coja de GitHub.

ec2-iniciada

Si nos metemos dentro podemos observar como nos ha creado el protocolo SSH y HTTP y ha vinculado la EC2 a un par de clave-valor.

protocolo-ec2
claves

Para conectarse cogemos el ssh que nos genera y lo pegamos en un terminal.

conect
conect-1


Como podemos comprobar, nos ha creado la carpeta /coreapp y dentro está la aplicación que se ha bajado con git clone.

app


CloudFormation tiene mucho potencial puesto que con una simple plantilla se puede automatizar la creación de servicios con diferentes niveles de comlejidad. Se genera una vez y se ejecuta tantas veces como necesitemos.

Autor/a: Carlota Lobo Sanz

Curso: Desarrollo Web Full Stack, MultiCloud y Multiplataforma 

Centro: Tajamar 

Año académico: 2020-2021 

Código / recursos utilizados / Otros datos de interés: https://github.com/carlotaLobo/cloudformation.git

Leave a Comment

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.