¿Cómo funciona AWS CloudFormation? - AWS CloudFormation

¿Cómo funciona AWS CloudFormation?

Cuando crea una pila, AWS CloudFormation realiza llamadas de servicio subyacentes a AWS para aprovisionar y configurar sus recursos. Tenga en cuenta que AWS CloudFormation solo puede realizar acciones para las cuales usted tiene permiso. Por ejemplo, para crear instancias EC2 mediante AWS CloudFormation, necesita permisos para crear instancias. Necesitará permisos similares para terminar instancias al eliminar pilas con instancias. Utilice AWS Identity and Access Management (IAM) para la administración de permisos.

Su plantilla declara todas las llamadas que AWS CloudFormation hace. Por ejemplo, suponga que tiene una plantilla que describe una instancia EC2 con un tipo de instancia t1.micro. Cuando utiliza la plantilla para crear una pila, AWS CloudFormation llama a la API de creación de instancias Amazon EC2 y especifica el tipo de instancia como t1.micro. En el siguiente diagrama se resume el flujo de trabajo de AWS CloudFormation para la creación de pilas.

  1. Puede diseñar una plantilla de AWS CloudFormation (un documento con formato JSON o YAML) en AWS CloudFormation Designer o escribir una en un editor de texto. También puede optar por utilizar una plantilla proporcionada. La plantilla describe los recursos que desea y sus ajustes. Por ejemplo, suponga que desea crear una instancia EC2. La plantilla puede declarar una instancia EC2 y describir sus propiedades, tal y como se muestra en el ejemplo siguiente:

    ejemplo Sintaxis JSON

    { "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "A simple EC2 instance", "Resources" : { "MyEC2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "ImageId" : "ami-0ff8a91507f77f867", "InstanceType" : "t1.micro" } } } }

    ejemplo Sintaxis del YAML

    AWSTemplateFormatVersion: '2010-09-09' Description: A simple EC2 instance Resources: MyEC2Instance: Type: AWS::EC2::Instance Properties: ImageId: ami-0ff8a91507f77f867 InstanceType: t1.micro
  2. Guarde la plantilla localmente o en un bucket de S3. Si creó una plantilla, guárdela con cualquier extensión de archivo como .json, .yaml o .txt.

  3. Cree una pila de AWS CloudFormation especificando la ubicación de su archivo de plantilla, como, por ejemplo, una ruta en el equipo local o en una dirección URL de Amazon S3. Si la plantilla contiene parámetros, puede especificar los valores de entrada al crear la pila. Los parámetros le permiten pasar valores a la plantilla para poder personalizar sus recursos cada vez que crea una pila.

    Puede crear pilas utilizando la consola de AWS CloudFormation, la API o la CLI de AWS.

    nota

    Si especifica un archivo de plantilla almacenado localmente, AWS CloudFormation lo carga en un bucket de S3 en su cuenta de AWS. AWS CloudFormation crea un bucket para cada región en la que carga un archivo de plantilla. Cualquiera con permisos de Amazon Simple Storage Service (Amazon S3) en su cuenta de AWS puede obtener acceso a los buckets. Si ya hubiera un bucket creado por AWS CloudFormation, la plantilla se añade a dicho bucket.

    Puede utilizar su propio bucket y administrar sus permisos cargando manualmente las plantillas a Amazon S3. Entonces, siempre que cree o actualice una pila, especifique la URL de Amazon S3 de un archivo de plantilla.

AWS CloudFormation aprovisiona y configura recursos realizando llamadas a los servicios de AWS que se describen en su plantilla.

Una vez que se han creado todos los recursos, AWS CloudFormation informa que se ha creado su pila. A continuación, puede comenzar a utilizar los recursos de la pila. Si se produce un error durante la creación de la pila, AWS CloudFormation revierte los cambios eliminando los recursos que creó.

Actualización de una pila con conjuntos de cambios

