En el oscuro pasado de los servidores físicos, la infraestructura se aprovisionaba utilizando destornilladores y cables en sótanos húmedos. Estos tiempos oscuros se iluminaron cuando las soluciones de nube pública comenzaron a tomar el control de la infraestructura local como la forma preferida de aprovisionar y ejecutar servidores. En esta publicación de blog, aprenda cómo implementar soluciones en la nube con AWS CLI y CloudFormation.
Este es un artículo invitado de Karl Eriksson, cofundador de Mocki, una herramienta que le permite crear APIs simuladas en minutos.
Si está ejecutando un entorno para su aplicación, puede administrar fácilmente las cosas a través de una interfaz de usuario gráfica (GUI) como la Consola de AWS. Pero cuando tiene múltiples entornos como desarrollo, puesta en escena y producción, las cosas se vuelven más difíciles. Entra el error humano y el tiempo. AWS CLI y CloudFormation pueden ayudar.
Necesita administrar su infraestructura como código. En el mundo de AWS, la forma de hacerlo es con pilas de CloudFormation.
Cuando implementa una pila de CloudFormation por primera vez, AWS creará todo desde cero. Si implementa la pila como una actualización, detectará cualquier cambio en la infraestructura y solo implementará esos cambios.
Las pilas de CloudFormation garantizan que los mismos cambios se apliquen en todos sus diferentes entornos.
CloudFormation: Infraestructura como código de AWS.

AWS CloudFormation es una herramienta para escribir y aprovisionar infraestructura como código en un entorno de AWS. La mayoría de los servicios de AWS son compatibles con CloudFormation. La mayoría de lo que se puede crear utilizando la Consola de AWS, como servidores virtuales, bases de datos, balanceadores de carga y almacenamiento de archivos, se puede agregar a una pila de CloudFormation. Una vez agregados, todos esos recursos se pueden implementar desde una línea de comandos u otro proceso automatizado.
Para las actualizaciones, CloudFormation se asegura de que las operaciones se realicen de la manera más eficiente y, si algo sale mal, revierte los cambios automáticamente.
Ahora aprendamos cómo crear infraestructura utilizando la CLI de AWS y CloudFormation.
Requisitos previos
Para seguir el tutorial de CloudFormation en el resto de este artículo, asegúrese de tener lo siguiente:
- Una cuenta de AWS
- CLI de AWS: Aprenda cómo descargar e instalarla aquí. Puede confirmar que la CLI se configuró correctamente ejecutando el comando
aws s3 ls
. Si el comando se ejecuta correctamente, todo está bien.
Si tiene múltiples perfiles de AWS configurados a través de AWS CLI, utilice uno adecuado para fines de desarrollo o prueba para este tutorial.
Creando su primera pila de CloudFormation
Suficiente información de fondo, ¡vamos a usar AWS CLI y CloudFormation para crear una pila!
En este ejemplo, creará una pila que contiene la infraestructura necesaria para implementar un sitio web estático alojado en el servicio de alojamiento de archivos estáticos AWS S3.
Para comenzar, cree un nuevo archivo llamado template.yaml
y llénelo con el siguiente contenido:
AWSTemplateFormatVersion
– determina la versión de formato para la plantilla para que AWS pueda interpretarla correctamente al implementarla.Descripción
– contiene una descripción de la plantilla que se mostrará en la Consola de AWS una vez que la haya implementado.Recursos
– contiene toda la infraestructura que está agregando a la plantilla. En este caso, los recursos crearán un simple bucket de S3 que alojará un sitio estático.
La propiedad
BucketName
debe ser única, así que intente pensar en algo diferente a your-bucket-name.
Implementación de la pila con AWS CLI y CloudFormation
Ahora que tienes una plantilla simple creada para implementar, despliégala en AWS usando AWS CLI y CloudFormation a través del siguiente comando:
Después de ejecutar el comando, navega a la Consola de AWS y ve a Servicios → CloudFormation. Deberías ver la implementación en ejecución. Después de unos minutos, deberías ver que entra en el estado CREATE_COMPLETE
. ¡Si es así, está completo!
Si hubo algún error, deberías poder verlos en la sección Eventos al ver los detalles de tu pila.
Al navegar a Servicios → S3, ahora deberías ver un nuevo bucket de S3 creado.
Construyendo el sitio web simple
Una vez que tengas un bucket de S3 para almacenar un sitio web, crea un archivo index.html que servirá como el sitio.
Si no tienes algo en mente, puedes usar el siguiente contenido en tu archivo index.html:
Guarda el archivo index.html y sube al bucket de S3 a través de la Consola de AWS.
Asegúrate de otorgar acceso de lectura público al archivo index ya que será accesible para todos los visitantes del sitio.
Actualizando la plantilla
En este momento, el bucket S3 recién creado no está configurado para alojar un sitio web. Vamos a cambiar eso. Actualmente puedes descargar el archivo de índice a través de la consola de AWS, pero no es accesible a través de Internet. Utilizando la CLI de AWS y CloudFormation, cambia la configuración para habilitar el alojamiento de sitio web estático.
Cambia el archivo template.yaml como se muestra a continuación para habilitarlo. A continuación, introducimos algunas propiedades nuevas en nuestra plantilla.
AccessControl
– establece los derechos de acceso al bucket S3 como lectura pública para que cualquier usuario que visite el sitio pueda ver el archivoindex.html
WebsiteConfiguration
– configura el bucket S3 para que funcione como un sitio web que servirá el archivo index.html cuando los usuarios accedan a la URL del bucketOutputs
– pueden ser diferentes propiedades para los recursos que forman parte de la pila. En el ejemplo anterior, laWebsiteURL
es la salida de la pila. Cuando despliegues la plantilla nuevamente, deberías ver la URL del sitio web como salida en la Consola de AWS CloudFormation.
Ahora despliega los cambios en la pila existente utilizando el mismo comando que en el paso anterior.
Para confirmar el resultado, navegue hasta la consola de CloudFormation. Después de unos minutos, debería notar que la pila está en el estado UPDATE_COMPLETE
. Cuando la pila entre en este estado, vaya a la pestaña Outputs donde debería ver la WebsiteUrl
agregada como una salida en la plantilla.
Haga clic en la URL proporcionada y debería ver su sitio en su navegador.
¡Felicitaciones! ¡Con AWS CLI y CloudFormation, ha implementado su primera pila utilizando infraestructura como código! En este punto, siga agregando cambios a su archivo de plantilla para implementar nuevas modificaciones o cree uno nuevo según sus necesidades.
Conclusión
En este tutorial, ha aprendido sobre el concepto de infraestructura como código y las ventajas que tiene sobre la provisión manual de infraestructura. Utilizando el enfoque de infraestructura como código con AWS CLI y CloudFormation, luego implementó una pila para crear un sitio web estático.
Utilizando los principios aprendidos en este tutorial, puede implementar un sistema listo para producción utilizando completamente CloudFormation.
Lectura adicional
Si desea leer más sobre infraestructura como código como fenómeno, consulte Infrastructure as Code in the Real World de HashiCorp.
Si desea aprender más sobre cómo integrar CloudFormation en su flujo de desarrollo y administrar toda su infraestructura utilizando CloudFormation, asegúrese de consultar:
- Crea un Pipeline con AWS CloudFormation por AWS
- Construyendo un Pipeline para las Pilas de Prueba y Producción por AWS
¡Buena suerte en tu camino desplegando toda tu infraestructura utilizando infraestructura como código en AWS!
Source:
https://adamtheautomator.com/aws-cli-and-cloudformation/