La mejor manera de comenzar a utilizar AWS CloudFormation es mediante la consulta de la Guía de introducción, que forma parte de nuestra documentación técnica. En unos minutos, podrá implementar una de las plantillas de muestra y comenzar a crear sus propias configuraciones de infraestructura.
Introducción a AWS CloudFormation

Las plantillas de CloudFormation ofrecen varias ventajas:

Seguir un formato conocido: una plantilla de CloudFormation es un archivo de texto con formato JSON (JavaScript Object Notation) o YAML que describe la infraestructura de AWS necesaria para ejecutar una aplicación o un servicio, junto con las interconexiones que existan entre ellos.

Administrar relaciones: las plantillas contienen una descripción concisa de las relaciones existentes entre los recursos, por ejemplo las instancias EC2 que deben asociarse con un balanceador de carga de Elastic Load Balancing, o la necesidad de que un volumen de EBS esté en la misma zona de disponibilidad de EC2 que la instancia a la que se conecta.

Uso constante: la utilización de los parámetros de las plantillas permite utilizar una única plantilla para muchas implementaciones de la infraestructura con diferentes valores de configuración, como cuántas instancias hay que implementar para la aplicación.

Obtener comentarios útiles: las plantillas también ofrecen propiedades de salida para comunicar al usuario los resultados de implementación o información relativa a la configuración. Por ejemplo, cuando se incluye en una instancia, una plantilla puede incluir la URL del punto de conexión de Elastic Load Balancing que el usuario debería utilizar para conectarse a la aplicación que acaba de incluir en una instancia.

Evitar conflictos: todos los recursos de AWS incluidos en una plantilla se identifican mediante nombres lógicos, lo que permite crear varias pilas a partir de una plantilla sin temor a encontrarse con conflictos de nomenclatura entre recursos de AWS.

Escribir y listo: utilice cualquier método para lanzar una pila sin tener que registrar previamente la plantilla en AWS CloudFormation.

Visualización de la pila:CloudFormation Designer permite ver las plantillas en un diagrama. La herramienta permite ver fácilmente los recursos de AWS y sus relaciones, y organizarlos espacialmente de modo tal que el diagrama resulte comprensible. Puede modificar las plantillas arrastrando los elementos con el ratón y con el editor de JSON integrado. Los cambios que haga en el diagrama se trasladarán automáticamente al código JSON de la plantilla.                                                                                                                                          

Buscar recursos: AWS CloudFormation conserva una copia de la plantilla de pila para poder utilizar la consola de administración de AWS, las herramientas de línea de comandos o las API con objeto de consultar las configuraciones precisas de recursos que se aplicaron durante la creación de la pila.

Automatizar: tiene la opción de automatizar la generación de plantillas con la utilización de un lenguaje de programación o una herramienta de su elección. También puede automatizar la creación de pilas a partir de plantillas mediante la API de CloudFormation, los SDK de AWS o la CLI de AWS.

Una plantilla tiene la siguiente estructura de JSON de alto nivel:

{

    "Description" : "A text description for the template usage",

    "Parameters": {

        // A set of inputs used to customize the template per deployment

    },

    "Resources" : {

        // The set of AWS resources and relationships between them

    },

    "Outputs" : {

        // A set of values to be made visible to the stack creator

    },

    "AWSTemplateFormatVersion" : "2010-09-09"

}

La siguiente plantilla es un ejemplo sencillo en el que se muestra cómo crear una instancia EC2:

{

    "Description" : "Create an EC2 instance running the Amazon Linux 32 bit AMI.",

    "Parameters" : {

        "KeyPair" : {

            "Description" : "The EC2 Key Pair to allow SSH access to the instance",

            "Type" : "String"

        }

    },

    "Resources" : {

        "Ec2Instance" : {

            "Type" : "AWS::EC2::Instance",

            "Properties" : {

                "KeyName" : { "Ref" : "KeyPair" },

                "ImageId" : "ami-3b355a52"

            }

        }

    },

    "Outputs" : {

        "InstanceId" : {

            "Description" : "The InstanceId of the newly created EC2 instance",

            "Value" : {

                "Ref" : "Ec2Instance"

            }

        }

    },

    "AWSTemplateFormatVersion" : "2010-09-09"

}   

Uso de una plantilla de AWS CloudFormation para crear y administrar una pila

Una pila es un conjunto de recursos que se producen como resultado de la inclusión de una plantilla en una instancia. Para crear una pila, es necesario proporcionar una plantilla y todos los parámetros necesarios para AWS CloudFormation. Según la plantilla y las dependencias especificadas en ella, AWS CloudFormation determina qué recursos de AWS deben crearse y en qué orden.

Para actualizar una pila, debe proporcionar una plantilla con la configuración deseada de todos los recursos de la pila. Puede modificar las propiedades de los recursos existentes de su pila para que reaccionen a los cambios del entorno o a los nuevos requisitos de las aplicaciones. Por ejemplo, puede cambiar los umbrales de alarma de sus alarmas de AWS CloudWatch o actualizar la AMI que se ejecuta en una instancia de la pila. AWS CloudFormation se encarga de aplicar dichos cambios a los diferentes recursos de la pila. En muchos casos, los cambios se realizarán sin afectar a la aplicación en ejecución. No obstante, si un cambio no se puede realizar de forma dinámica (como la actualización de la AMI en una instancia EC2), AWS CloudFormation creará un recurso nuevo, lo reconectará a la pila y, una vez que el servicio ha determinado que la actualización completa se realizará correctamente, eliminará ​el recurso anterior.

AWS CloudFormation creará o actualizará una pila completa. Si una pila no se puede crear o actualizar completamente, AWS CloudFormation la desmontará. A efectos de depuración, la operación de restauración puede deshabilitarse y volver a intentar crear o actualizar la pila manualmente en otro momento.

