Información general
En este laboratorio, aprenderás a utilizar AWS CloudFormation para aprovisionar y actualizar una aplicación web con varios productos y servicios de AWS compatibles, incluidos grupos de Auto Scaling, instancias de Amazon Elastic Compute Cloud (EC2) y Elastic Load Balancing.
En la primera parte, crearás un recurso sencillo, un bucket de Amazon S3, con AWS CloudFormation y analizarás las diferentes políticas de retención que se aplican cuando se elimina una pila de AWS CloudFormation o durante una restauración.
En la segunda parte, aprovisionarás una aplicación web PHP sencilla por medio de una instancia de Amazon Linux. Después, aprenderás a volver a aplicar una plantilla de AWS CloudFormation a la aplicación existente para cambiar algunos atributos de recursos, como un tipo de instancia de Amazon EC2. Por último, añadirás un balanceador de carga y un grupo de Auto Scaling en función de una configuración de Auto Scaling.
Temas
Al finalizar este laboratorio, podrás hacer lo siguiente:
- crear un bucket de Amazon Simple Storage Service (S3) con AWS CloudFormation
- aprovisionar una aplicación web PHP sencilla mediante una AMI de Amazon Linux
- aplicar una plantilla de AWS CloudFormation a una aplicación existente
- modificar una aplicación existente mediante AWS CloudFormation
- añadir roles de IAM y Elastic Load Balancing a la aplicación por medio de AWS CloudFormation
Conocimientos técnicos necesarios
Para completar correctamente este laboratorio, debes estar familiarizado con la edición de scripts con un editor de texto.
Otros servicios de AWS
El uso de servicios de AWS no incluidos en este laboratorio está prohibido por la política de IAM que se le asignó a tu usuario de laboratorio. En algunos casos, es posible que las limitaciones vayan más allá de esta restricción, como parte intencional del diseño del laboratorio. Recibirás mensajes de error cuando intentes acceder a otros servicios o llevar a cabo acciones diferentes de las que se incluyen en esta guía de laboratorio.
AWS CloudFormation ofrece a los desarrolladores y administradores de sistemas un método sencillo para crear y administrar un conjunto de recursos de AWS relacionados entre sí, aprovisionarlos y actualizarlos de manera ordenada y predecible.
Puedes utilizar las plantillas de muestra de AWS CloudFormation o crear tus propias plantillas para describir los recursos de AWS, así como cualquier dependencia asociada o parámetros de tiempo de ejecución necesarios para ejecutar las aplicaciones. No necesitas saber el orden de aprovisionamiento de los servicios de AWS ni los detalles del funcionamiento de esas dependencias. AWS CloudFormation se encarga de todo eso por ti. Después de que se desplieguen los recursos de AWS, puedes modificarlos y actualizarlos de forma controlada y predecible mediante la aplicación del control de versiones a tu infraestructura de AWS tal y como hace con el software.
Puedes desplegar y actualizar una plantilla y tu colección de recursos asociados (lo que se conoce como “pila”) por medio de las API, AWS Command Line Interface o la consola de administración de AWS. AWS CloudFormation está disponible sin cargo adicional; los clientes pagan únicamente por los recursos de AWS que necesitan para ejecutar sus aplicaciones.
Una plantilla de AWS CloudFormation es una declaración de los recursos de AWS que componen una pila. La plantilla se almacena como archivo de texto en formato de notación de objetos JavaScript (JSON) o YAML. Como solo se trata de archivos de texto, se los puede crear y editar con cualquier editor de texto y administrar con el sistema de control de código fuente junto con el resto del código fuente.
En la plantilla correspondiente a este laboratorio, se utiliza la estructura de YAML que AWS CloudFormation puede interpretar para declarar los recursos de AWS que quieres crear y configurar. En el formato YAML, los objetos se declaran como un par nombre-valor o un emparejamiento de un nombre. En una plantilla de AWS CloudFormation se pueden declarar estos seis objetos de nivel superior:
- AWSTemplateFormatVersion
- Descripción
- Parámetros
- Mappings (Mapeos)
- Recursos
- Salidas
El único objeto de nivel superior obligatorio es el objeto Recursos, con el que se debe declarar al menos un recurso. Este laboratorio se inicia con la plantilla más básica, que contiene solo un objeto Recursos, con una única declaración de recursos.
Las definiciones de cada uno de estos objetos se pueden encontrar en el documento en línea Anatomía de la plantilla.
Clave de iconos
En este laboratorio se utilizan varios iconos para llamar la atención sobre diferentes tipos de instrucciones y notas. En la siguiente lista se explica el propósito de cada icono:
- Salida esperada: contiene una muestra de salida que permite revisar la salida de un comando o archivo editado.
- Nota: Contiene un consejo, nota u orientación importante.
- Información adicional: indica dónde encontrar más información.
- Ten en cuenta: Propone hacer una pausa para considerar cómo aplicarías un concepto en tu propio entorno o para iniciar una conversación sobre el tema en cuestión.
- Copiar y pegar: es un bloque de código en el que se muestra el contenido de un script o archivo que tienes que copiar y pegar, y que fue creado previamente para ti. Si debes copiar solo alguna parte de un bloque de código, habrá comentarios numerados indicados con TODO (Tarea) en el código.