AWS CLOUDFORMATION
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.
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.
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.
Una vez que hayamos terminado podemos guardar el template o subirlo directamente, creando así el stack.
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
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:
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.
Un ejemplo de plantilla JSON sería este:
Parámetros:
Protocolo de entrada:
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:
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.
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.
Para conectarse cogemos el ssh que nos genera y lo pegamos en un terminal.
Como podemos comprobar, nos ha creado la carpeta /coreapp y dentro está la aplicación que se ha bajado con git clone.
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