¿Cómo actualizo mi volumen de EBS en CloudFormation aunque no sustituya mis instancias de EC2?

3 minutos de lectura
0

Quiero actualizar mi volumen de Amazon Elastic Block Store (Amazon EBS) en AWS CloudFormation. Sin embargo, no quiero sustituir mis instancias de Amazon Elastic Compute Cloud (Amazon EC2).

Resolución

Para evitar la sustitución de instancias, se recomienda utilizar el tipo de recurso AWS::EC2::Volume al actualizar los volúmenes de EBS en CloudFormation.

La sustitución de instancias se produce cuando se especifican volúmenes en la propiedad BlockDeviceMappings de los tipos de recursos AWS::EC2::Instance y AWS::EC2::Template. En este escenario, debe agregar un atributo retain DeletionPolicy.

Importante: Si modifica el volumen manualmente, por ejemplo, de gp2 a gp3, también debe modificar el volumen que está adjunto a la instancia. Compruebe que la instancia no esté en estado de optimización o modificación. Antes de modificar el volumen a gp3, asegúrese de cumplir los requisitos de modificación del volumen.

Para evitar la sustitución de instancias al modificar los volúmenes que especifique con la propiedad BlockDeviceMappings, siga estos pasos.

Adición de un atributo retain DeletionPolicy al recurso de plantilla AWS::EC2::Instance de objetivo

Siga estos pasos:

  1. Realice una instantánea de los volúmenes para crear una copia de seguridad de las cargas de trabajo críticas.

  2. Establezca DeletionPolicy en Retain en la pila de CloudFormation de la instancia con el volumen que desea actualizar. Ejemplo:

    AWSTemplateFormatVersion: '2010-09-09'
    Resources:
     Myinstance:
      Type: AWS::EC2::Instance
      DeletionPolicy: Retain
      Properties:
       BlockDeviceMappings:
        - DeviceName: /dev/xvda
         Ebs:
          VolumeType: gp2
          VolumeSize: 10
          DeleteOnTermination: true
       EbsOptimized: false
       ImageId: ami-064ff912f78e3e561
       InstanceInitiatedShutdownBehavior: stop
       InstanceType: t2.micro
       Monitoring: false
  3. Actualice la pila.

Eliminación del recurso de su pila de CloudFormation e implementación de los cambios

Siga estos pasos:

  1. Elimine la instancia de la plantilla para eliminar la instancia de la pila de CloudFormation, pero no elimine el recurso subyacente. A continuación, modifique manualmente la instancia de EC2.
    Nota: Si solo tiene un recurso en la plantilla, debe crear un recurso suplente, como otra instancia. Puede eliminar el recurso de la plantilla después de volver a importar la instancia de EC2 a la plantilla.
  2. Modifique los atributos del volumen de EBS.

Volver a importar el recurso a la pila de CloudFormation

Siga estos pasos:

  1. Abra la consola de CloudFormation.

  2. En el panel de navegación, seleccione Pila.

  3. Elija Acciones de pila, y, a continuación, elija Importar recursos a la pila.

  4. Introduzca la plantilla de CloudFormation actualizada. Ejemplo:

    AWSTemplateFormatVersion: '2010-09-09'
    Resources:
     Myinstance:
      Type: AWS::EC2::Instance
      DeletionPolicy: Retain
      Properties:
       BlockDeviceMappings:
        - DeviceName: /dev/xvda
          Ebs:
           VolumeType: gp3
           VolumeSize: 100
           DeleteOnTermination: true
        EbsOptimized: false
        ImageId: ami-064ff912f78e3e561
        InstanceInitiatedShutdownBehavior: stop
        InstanceType: t2.micro
        Monitoring: false

    Nota: Para importar un recurso, la plantilla de CloudFormation debe describir el recurso con sus configuraciones existentes.

  5. En Identificador, introduzca el ID de la instancia.

  6. Elija Importar recurso.

Después de que CloudFormation actualice el estado a IMPORT_COMPLETE, la instancia pasará a formar parte de la pila.

Es posible que aparezca el mensaje de error «Se ha producido un error al crear este conjunto de cambios. Como parte de la operación de importación, no puede modificar ni agregar [Outputs]». Para resolver este problema, compruebe que la sección Salidas de la plantilla de CloudFormation más reciente coincida con la plantilla que usa su pila. Si no coinciden, actualice la plantilla de CloudFormation más reciente para que coincida con los valores de la sección Salidas de la plantilla que usa su pila. A continuación, actualice la pila de nuevo.

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 21 días