Actualización de una pila de CloudFormation
nota
Este tutorial se basa en los conceptos presentados en el tutorial Implementación de aplicaciones en Amazon EC2. Si no ha completado ese tutorial, le recomendamos que lo haga primero para comprender el arranque de EC2 con CloudFormation.
En este tema se ilustra una sencilla progresión de actualizaciones a una pila en ejecución. Le explicaremos con detalle los pasos siguientes:
-
Cree la pila inicial: cree una pila con una AMI base de Amazon Linux 2 e instale el Apache Web Server y una aplicación PHP sencilla con los scripts auxiliares de CloudFormation.
-
Actualice la aplicación: actualice uno de los archivos en la aplicación e implemente el software con CloudFormation.
-
Añada un par de claves: añada un par de claves de Amazon EC2 a la instancia y, a continuación, actualice el grupo de seguridad para permitir el acceso de SSH a la instancia.
-
Actualice el tipo de instancia: cambie el tipo de instancia de la instancia de Amazon EC2 subyacente.
-
Actualice la AMI: cambie la Imagen de máquina de Amazon (AMI) para la instancia de Amazon EC2 en la pila.
nota
CloudFormation es gratuito, pero se le cobrarán los recursos de Amazon EC2 que cree. Sin embargo, si es la primera vez que utiliza AWS, puede aprovechar el nivel gratuito
Temas
Paso 1: crear la pila inicial
Empezaremos creando una pila que podemos utilizar a lo largo del resto de este tema. Hemos proporcionado una sencilla plantilla que lanza una aplicación web PHP de una sola instancia alojada en el Apache Web Server y que se ejecuta en una AMI de Amazon Linux 2.
El Apache Web Server, PHP y la aplicación PHP sencilla están instalados por los scripts auxiliares de CloudFormation que vienen instalados de forma predeterminada en la AMI de Amazon Linux 2. El siguiente fragmento de la plantilla muestra los metadatos que describe los paquetes y archivos para instalar, en este caso, el Apache Web Server y la infraestructura PHP desde el repositorio Yum para la AMI de Amazon Linux 2. El fragmento también muestra la sección Services, que garantiza que el Apache Web Server se está ejecutando.
WebServerInstance: Type: AWS::EC2::Instance Metadata: AWS::CloudFormation::Init: config: packages: yum: httpd: [] php: [] files: /var/www/html/index.php: content: | <?php echo '<h1>Hello World!</h1>'; ?> mode: '000644' owner: apache group: apache services: systemd: httpd: enabled: true ensureRunning: true
La aplicación en sí es un ejemplo del tipo “Hola, mundo”, que se define completamente en la plantilla. En el caso de una aplicación real, los archivos pueden almacenarse en Amazon S3, GitHub o en otro repositorio y consultarse desde la plantilla. CloudFormation puede descargar paquetes (como RPM o RubyGems) y los archivos individuales de referencia y expandir archivos .zip y .tar para crear los artefactos de aplicación en la instancia de Amazon EC2.
La plantilla permite y configura el daemon cfn-hup para escuchar los cambios de la configuración definidos en los metadatos de la instancia de Amazon EC2. Al utilizar el daemon cfn-hup, puede actualizar el software de la aplicación, como la versión de Apache o PHP, o actualizar el archivo de la aplicación PHP directamente desde CloudFormation. El siguiente fragmento del mismo recurso de Amazon EC2 de la plantilla muestra los elementos necesarios para configurar cfn-hup para que llame a cfn-init cada dos minutos para detectar y aplicar actualizaciones a los metadatos. De lo contrario, cfn-init solo se ejecuta una vez al iniciarse.
files: /etc/cfn/cfn-hup.conf: content: !Sub | [main] stack=${AWS::StackId} region=${AWS::Region} # The interval used to check for changes to the resource metadata in minutes. Default is 15 interval=2 mode: '000400' owner: root group: root /etc/cfn/hooks.d/cfn-auto-reloader.conf: content: !Sub | [cfn-auto-reloader-hook] triggers=post.update path=Resources.WebServerInstance.Metadata.AWS::CloudFormation::Init action=/opt/aws/bin/cfn-init -s ${AWS::StackId} -r WebServerInstance --region ${AWS::Region} runas=root services: systemd: cfn-hup: enabled: true ensureRunning: true files: - /etc/cfn/cfn-hup.conf - /etc/cfn/hooks.d/cfn-auto-reloader.conf
Para completar la pila, en la sección Properties de la definición de la instancia de Amazon EC2, la propiedad UserData contiene el script cloud-init que llama a cfn-init para instalar los paquetes y archivos. Para obtener más información, consulte Referencia de scripts auxiliares de CloudFormation en la Guía de referencia de plantillas de CloudFormation. La plantilla también crea un grupo de seguridad de Amazon EC2
AWSTemplateFormatVersion: 2010-09-09 Parameters: LatestAmiId: Description: The latest Amazon Linux 2 AMI from the Parameter Store Type: AWS::SSM::Parameter::Value<AWS::EC2::Image::Id> Default: '/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2' InstanceType: Description: WebServer EC2 instance type Type: String Default: t3.micro AllowedValues: - t3.nano - t3.micro - t3.small - t3.medium - t3a.nano - t3a.micro - t3a.small - t3a.medium - m5.large - m5.xlarge - m5.2xlarge - m5a.large - m5a.xlarge - m5a.2xlarge - c5.large - c5.xlarge - c5.2xlarge - r5.large - r5.xlarge - r5.2xlarge - r5a.large - r5a.xlarge - r5a.2xlarge ConstraintDescription: must be a valid EC2 instance type. Resources: WebServerInstance: Type: AWS::EC2::Instance Properties: ImageId: !Ref LatestAmiId InstanceType: !Ref InstanceType SecurityGroupIds: - !Ref WebServerSecurityGroup UserData: Fn::Base64: !Sub | #!/bin/bash -xe # Get the latest CloudFormation package yum update -y aws-cfn-bootstrap # Run cfn-init /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource WebServerInstance --region ${AWS::Region} || error_exit 'Failed to run cfn-init' # Start up the cfn-hup daemon to listen for changes to the EC2 instance metadata /opt/aws/bin/cfn-hup || error_exit 'Failed to start cfn-hup' # Signal success or failure /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource WebServerInstance --region ${AWS::Region} Metadata: AWS::CloudFormation::Init: config: packages: yum: httpd: [] php: [] files: /var/www/html/index.php: content: | <?php echo "<h1>Hello World!</h1>"; ?> mode: '000644' owner: apache group: apache /etc/cfn/cfn-hup.conf: content: !Sub | [main] stack=${AWS::StackId} region=${AWS::Region} # The interval used to check for changes to the resource metadata in minutes. Default is 15 interval=2 mode: '000400' owner: root group: root /etc/cfn/hooks.d/cfn-auto-reloader.conf: content: !Sub | [cfn-auto-reloader-hook] triggers=post.update path=Resources.WebServerInstance.Metadata.AWS::CloudFormation::Init action=/opt/aws/bin/cfn-init -s ${AWS::StackId} -r WebServerInstance --region ${AWS::Region} runas=root services: systemd: httpd: enabled: true ensureRunning: true cfn-hup: enabled: true ensureRunning: true files: - /etc/cfn/cfn-hup.conf - /etc/cfn/hooks.d/cfn-auto-reloader.conf CreationPolicy: ResourceSignal: Timeout: PT5M WebServerSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Enable HTTP access via port 80 SecurityGroupIngress: - IpProtocol: tcp FromPort: 80 ToPort: 80 CidrIp: 0.0.0.0/0 Outputs: WebsiteURL: Value: !Sub 'http://${WebServerInstance.PublicDnsName}' Description: URL of the web application
Lanzamiento de una pila a partir de esta plantilla
-
Copie la plantilla y guárdela localmente en el sistema como un archivo de texto. Anote la ubicación, porque necesitará usar el archivo en el siguiente paso.
-
Inicie sesión en la Consola de administración de AWS y abra la consola de CloudFormation en https://console.aws.amazon.com/cloudformation
. -
Elija Crear pila, Con nuevos recursos (estándar).
-
Elija Elegir una plantilla existente.
-
En Especificar plantilla, elija Cargar un archivo de plantilla, busque el archivo que ha creado en el primer paso y, a continuación, seleccione Siguiente.
-
En la página Especificar detalles de pila, escriba
UpdateTutorialcomo nombre de la pila. -
En Parámetros, mantenga todos los parámetros iguales y elija Siguiente dos veces.
-
En la pantalla Revisar y añadir, elija Enviar.
Cuando el estado de la pila sea CREATE_COMPLETE, la pestaña Salidas mostrará la URL de su sitio web. Si selecciona el valor de salida de WebsiteURL, verá su nueva aplicación PHP en marcha.
Paso 2: actualizar la aplicación
Ahora que hemos implementado la pila, vamos a actualizar la aplicación. Haremos un sencillo cambio en el texto impreso por la aplicación. Para ello, agregaremos un comando echo para el archivo index.php tal y como se muestra en este fragmento de la plantilla:
files: /var/www/html/index.php: content: | <?php echo "<h1>Hello World!</h1>";echo "<p>This is an updated version of our application.</p>";?> mode: '000644' owner: apache group: apache
Utilice un editor de texto para modificar manualmente el archivo de plantilla que guardó localmente.
Ahora, actualice la pila.
Actualización de la pila con la plantilla actualizada
-
En la consola de CloudFormation, seleccione la pila de
UpdateTutorial. -
Seleccione Actualizar y realizar una actualización directa.
-
Seleccione Sustituir plantilla existente.
-
En el panel Especificar plantilla, elija Cargar un archivo de plantilla, cargue el archivo de plantilla modificado y, a continuación, elija Siguiente.
-
En la página Especificar detalles de pila, modifique los parámetros y, a continuación, elija Siguiente.
-
En la página Revisar, revise los cambios. En Cambios, debería ver a CloudFormation actualizar el recurso
WebServerInstance. -
Elija Enviar.
Cuando la pila está en el estado UPDATE_COMPLETE, puede seleccionar el valor de salida de WebsiteURL de nuevo, para verificar si han entrado en vigor los cambios de la aplicación. El daemon cfn-hup se ejecuta cada 2 minutos, por lo que la aplicación puede tardar hasta 2 minutos en cambiar una vez actualizado la pila.
Para ver el conjunto de recursos que se actualizaron, vaya a la consola de CloudFormation. En la pestaña Events (Eventos), examine los eventos de pila. En este caso particular, se actualizaron los metadatos de la instancia WebServerInstance de Amazon EC2, lo que provocó que CloudFormation también reevaluara los demás recursos (WebServerSecurityGroup) para asegurarse de que no hubiera otros cambios. Ninguno de los otros recursos de la pila fue modificado. CloudFormation solo actualizará aquellos recursos en la pila que se vean afectados por cualquier cambio realizado en la pila. Estos cambios pueden ser directos, como los cambios de metadatos o la propiedad, o pueden deberse a dependencias o flujos de datos a través de Ref, GetAtt u otras funciones de plantilla intrínsecas. Para obtener más información, consulte la Referencia de función intrínseca.
Esta sencilla actualización ilustra el proceso. Sin embargo, puede realizar cambios mucho más complejos en los archivos y paquetes implementados en las instancias de Amazon EC2. Por ejemplo, puede decidir que necesita añadir MySQL a la instancia, junto con el soporte de PHP para MySQL. Para hacerlo, solo tiene que añadir los archivos y paquetes adicionales junto con los servicios adicionales a la configuración y, luego, actualizar la pila para implementar los cambios.
packages: yum: httpd: [] php: []mysql: []php-mysql: []mysql-server: []mysql-libs: []...services: systemd: httpd: enabled: true ensureRunning: true cfn-hup: enabled: true ensureRunning: true files: - /etc/cfn/cfn-hup.conf - /etc/cfn/hooks.d/cfn-auto-reloader.confmysqld:enabled: trueensureRunning: true
Puede actualizar los metadatos de CloudFormation de modo que se actualicen según las nuevas versiones de los paquetes que utiliza la aplicación. En los ejemplos anteriores, la propiedad de la versión de cada paquete está vacía, lo que indica que cfn-init debería instalar la última versión del paquete.
packages: yum: httpd: [] php: []
Si lo desea, puede especificar una cadena de versión de un paquete. Si cambia la cadena de versión en las posteriores llamadas de actualización de pila, se implementará la nueva versión del paquete. A continuación se muestra un ejemplo de cómo utilizar los números de versión para paquetes RubyGems. Cualquier paquete compatible con control de versiones puede tener versiones específicas.
packages: rubygems: mysql: [] rubygems-update: - "1.6.2" rake: - "0.8.7" rails: - "2.3.11"
Paso 3: añadir acceso SSH con un par de claves
También puede actualizar un recurso de la plantilla para añadir propiedades que no estaban especificadas originalmente en la plantilla. Para ilustrarlo, vamos a añadir un par de claves de Amazon EC2 a una instancia de EC2 existente y, a continuación, abrir el puerto 22 en el grupo de seguridad de Amazon EC2, para que pueda utilizar Secure Shell (SSH) para acceder a la instancia.
Para añadir el acceso SSH a una instancia Amazon EC2 existente
-
Añada dos parámetros adicionales a la plantilla para transmitirlo en el nombre de una ubicación SSH y un par de claves Amazon EC2 existentes.
Parameters: KeyName: Description: Name of an existing EC2 KeyPair to enable SSH access to the instance Type: AWS::EC2::KeyPair::KeyName ConstraintDescription: must be the name of an existing EC2 KeyPair. SSHLocation: Description: The IP address that can be used to SSH to the EC2 instances in CIDR format (e.g. 203.0.113.1/32) Type: String MinLength: 9 MaxLength: 18 Default: 0.0.0.0/0 AllowedPattern: '^(\d{1,3}\.){3}\d{1,3}\/\d{1,2}$' ConstraintDescription: must be a valid IP CIDR range of the form x.x.x.x/x. -
Añada la propiedad
KeyNamea la instancia de Amazon EC2.WebServerInstance: Type: AWS::EC2::Instance Properties: ImageId: !Ref LatestAmiId InstanceType: !Ref InstanceType KeyName: !Ref KeyName SecurityGroupIds: - !Ref WebServerSecurityGroup -
Añada el puerto 22 y la ubicación de SSH a las reglas de entrada del grupo de seguridad de Amazon EC2.
WebServerSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Enable HTTP access via port 80 and SSH access via port 22 SecurityGroupIngress: - IpProtocol: tcp FromPort: 80 ToPort: 80 CidrIp: 0.0.0.0/0 - IpProtocol: tcp FromPort: 22 ToPort: 22 CidrIp: !Ref SSHLocation -
Para actualizar la pila, siga los mismos pasos que se explican en Paso 2: actualizar la aplicación.
Paso 4: actualizar el tipo de instancia
Ahora vamos a demostrar cómo actualizar la infraestructura subyacente cambiando el tipo de instancia.
La pila que hemos creado utiliza hasta ahora una instancia de Amazon EC2 t3.micro. Supongamos que el sitio web recién creado obtiene más tráfico de lo que puede controlar una instancia t3.micro y ahora desea pasar a un tipo de instancia de Amazon EC2 m5.large. Si la arquitectura del tipo de instancia cambia, la instancia se debe crear con una AMI diferente. Sin embargo, tanto el t3.micro como el m5.large utilizan las mismas arquitecturas de CPU y ejecutan las AMI de Amazon Linux 2 (x86_64). Para obtener más información, consulte Compatibilidad para cambiar el tipo de instancias en la Guía del usuario de Amazon EC2.
Vamos a utilizar la plantilla que hemos modificado en el paso anterior para cambiar el tipo de instancia. Dado que InstanceType fue un parámetro de entrada de la plantilla, no es necesario modificar la plantilla; se puede cambiar el valor del parámetro en la página Especificar parámetros.
Actualización de la pila con un nuevo valor de parámetro
-
En la consola de CloudFormation, seleccione la pila de
UpdateTutorial. -
Seleccione Actualizar y realizar una actualización directa.
-
Seleccione Usar plantilla actual y, a continuación, elija Siguiente.
-
En la página Especificar los detalles de la pila, cambie el valor del cuadro de texto InstanceType de
t3.microam5.large. A continuación, elija Siguiente dos veces. -
En la página Revisar, revise los cambios. En Cambios, debería ver a CloudFormation actualizar el recurso
WebServerInstance. -
Elija Enviar.
Puede cambiar de manera dinámica el tipo de instancia de una instancia de Amazon EC2 con respaldo de EBS al iniciar y detener la instancia. CloudFormation intenta optimizar el cambio al actualizar el tipo de instancia y reiniciar la instancia, de modo que el ID de la instancia no cambie. Cuando la instancia se reinicia, sin embargo, la dirección IP pública de la instancia sí cambia. Para garantizar que la dirección IP elástica se vincule correctamente después del cambio, CloudFormation también actualizará la dirección IP elástica. Puede ver los cambios en la consola de CloudFormation en la pestaña de eventos.
Para comprobar el tipo de instancia desde Consola de administración de AWS, abra la consola de Amazon EC2 y busque allí su instancia.
Paso 5: actualizar la AMI
Ahora, actualicemos nuestra pila para usar Amazon Linux 2023, que es la próxima generación de Amazon Linux.
La actualización de la AMI es un cambio importante que requiere reemplazar la instancia. No es posible iniciar y detener la instancia para modificar la AMI. CloudFormation lo considera un cambio en una propiedad inmutable del recurso. Para realizar un cambio en una propiedad inmutable, CloudFormation debe lanzar un recurso de reemplazo, en este caso, una nueva instancia de Amazon EC2 que ejecute la nueva AMI.
Veamos cómo podemos actualizar nuestra plantilla de pila para usar Amazon Linux 2023. Los cambios clave incluyen la actualización del parámetro de AMI y el cambio de un administrador de paquetes yum a dnf.
AWSTemplateFormatVersion: 2010-09-09 Parameters: LatestAmiId: Description: The latest Amazon Linux 2023 AMI from the Parameter Store Type: AWS::SSM::Parameter::Value<AWS::EC2::Image::Id> Default: '/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64' InstanceType: Description: WebServer EC2 instance type Type: String Default: t3.micro AllowedValues: - t3.nano - t3.micro - t3.small - t3.medium - t3a.nano - t3a.micro - t3a.small - t3a.medium - m5.large - m5.xlarge - m5.2xlarge - m5a.large - m5a.xlarge - m5a.2xlarge - c5.large - c5.xlarge - c5.2xlarge - r5.large - r5.xlarge - r5.2xlarge - r5a.large - r5a.xlarge - r5a.2xlarge ConstraintDescription: must be a valid EC2 instance type. KeyName: Description: Name of an existing EC2 KeyPair to enable SSH access to the instance Type: AWS::EC2::KeyPair::KeyName ConstraintDescription: must be the name of an existing EC2 KeyPair. SSHLocation: Description: The IP address that can be used to SSH to the EC2 instances in CIDR format (e.g. 203.0.113.1/32) Type: String MinLength: 9 MaxLength: 18 Default: 0.0.0.0/0 AllowedPattern: '^(\d{1,3}\.){3}\d{1,3}\/\d{1,2}$' ConstraintDescription: must be a valid IP CIDR range of the form x.x.x.x/x. Resources: WebServerInstance: Type: AWS::EC2::Instance Properties: ImageId: !Ref LatestAmiId InstanceType: !Ref InstanceType KeyName: !Ref KeyName SecurityGroupIds: - !Ref WebServerSecurityGroup UserData: Fn::Base64: !Sub | #!/bin/bash -xe # Get the latest CloudFormation package dnf update -y aws-cfn-bootstrap # Run cfn-init /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource WebServerInstance --region ${AWS::Region} || error_exit 'Failed to run cfn-init' # Start up the cfn-hup daemon to listen for changes to the EC2 instance metadata /opt/aws/bin/cfn-hup || error_exit 'Failed to start cfn-hup' # Signal success or failure /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource WebServerInstance --region ${AWS::Region} Metadata: AWS::CloudFormation::Init: config: packages: dnf: httpd: [] php: [] files: /var/www/html/index.php: content: | <?php echo "<h1>Hello World!</h1>"; echo "<p>This is an updated version of our application.</p>"; echo "<p>Running on Amazon Linux 2023!</p>"; ?> mode: '000644' owner: apache group: apache /etc/cfn/cfn-hup.conf: content: !Sub | [main] stack=${AWS::StackId} region=${AWS::Region} # The interval used to check for changes to the resource metadata in minutes. Default is 15 interval=2 mode: '000400' owner: root group: root /etc/cfn/hooks.d/cfn-auto-reloader.conf: content: !Sub | [cfn-auto-reloader-hook] triggers=post.update path=Resources.WebServerInstance.Metadata.AWS::CloudFormation::Init action=/opt/aws/bin/cfn-init -s ${AWS::StackId} -r WebServerInstance --region ${AWS::Region} runas=root services: systemd: httpd: enabled: true ensureRunning: true cfn-hup: enabled: true ensureRunning: true files: - /etc/cfn/cfn-hup.conf - /etc/cfn/hooks.d/cfn-auto-reloader.conf CreationPolicy: ResourceSignal: Timeout: PT5M WebServerSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Enable HTTP access via port 80 and SSH access via port 22 SecurityGroupIngress: - IpProtocol: tcp FromPort: 80 ToPort: 80 CidrIp: 0.0.0.0/0 - IpProtocol: tcp FromPort: 22 ToPort: 22 CidrIp: !Ref SSHLocation Outputs: WebsiteURL: Value: !Sub 'http://${WebServerInstance.PublicDnsName}' Description: URL of the web application
Para actualizar la pila, siga los mismos pasos que se explican en Paso 2: actualizar la aplicación.
Una vez que la nueva instancia está en funcionamiento, CloudFormation actualiza los demás recursos de la pila para que se vinculen al nuevo recurso. Cuando se crean todos los nuevos recursos, se elimina el recurso anterior, un proceso conocido como UPDATE_CLEANUP. En este momento, podrá observar que el ID de instancia y el URL de la aplicación de la instancia de la pila han cambiado como resultado de la actualización. Los acontecimientos de la tabla de eventos contienen una descripción “La actualización solicitada tiene un cambio de una propiedad inmutable y, por tanto, se ha creado un nuevo recurso físico” para indicar que se reemplazó un recurso.
Alternativa: si tiene un código de aplicación escrito en la AMI que desea actualizar, puede utilizar el mismo mecanismo de actualización de pila para actualizar la AMI y así cargar su nueva aplicación.
Actualización de la AMI con un código de la aplicación personalizado
-
Cree nuevas AMI que contengan los cambios del sistema operativo o su aplicación. Para obtener más información, consulte Creación de una AMI basada en Amazon EBS en la Guía del usuario de Amazon EC2.
-
Actualice la plantilla para incorporar los nuevos ID de AMI.
-
Para actualizar la pila, siga los mismos pasos que se explican en Paso 2: actualizar la aplicación.
Al actualizar la pila, CloudFormation detecta que el ID de AMI ha cambiado y, a continuación, se activa una actualización de la pila de la misma forma que iniciamos el anterior.
Consideraciones sobre el impacto y la disponibilidad
Las distintas propiedades afectan de forma diferente a los recursos de la pila. Puede utilizar CloudFormation para actualizar cualquier propiedad; no obstante, antes de realizar cambios, debe tener en cuenta estas preguntas:
-
¿Cómo afecta la actualización al propio recurso? Por ejemplo, la actualización de un umbral de alarma inutilizará la alarma durante la actualización. Como hemos visto, cambiar el tipo de instancia requiere que la instancia se detenga y se reinicie. CloudFormation utiliza las acciones de actualización o modificación para los recursos subyacentes con el propósito de realizar cambios en los recursos. Para comprender el impacto de las actualizaciones, debería comprobar la documentación de los recursos específicos.
-
¿Es el cambio mutable o inmutable? Algunos cambios en las propiedades de recursos, como, por ejemplo, el cambio de la AMI en una instancia de Amazon EC2, no son compatibles con los servicios subyacentes. En el caso de cambios mutables, CloudFormation utilizará las API de tipo actualización o modificación para los recursos subyacentes. Para cambios de propiedad inmutables, CloudFormation creará nuevos recursos con las propiedades actualizadas y, a continuación, vincularlas a la pila antes de eliminar los antiguos recursos. Aunque CloudFormation intenta reducir el tiempo de inactividad de los recursos de la pila; sustituir un recurso es un proceso de varios pasos y llevará tiempo. Durante la reconfiguración de pila, su aplicación no estará totalmente operativa. Por ejemplo, es posible que no pueda atender a las solicitudes ni acceder a una base de datos.
Recursos relacionados
Para obtener más información acerca del uso de CloudFormation para iniciar las aplicaciones y de la integración con otros servicios de configuración e implementación como Puppet y Opscode Chef, consulte los siguientes documentos técnicos: