AWS CloudFormation es un servicio proporcionado por Amazon Web Services (AWS) que permite a los usuarios modelar y administrar recursos de infraestructura de forma automatizada y segura. [ 1 ] Mediante CloudFormation, los desarrolladores pueden definir y aprovisionar recursos de infraestructura de AWS utilizando una plantilla de infraestructura como código con formato JSON o YAML . [ 2 ] [ 3 ] El servicio se lanzó el 25 de febrero de 2011. [ 4 ] [ 5 ] [ 6 ] [ 7 ]
Descripción general
AWS CloudFormation proporciona una forma para que los usuarios modelen una infraestructura completa de AWS en un archivo de texto, lo que permite controlar las versiones, compartir y reutilizar la infraestructura. [ 8 ] Mediante el uso de plantillas, los usuarios pueden crear, actualizar y eliminar un conjunto de recursos como una sola unidad, conocida como pila . [ 9 ]
Anatomía de la plantilla
Una plantilla de CloudFormation consta de varias secciones, incluidas Recursos, Parámetros, Asignaciones, Condiciones, Salidas y Metadatos. [ 10 ] La sección más importante es la de Recursos, que define los recursos de AWS que se crearán o modificarán.
Recursos
Los recursos son los componentes de AWS que se crean, actualizan o eliminan cuando se crea, actualiza o elimina la pila de CloudFormation. Algunos ejemplos de recursos son las instancias de Amazon EC2 , los buckets de Amazon S3 y las funciones de AWS Lambda . [ 11 ]
Parámetros
Los parámetros permiten a los usuarios introducir valores personalizados en una plantilla de CloudFormation, lo que posibilita la personalización sin modificar la plantilla en sí. [ 12 ] Esto hace que las plantillas sean más reutilizables y flexibles para adaptarse a diferentes entornos y casos de uso.
Mapeos
Las asignaciones definen un conjunto de pares clave-valor que se pueden usar para asignar valores de entrada a valores de salida correspondientes, lo que permite definir propiedades y valores de forma condicional según los parámetros de entrada. [ 13 ] Por ejemplo, las asignaciones se pueden usar para definir diferentes tipos de instancias e imágenes de máquina de Amazon (AMI) para diferentes entornos.
Condiciones
Las condiciones permiten a los usuarios definir instrucciones condicionales dentro de una plantilla de CloudFormation, lo que posibilita la creación o modificación de recursos según criterios específicos. [ 14 ] Esto puede ser útil en casos donde ciertos recursos solo deben crearse o modificarse bajo circunstancias específicas.
Salidas
Las salidas proporcionan una forma de exportar información sobre los recursos creados, lo que permite compartir esta información entre pilas o con sistemas externos. [ 15 ] Las salidas se pueden usar para hacer referencia fácilmente a los recursos creados por una pila en otra pila, lo que facilita la integración de diferentes servicios de AWS.
Metadatos
Los metadatos se utilizan para proporcionar información adicional sobre la plantilla o los recursos dentro de la plantilla. [ 16 ] Esto puede incluir documentación, información de licencia u otros datos descriptivos.
Plantilla de ejemplo de CloudFormation
El siguiente ejemplo muestra una plantilla simple de AWS CloudFormation en formato YAML : [ 17 ]
--- AWSTemplateFormatVersion: '2010-09-09' Descripción: Una plantilla sencilla de AWS CloudFormation para un bucket de Amazon S3. Parámetros: Nombre del cubo: Descripción: El nombre del bucket de Amazon S3. Tipo: Cadena Recursos: S3Bucket: Tipo: 'AWS::S3::Bucket' Propiedades: Nombre del cubo: !Ref Nombre del cubo Salidas: BucketARN: Descripción: El ARN del bucket de Amazon S3. Valor: !GetAtt S3Bucket.Arn
Esta plantilla tiene las siguientes secciones:
AWSTemplateFormatVersion : especifica la versión de la plantilla de CloudFormation.
Descripción : Proporciona una breve descripción de la plantilla.
Parámetros : Define los parámetros de entrada para la plantilla. En este ejemplo, el parámetro es el nombre del bucket de Amazon S3.
Recursos : Enumera los recursos de AWS que se crearán. En este caso, se especifica la creación de un bucket de Amazon S3.
Salidas : Define los valores que se devolverán después de que se cree la pila. En este caso, devuelve el Nombre de recurso de Amazon (ARN) del bucket de S3 creado.
Al usar esta plantilla en AWS CloudFormation, un usuario puede crear un bucket de Amazon S3 con un nombre específico, y el ARN del bucket creado se devolverá como valor de salida.
Detección de desviaciones en AWS CloudFormation
La detección de desviaciones de AWS CloudFormation es una función que permite a los usuarios detectar si los recursos de su pila se han desviado de las configuraciones de plantilla previstas. [ 18 ] La detección de desviaciones ayuda a mantener la coherencia de los recursos de infraestructura y facilita la resolución de problemas cuando se producen cambios inesperados.
Hitos clave
2011: AWS CloudFormation se lanzó oficialmente el 25 de febrero de 2011, proporcionando a los usuarios una forma de definir y administrar los recursos de infraestructura de AWS utilizando un único archivo de texto. [ 19 ]
2016: Se introdujo la compatibilidad con plantillas en formato YAML , además del formato JSON original , ofreciendo a los usuarios más opciones al crear plantillas. [ 20 ]
2018: Se lanzó AWS CloudFormation Drift Detection, que permite a los usuarios detectar cuándo los recursos de su pila se han desviado de sus configuraciones esperadas. Esta función ayuda a los usuarios a identificar y solucionar discrepancias de configuración. [ 21 ]
2019: Se introdujeron AWS CloudFormation Registry y CLI, lo que permite a los usuarios ampliar el servicio con tipos de recursos personalizados y de terceros. Esta mejora ofrece mayor flexibilidad en la gestión de recursos más allá de las ofertas nativas de AWS. [ 22 ]
Véase también
Referencias
- ^ "AWS CloudFormation - Infraestructura como código y aprovisionamiento de recursos de AWS" . Amazon Web Services, Inc. Consultado el 19 de marzo de 2023 .
- ^ "Guía del usuario de AWS CloudFormation" . Amazon Web Services, Inc. Consultado el 19 de marzo de 2023 .
- ^ Br, John; Publicado el (11-01-2020). "¿Qué es AWS CloudFormation?" . TechRadar . Recuperado el 19-03-2023 .
- ^ Ricknäs, Mikael (25 de febrero de 2011). "Amazon pretende facilitar la creación de nubes complejas" . InfoWorld . Consultado el 19 de marzo de 2023 .
- ^ Redactor, personal de CBR (28 de febrero de 2011). "Amazon lanza AWS CloudFormation" . Tech Monitor . Consultado el 19 de marzo de 2023 .
- ^ "Amazon AWS lanza CloudFormation" . InfoQ . Consultado el 19 de marzo de 2023 .
- ^ "Historial de versiones - AWS CloudFormation" . docs.aws.amazon.com . Consultado el 19 de marzo de 2023 .
- ^ "Características de AWS CloudFormation" . Amazon Web Services, Inc. Consultado el 19 de marzo de 2023 .
- ^ "Trabajando con pilas - AWS CloudFormation" . Amazon Web Services, Inc. Consultado el 19 de marzo de 2023 .
- ^ "Anatomía de la plantilla - AWS CloudFormation" . Amazon Web Services, Inc. Recuperado el 19 de marzo de 2023 .
- ^ "Referencia de tipos de recursos y propiedades - AWS CloudFormation" . Amazon Web Services, Inc. Consultado el 19 de marzo de 2023 .
- ^ "Parámetros - AWS CloudFormation" . Amazon Web Services, Inc. Consultado el 19 de marzo de 2023 .
- ^ "Asignaciones - AWS CloudFormation" . Amazon Web Services, Inc. Consultado el 19 de marzo de 2023 .
- ^ "Condiciones - AWS CloudFormation" . Amazon Web Services, Inc. Consultado el 19 de marzo de 2023 .
- ^ "Outputs - AWS CloudFormation" . Amazon Web Services, Inc. Consultado el 19 de marzo de 2023 .
- ^ "Metadatos - AWS CloudFormation" . Amazon Web Services, Inc. Consultado el 19 de marzo de 2023 .
- ^ "Anatomía de la plantilla" . Amazon Web Services, Inc. Consultado el 19 de marzo de 2023 .
- ^ "Nuevo: Detección de desviaciones para recursos de pila de AWS CloudFormation" . Amazon Web Services, Inc. Recuperado el 19 de marzo de 2023 .
- ^ "Presentación de AWS CloudFormation" . Amazon Web Services, Inc. 25 de febrero de 2011. Consultado el 19 de marzo de 2023 .
- ^ Jeff Barr (19 de septiembre de 2016). "Actualización de AWS CloudFormation: YAML, referencias entre pilas, sustitución simplificada" . Amazon Web Services, Inc. Recuperado el 19 de marzo de 2023 .
- ^ "Nuevo: Detección de desviaciones en CloudFormation | Blog de noticias de AWS" . aws.amazon.com . 13 de noviembre de 2018. Consultado el 19 de marzo de 2023 .
- ^ "Actualización de CloudFormation: CLI + Compatibilidad con recursos de terceros + Registro | Blog de noticias de AWS" . aws.amazon.com . 18 de noviembre de 2019. Consultado el 19 de marzo de 2023 .
Enlaces externos
- Sitio web oficial de AWS CloudFormation
- Guía del usuario de AWS CloudFormation
- Servicios web de Amazon