AWS CloudFormation

Implantación de Aplicaciones Web

José Juan Sánchez Hernández

Curso 2023/2024

1 AWS CloudFormation

Nota: Este documento está incompleto porque todavía está en proceso de edición.

En esta práctica vamos a aprender a utilizar algunas de las funcionalidades básicas que ofrece el servicio AWS CloudFormation.

1.1 ¿Qué es AWS CloudFormation?

AWS CloudFormation es un servicio que nos permite automatizar la creación y gestión de recursos en AWS a partir de una plantilla.

Referencia:

1.2 Ventajas e inconvenientes

Algunas de las ventajas que nos ofrece este servicio son:

Algunos de los inconvenientes que podemos encontrar son:

1.3 ¿Qué es una plantilla de AWS CloudFormation?

La plantilla o template es un archivo JSON o YAML que describe los recursos y configuraciones que queremos crear en AWS.

1.4 ¿Qué es stack de AWS CloudFormation?

Un stack o una pila, es una colección de recursos de infraestructura que se crean a partir de una plantilla.

1.5 ¿Cómo funciona AWS CloudFormation?

Consultar la documentación oficial.

1.6 Gestión stacks desde la consola web de AWS CloudFormation

Consultar la documentación oficial.

1.7 Gestión de stacks desde la línea de comandos con AWS CLI

Consultar la documentación oficial.

1.7.1 Crear un stack

Para crear una pila de AWS CloudFormation desde la línea de comandos con AWS podemos ejecutar el siguiente comando:

aws cloudformation create-stack \
    --stack-name <nombre_del_stack> \
    --template-body file://<path-de-la_plantilla>

Donde <nombre_del_stack> es el nombre que queremos darle a la pila y <path-de-la_plantilla> es la ruta del archivo que contiene la plantilla.

Ejemplo:

aws cloudformation create-stack \
    --stack-name ejemplo-01 \
    --template-body file://ejemplo-01/ec2.yaml

Si la plantilla contiene parámetros, podemos especificarlos en la línea de comandos con el parámetro --parameters:

Ejemplo:

aws cloudformation create-stack \
  --stack-name ejemplo-05 \
  --template-body file://ejemplo-05/ec2.yaml \
  --parameters ParameterKey=KeyName,ParameterValue=vockey \
               ParameterKey=InstanceType,ParameterValue=t2.small \
               ParameterKey=ImageId,ParameterValue=ami-08e637cea2f053dfa

1.7.2 Listado de stacks

Para obtener un listado información básica de los stacks, como el nombre, el estado actual y la fecha de creación, utilizamos el comando:

aws cloudformation list-stacks

Para obtener un listado con información más detallada, utilizamos el comando:

aws cloudformation describe-stacks

También podemos consultar información de un stack específico con el comando:

aws cloudformation describe-stacks --stack-name <nombre_stack>

1.7.3 Eliminar un stack

Para eliminar un stack y todos los recursos asociados, utilizamos el comando:

aws cloudformation delete-stack --stack-name <nombre_stack>

1.8 Fragmentos de plantillas

Consultar en la documentación oficial

1.9 Repositorio con plantillas de ejemplo

Los ejemplos que vamos a realizar en esta sesión están disponibles en el siguiente repositorio de GitHub.

1.10 Ejercicios

1.10.1 Ejercicio 1

Escriba una plantilla de AWS CloudFormation que cree la infraestructura necesaria para desplegar la aplicación web propuesta en la práctica 7.

1.10.2 Ejercicio 2

Escriba una plantilla de AWS CloudFormation que cree la infraestructura necesaria para desplegar la aplicación web propuesta en la práctica 9.

1.11 Referencias

2 Licencia

Licencia de Creative Commons
Esta página forma parte del curso Implantación de Aplicaciones Web de José Juan Sánchez Hernández y su contenido se distribuye bajo una licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.