AWS CloudFormation Designer también permite crear o modificar la plantilla de una pila y luego enviarla a AWS CloudFormation para crear o actualizar la pila. AWS CloudFormation Designer está disponible con la consola de administración de AWS.


Es fácil obtener acceso a AWS CloudFormation desde la consola de administración de AWS, que ofrece una interfaz basada en web que se puede controlar con el ratón para implementar y administrar pilas. Es posible crear, eliminar y actualizar una aplicación desde la consola de administración de AWS en unos sencillos pasos.

Uso de la API de AWS CloudFormation

AWS CloudFormation ofrece un conjunto sencillo de API fáciles de utilizar y muy flexibles. Si desea obtener una lista completa de las API de AWS CloudFormation disponibles, consulte la Guía de referencia de API de AWS CloudFormation. A continuación se muestran algunas de las API más utilizadas y su funcionalidad:

CreateStack: inicia la creación de una pila nueva. Los parámetros de entrada de la llamada incluyen el nombre de la pila y un nombre de archivo (o URL de Amazon S3) de la plantilla fuente. Si el proceso de creación de la pila se realiza de forma satisfactoria, la pila tendrá el estado CREATE_COMPLETE. Si falla la creación de la pila, AWS CloudFormation elimina los recursos que se hayan creado con anterioridad, salvo que el usuario haya especificado un indicador para que se conserven estos elementos a efectos de depuración.

ListStacks: enumera todas las pilas de la cuenta. Puede utilizar esta opción para ver el conjunto de pilas y su estado actual. Por ejemplo, si la pila se está creando o actualizando.

DescribeStackResources: enumera todos los identificadores y nombres de recursos de AWS que se han creado como parte del proceso de creación de una pila. Además de ofrecerle información a usted, una aplicación compatible con AWS CloudFormation puede utilizar esta llamada para comprender su entorno.

DescribeStackEvents: enumera todas las operaciones y los eventos generados por AWS CloudFormation para una pila, con objeto de que usted pueda ver el progreso de las operaciones de creación o eliminación.

UpdateStack: inicia el proceso de actualización de una pila existente. Los parámetros de entrada de la llamada incluyen el nombre de la pila y un nombre de archivo (o URL de Amazon S3) de la plantilla actualizada. Si el proceso de actualización de la pila se realiza de forma satisfactoria, la pila tendrá el estado UPDATE_COMPLETE. Si falla la actualización de la pila, AWS CloudFormation restaura los cambios que se hayan realizado en los recursos para que la pila vuelva a estar en el estado descrito en la plantilla original.

AWS CloudFormation también se puede utilizar mediante los AWS SDK y la CLI de AWS.

AWS CloudFormation se integra con Amazon Simple Notification Service (Amazon SNS), lo que permite recibir notificaciones a medida que se realizan las operaciones de creación y eliminación de la pila. Además de ofrecerle el estado de las operaciones, también permite que otros programas estén al tanto de los eventos que suceden dentro de CloudFormation y puedan responder o incluso participar en el proceso de configuración de la pila.

Uso de recursos de AWS

La plantilla de AWS CloudFormation está diseñada para aprovechar la experiencia que haya adquirido usted con AWS. Cada recurso tiene un conjunto de parámetros con nombres idénticos a los nombres que se utilizan para crear los recursos a través de su API nativa. El snippet de la siguiente plantilla muestra cómo se define un volumen de Amazon EBS. El nombre lógico del volumen de la plantilla es "myVolume" y el tipo es "AWS::EC2::Volume". Las propiedades le resultarán muy familiares si utilizó volúmenes de EBS con anterioridad.

"myVolume" : {

    "Type" : "AWS::EC2::Volume",

    "Properties" : {

        "Size" : "10",

        "SnapshotId" : "snap-7b8fd361",

        "AvailabilityZone" : "us-east-1a"

    }

}
Ver menos >>

Proceso de arranque de aplicaciones y gestión de actualizaciones

AWS CloudFormation ofrece un número de scripts de ayudante que se pueden implementar en sus instancias EC2. Estos scripts proporcionan una forma simple de leer metadatos de recursos de la pila y utilizarlos para configurar su aplicación, implementar paquetes y archivos en su instancia que aparezcan en su plantilla y reaccionar a las actualizaciones de la pila como, por ejemplo, en caso de cambios en la configuración o actualizaciones de la aplicación.

Se encuentran disponibles los siguientes scripts:

cfn-get-metadata: recupere metadatos adjuntos a los recursos de la plantilla.

cfn-init: descargue e instale paquetes y archivos descritos en la plantilla.

cfn-signal: indique al flujo de trabajo de creación de la pila que su aplicación está en funcionamiento y lista para incorporar tráfico.

cfn-hup: un demonio para escuchar las actualizaciones de pila que se iniciaron a través de la consola de AWS, las herramientas de línea de comandos o el API directamente y ejecutar los ganchos específicos de su aplicación para reaccionar frente a estos cambios.

Puede utilizar los scripts de CloudFormation de forma independiente o en combinación con CloudInit, una característica disponible en la AMI de Amazon Linux y en algunas otras AMI de Linux. Para obtener más detalles sobre cómo arrancar aplicaciones y actualizar la configuración, consulte los recursos para desarrolladores de AWS CloudFormation.

Uso indicado y restricciones

El uso que realice de este servicio está sujeto al Contrato de cliente de Amazon Web Services.

 

Más información sobre los precios de AWS CloudFormation

Visite la página de precios de AWS CloudFormation
¿Listo para crear?
Introducción a AWS CloudFormation
¿Tiene más preguntas?
Contacte con nosotros