Cuando tenga que actualizar los recursos de su pila, puede modificar la plantilla de los recursos. No es necesario crear una nueva pila y eliminar la antigua. Para actualizar una pila, cree un conjunto de cambios enviando una versión modificada de la plantilla de pila original, diferentes valores de parámetros de entrada, o ambos. AWS CloudFormation compara la plantilla modificada con la plantilla original y genera un conjunto de cambios. El conjunto de cambios enumera las modificaciones propuestas. Tras revisar los cambios, puede ejecutar el conjunto de cambios para actualizar la pila o puede crear un nuevo conjunto de cambios. En el siguiente diagrama se resume el flujo de trabajo para la actualización de una pila.

importante

Las actualizaciones pueden causar interrupciones. Dependiendo del recurso y de las propiedades que esté actualizando, una actualización podría interrumpir o incluso sustituir un recurso existente. Para obtener más información, consulte Actualizaciones de pila de AWS CloudFormation.

  1. Puede modificar una plantilla de pila de AWS CloudFormation utilizando AWS CloudFormation Designer o un editor de texto. Por ejemplo, si desea cambiar el tipo de instancia de una instancia EC2, deberá cambiar el valor de la propiedad InstanceType en la plantilla original de la pila.

    Para obtener más información, consulte Modificación de una plantilla de pila.

  2. Guarde la plantilla de AWS CloudFormation localmente o en un bucket de S3.

  3. Cree un conjunto de cambios especificando la pila que desea actualizar y la ubicación de la plantilla modificada, como por ejemplo una ruta en su equipo local o una dirección URL de Amazon S3. Si la plantilla contiene parámetros, puede especificar valores al crear el conjunto de cambios.

    Para obtener más información sobre la creación de conjuntos de cambios, consulte Actualización de pilas con conjuntos de cambios.

    nota

    Si especifica una plantilla almacenada en su equipo local, AWS CloudFormation cargará automáticamente su plantilla a un bucket de S3 en su cuenta de AWS.

  4. Vea el conjunto de cambios para comprobar que AWS CloudFormation realizará los cambios que espera. Por ejemplo, compruebe si AWS CloudFormation reemplazará cualquier recurso crítico de la pila. Puede crear tantos conjuntos de cambios como necesite hasta que haya incluido los cambios que desea.

    importante

    Los conjuntos de cambios no indican si la actualización de la pila se realizará correctamente. Por ejemplo, un conjunto de cambios no comprueba si se va a sobrepasar un límite de cuenta, si va a actualizar un recurso que no admite actualizaciones o si no tiene suficientes permisos para modificar un recurso, todo esto puede causar el error de actualización de una pila.

  5. Ejecute el conjunto de cambios que desea aplicar a la pila. AWS CloudFormation actualiza la pila actualizando únicamente los recursos que ha modificado y señala que se ha actualizado correctamente la pila. Si se produce un error en la actualización de la pila, AWS CloudFormation revierte los cambios para restaurar la pila al último estado de funcionamiento conocido.

Eliminación de una pila

Al eliminar una pila, debe especificar la pila que se debe eliminar, y AWS CloudFormation elimina la pila y todos los recursos en dicha pila. Puede eliminar pilas utilizando la consola de AWS CloudFormation, la API o la CLI de AWS.

Si desea eliminar una pila, pero desea conservar algunos recursos de la pila, puede usar una política de eliminación para conservar dichos recursos.

Una vez que se han eliminado todos los recursos, AWS CloudFormation señala que se ha eliminado correctamente su pila. Si AWS CloudFormation no puede eliminar un recurso, no se eliminará la pila. Cualquier recurso que no se haya eliminado permanecerá hasta que pueda eliminar correctamente la pila.

Recursos adicionales

  • Para obtener más información acerca de la creación de plantillas de AWS CloudFormation, consulte Anatomía de la plantilla.

  • Para obtener más información sobre la creación, actualización o eliminación de pilas, consulte Uso de pilas.