¿Cómo funciona AWS CloudFormation? - AWS CloudFormation

¿Cómo funciona AWS CloudFormation?

Cuando crea una pila, AWS CloudFormation hace llamadas de servicio subyacentes a AWS para aprovisionar y configurar sus recursos. CloudFormation solo puede llevar a cabo acciones para las cuales tiene permiso. Por ejemplo, para crear instancias de EC2 mediante CloudFormation, necesita permisos para crear instancias. Necesitará permisos similares para terminar instancias al eliminar pilas con instancias. Use AWS Identity and Access Management (IAM) para administrar permisos.

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

  1. Use AWS CloudFormation Designer o su propio editor de texto para crear o modificar una plantilla de CloudFormation en formato JSON o YAML. También puede optar por utilizar una plantilla proporcionada. La CloudFormation plantilla describe los recursos que desea y sus ajustes. Por ejemplo, suponga que desea crear una instancia de EC2. La plantilla puede indicar una instancia de Amazon EC2 y describir sus propiedades, tal y como se muestra en el ejemplo siguiente:

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

  3. Cree una pila de CloudFormation especificando la ubicación del archivo de la plantilla; por ejemplo, una ruta en el equipo local o una 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 mediante la consola de CloudFormation, la operación CreateStack de API o el comando create-stack AWS CLI.

    nota

    Si especifica un archivo de plantilla almacenado localmente, CloudFormation lo carga a un bucket de S3 en su cuenta de 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 acceder a los buckets. Si ya hubiera un bucket creado por 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.

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

Una vez que se han creado todos los recursos, 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, 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. CloudFormation compara la plantilla modificada con la original y genera un conjunto de cambios. El conjunto de cambios enumera las modificaciones propuestas. Tras revisar los cambios, puede iniciar 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 CloudFormation por medio de AWS CloudFormation Designer o un editor de texto. Por ejemplo, si desea cambiar el tipo de instancia de una instancia de 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 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, 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 CloudFormation realizará los cambios que espera. Por ejemplo, compruebe si 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 una cuota de cuenta, si actualizará un recurso que no admite actualizaciones o si no tiene suficientes permisos para modificar un recurso; todo esto puede causar errores en la actualización de una pila.

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

Eliminar una pila

Al eliminar una pila, debe especificar la pila que se debe eliminar, y CloudFormation elimina la pila y todos los recursos en dicha pila. Puede crear pilas mediante la consola de CloudFormation, la operación DeleteStack de API o el comando delete-stack AWS CLI.

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, CloudFormation señala que se ha eliminado correctamente su pila. Si 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 de

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