Automatización de los ciclos de vida de las AMI - Amazon Elastic Compute Cloud

Automatización de los ciclos de vida de las AMI

En el siguiente procedimiento, se muestra cómo utilizar Amazon Data Lifecycle Manager para automatizar los ciclos de vida de las AMI con respaldo de EBS.

Crear una política de ciclo de vida de AMI

Utilice uno de los siguientes procedimientos para crear una política de ciclo de vida de AMI.

Console
Para crear una política de AMI
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, elija Elastic Block Store, Lifecycle Manager (Administrador de ciclo de vida) y, a continuación, Create lifecycle policy (Crear política de ciclo de vida).

  3. En la pantalla Select policy type (Seleccionar el tipo de política), elija EBS-backed AMI policy (Política de AMI con respaldo EBS) y, luego, seleccione Next (Siguiente).

  4. En la sección Target resources (Recursos de destino), en Target resource tags (Etiquetas de recursos de destino), elija las etiquetas de recursos que identifican los volúmenes o las instancias de los que se va a realizar una copia de seguridad. La política realiza una copia de seguridad solo de los recursos que tienen los pares de clave y valor de la etiqueta especificados.

  5. En Description (Descripción), escriba una breve descripción de la política.

  6. En IAM Rol (Rol de IAM), elija el rol de IAM que tenga permisos para administrar las AMI y las instantáneas y para describir las instancias. Para utilizar el rol predeterminado proporcionado por Amazon Data Lifecycle Manager, elija Default role (Rol predeterminado). De forma alternativa, para usar un rol de IAM personalizado que haya creado anteriormente, elija Choose another role (Elegir otro rol) y, luego, seleccione el rol que va a utilizar.

  7. En Policy tags (Etiquetas de políticas), agregue las etiquetas que se aplicarán a la política de ciclo de vida. Puede utilizar estas etiquetas para identificar y clasificar las políticas.

  8. En Policy status after creation (Estado de la política después de su creación), elija Enable policy (Habilitar política) para iniciar las ejecuciones de la política a la hora programada siguiente o Disable policy (Desactivar política) para evitar que se ejecute la política. Si no habilita la política ahora, no se comenzarán a crear AMI hasta que la habilite de forma manual después de la creación.

  9. En la sección Instance reboot (Reinicio de instancias), indique si las instancias deben reiniciarse antes de la creación de la AMI. Para evitar que se reinicien las instancias de destino, elija No (No). Elegir No (No) podría provocar problemas de consistencia de datos. Para reiniciar las instancias antes de la creación de la AMI, elija Yes (Sí). La elección de esta opción garantiza la consistencia de los datos, pero podría dar lugar a que varias instancias de destino se reinicien simultáneamente.

  10. Elija Next (Siguiente).

  11. En la pantalla Configure schedule (Configurar la programación), configure las programaciones de las políticas. Una política puede tener hasta cuatro programaciones. La programación 1 es obligatoria Las programaciones 2, 3 y 4 son opcionales. Para cada programación de política que agregue, realice lo siguiente:

    1. En la sección Schedule details (Detalles de la programación), realice lo siguiente:

      1. En Schedule name (Nombre de la programación), especifique un nombre descriptivo para la programación.

      2. En Frequency (Frecuencia) y en los campos relacionados, configure el intervalo entre las ejecuciones de la política. Puede configurar las ejecuciones de políticas en una programación diaria, semanal, mensual o anual. Alternativamente, elija Custom cron expression (Expresión cron personalizada) para especificar un intervalo de hasta un año. Para obtener más información, consulte Cron expressions (Expresiones cron) en la Guía del usuario de Amazon CloudWatch Events.

      3. En Starting at (Comenzar a), especifique la hora en que comenzarán las ejecuciones de la política. La primera ejecución de la política comenzará dentro de una hora después de la hora que programe. Debe especificar la hora con el formato hh:mm UTC.

      4. En Retention type (Tipo de retención), especifique la política de retención de las AMI creadas por la programación. Puede retener las AMI en función de su recuento total o de su antigüedad.

        Para la retención basada en el recuento, el rango es de 1 a 1000. Una vez alcanzado el recuento máximo, la AMI más antigua se eliminará del registro cuando se cree una nueva.

        Para la retención basada en la antigüedad, el rango es de 1 día a 100 años. Luego de que el periodo de retención de cada AMI vence, esta última se elimina del registro.

        nota

        Todas las programaciones deben tener el mismo tipo de retención. Puede especificar el tipo de retención solo para la programación 1. Las programaciones 2, 3 y 4 heredan el tipo de retención de la programación 1. Cada programación puede tener su propio recuento o periodo de retención.

    2. En la sección Tagging (Etiquetado), realice lo siguiente:

      1. Para copiar todas las etiquetas definidas por el usuario de la instancia de origen a las AMI creadas por la programación, seleccione Copy tags from source (Copiar las etiquetas de la fuente).

      2. De forma predeterminada, las AMI creadas por la programación se etiquetan automáticamente con el ID de la instancia de origen. Para evitar que se lleve a cabo este etiquetado automático, en Variable tags (Etiquetas de variables), elimine el icono instance-id:$(instance-id).

      3. Para especificar etiquetas adicionales y asignarlas a las AMI creadas por esta programación, elija Add tags (Agregar etiquetas).

    3. A fin de dar de baja las AMI cuando ya no deberían utilizarse, en la sección AMI deprecation (Obsolescencia de AMI), seleccione Enable AMI deprecation for this schedule (Habilitar la obsolescencia de AMI para esta programación) y, a continuación, especifique la regla de obsolescencia de AMI. La regla de obsolescencia de AMI especifica cuándo deben darse de baja las AMI.

      Si la programación utiliza la retención de AMI basada en el recuento, debe especificar el número de AMI más antiguas que se darán de baja. El recuento de obsolescencia debe ser menor o igual que el recuento de retención de AMI de la programación y no puede ser mayor a 1000. Por ejemplo, si la programación está configurada a fin de retener un máximo de 5 AMI, puede configurar la programada para dar de baja hasta las 5 AMI más antiguas.

      Si la programación utiliza la retención de AMI basada en la antigüedad, debe especificar el periodo después del cual deben darse de baja las AMI. El recuento de obsolescencia debe ser menor o igual que el periodo de retención de AMI de la programación y no puede ser superior a 10 años (120 meses, 520 semanas o 3650 días). Por ejemplo, si la programación está configurada a fin de retener las AMI durante 10 días, puede configurar la programada para que dé de baja las AMI después de periodos de hasta 10 días luego de la creación.

    4. Para copiar las AMI creadas por la programación en regiones diferentes, en la sección Cross-Region copy (Copia entre regiones), seleccione Enable cross-Region copy (Habilitar la copia entre regiones). Puede copiar las AMI en hasta tres regiones adicionales de su cuenta. Debe especificar una regla de copia entre regiones independiente para cada región de destino.

      Puede especificar lo siguiente para cada región de destino:

      • Una política de retención para la copia de la AMI. Cuando vence el periodo de retención, la copia en la región de destino se anula de forma automática.

      • Estado de cifrado para la copia de la AMI. Si la AMI fuente se encuentra cifrada o si el cifrado se encuentra habilitado de forma predeterminada, siempre se cifrarán las AMI copiadas. Si la AMI fuente no se encuentra cifrada y el cifrado se encuentra desactivado de forma predeterminada, puede habilitar el cifrado de forma opcional. Si no especifica una clave de KMS, las AMI se cifrarán con la clave de KMS predeterminada para el cifrado de EBS en cada región de destino. Si especifica una Clave de KMS para la región de destino, el rol de IAM seleccionado debe tener acceso a la Clave de KMS.

      • Una regla de obsolescencia para la copia de la AMI. Cuando vence el periodo de obsolescencia, la copia de la AMI queda obsoleta de forma automática. El periodo de obsolescencia debe ser inferior o igual al periodo de retención de copia y no puede ser superior a 10 años.

      • Si se deben copiar todas las etiquetas, o ninguna de ellas, de la AMI fuente.

      nota

      No debe superar el número de copias de AMI simultáneas por región.

    5. Para agregar programaciones adicionales, elija Add another schedule (Agregar otra programación), que se encuentra en la parte superior de la pantalla. En cada programación adicional, complete los campos tal como se describe con anterioridad en este tema.

    6. Después de agregar las programaciones necesarias, elija Review policy (Revisar la política).

  12. Revise el resumen de la política y, a continuación, elija Create policy (Crear política).

Command line

Ejecute el comando create-lifecycle-policy para crear una política de ciclo de vida de AMI. En PolicyType, especifique IMAGE_MANAGEMENT.

nota

Para simplificar la sintaxis, en los siguientes ejemplos se utiliza un archivo JSON, policyDetails.json, que incluye los detalles de la política.

Ejemplo 1: retención en función de la edad y la obsolescencia de la AMI

En este ejemplo se genera una política de ciclo de vida de la AMI que crea las AMI de todas las instancias que tienen una clave de etiqueta de purpose con un valor de production sin reiniciar las instancias de destino. La política incluye una programación que crea una AMI todos los días a las 01:00 UTC. La política retiene las AMI por 2 días y las da de baja después de 1 día. También copiará las etiquetas de la instancia de origen a las AMI que cree.

aws dlm create-lifecycle-policy \ --description "My AMI policy" \ --state ENABLED --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRoleForAMIManagement \ --policy-details file://policyDetails.json

A continuación se muestra un ejemplo del archivo policyDetails.json.

{ "PolicyType": "IMAGE_MANAGEMENT", "ResourceTypes": [ "INSTANCE" ], "TargetTags": [{ "Key": "purpose", "Value": "production" }], "Schedules": [{ "Name": "DailyAMIs", "TagsToAdd": [{ "Key": "type", "Value": "myDailyAMI" }], "CreateRule": { "Interval": 24, "IntervalUnit": "HOURS", "Times": [ "01:00" ] }, RetainRule":{ "Interval" : 2, "IntervalUnit" : "DAYS" }, DeprecateRule": { "Interval" : 1, "IntervalUnit" : "DAYS" }, "CopyTags": true } ], "Parameters" : { "NoReboot":true } }

Si se ejecuta correctamente, el comando devuelve el ID de la política recién creada. A continuación, se muestra un ejemplo del resultado.

{ "PolicyId": "policy-9876543210abcdef0" }
Ejemplo 2: retención en función de los recuentos y la obsolescencia de la AMI con copia entre regiones

En este ejemplo, se genera una política de ciclo de vida de AMI que crea las AMI de todas las instancias que tienen una clave de etiqueta de purpose con un valor de production y reinicia las instancias de destino. La política incluye una programación que crea una AMI cada 6 horas desde las 17:30 UTC. La política retiene 3 AMI y da de baja de forma automática las 2 AMI más antiguas. También tiene una regla de copia entre regiones que copia AMI a us-east-1, retiene 2 copias de AMI y da de baja de forma automática la AMI más antigua.

aws dlm create-lifecycle-policy \ --description "My AMI policy" \ --state ENABLED \ --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRoleForAMIManagement \ --policy-details file://policyDetails.json

A continuación se muestra un ejemplo del archivo policyDetails.json.

{ "PolicyType": "IMAGE_MANAGEMENT", "ResourceTypes" : [ "INSTANCE" ], "TargetTags": [{ "Key":"purpose", "Value":"production" }], "Parameters" : { "NoReboot": true }, "Schedules" : [{ "Name" : "Schedule1", "CopyTags": true, "CreateRule" : { "Interval": 6, "IntervalUnit": "HOURS", "Times" : ["17:30"] }, "RetainRule":{ "Count" : 3 }, "DeprecateRule":{ "Count" : 2 }, "CrossRegionCopyRules": [{ "TargetRegion": "us-east-1", "Encrypted": true, "RetainRule":{ "IntervalUnit": "DAYS", "Interval": 2 }, "DeprecateRule":{ "IntervalUnit": "DAYS", "Interval": 1 }, "CopyTags": true }] }] }

Consideraciones sobre las políticas de ciclo de vida de AMI

Las siguientes consideraciones se aplican a la creación de políticas de ciclo de vida de AMI:

  • La primera operación de creación de AMI se inicia una hora después de la hora de inicio especificada. Las operaciones posteriores de creación de AMI se inician una hora después de la hora que tengan programada.

  • Cuando Amazon Data Lifecycle Manager anula el registro de una AMI, elimina automáticamente sus instantáneas de respaldo.

  • Las etiquetas de recursos de destino distinguen entre mayúsculas y minúsculas

  • Se pueden crear varias políticas para realizar una copia de seguridad de una instancia. Por ejemplo, si una instancia tiene dos etiquetas, de las cuales la etiqueta A es el destino de la política A para crear una AMI cada 12 horas y la etiqueta B es el destino de la política B para crear una AMI cada 24 horas, Amazon Data Lifecycle Manager crea las AMI de acuerdo con las programaciones de ambas políticas. Alternativamente, puede lograr igual resultado mediante la creación de una única política que tenga varias programaciones. Por ejemplo, se puede crear una única política dirigida solo a la etiqueta A y especificar dos programaciones, una para cada 12 horas y otra para cada 24 horas.

  • Los nuevos volúmenes que se adjunten a una instancia de destino después de crear la política se incluirán automáticamente en la copia de seguridad en la siguiente ejecución de la política. Se incluyen todos los volúmenes asociados a la instancia en el momento de la ejecución de la política.

  • Si se crea una política con una programación basada en cron personalizada que está configurada para crear solo una AMI, la política no anulará automáticamente el registro de esa AMI cuando se alcance el umbral de retención. Debe anular manualmente el registro de la AMI si ya no se necesita.

Las siguientes consideraciones se aplican a la terminación de instancias destinatarias de una política:

  • Si termina una instancia que era destinataria de una política con una programación de retención basada en recuento, la política deja de administrar las AMI que haya creado anteriormente desde la instancia terminada. Debe anular manualmente el registro de esas AMI anteriores si ya no se necesitan.

  • Si termina una instancia que era destinataria de una política con una programación de retención basada en antigüedad, la política seguirá anulando el registro de las AMI que se hayan creado anteriormente desde la instancia terminada conforme a la programación definida hasta la última AMI, pero sin incluir esta. Debe anular manualmente el registro de la última AMI si ya no se necesita.

Las siguientes consideraciones se aplican a las políticas de AMI y a la obsolescencia de AMI:

  • Si aumenta el recuento de obsolescencia de AMI para una programación con retención basada en recuento, el cambio se aplica a todas las AMI (existentes y nuevas) que crea el programa.

  • Si aumenta el periodo de eliminación de obsolescencia de AMI para una programación con retención basada en la antigüedad, el cambio solo se aplica a las AMI nuevas. Las AMI existentes no se ven afectadas.

  • Si quita la regla de obsolescencia de AMI de una programación, Amazon Data Lifecycle Manager no cancelará la obsolescencia de las AMI que anteriormente habían quedado obsoletas en esa programación.

  • Si reduce el recuento o el periodo de obsolescencia de AMI para una programación, Amazon Data Lifecycle Manager no cancelará la obsolescencia de las AMI que anteriormente habían quedado obsoletas en esa programación.

  • Si da de baja manualmente una AMI creada por una política de AMI, Amazon Data Lifecycle Manager no anulará la obsolescencia.

  • Si cancela manualmente la obsolescencia de una AMI que anteriormente había quedado obsoleta por una política de AMI, Amazon Data Lifecycle Manager no anulará la cancelación.

  • Si una AMI se crea mediante varias programaciones conflictivas y una o varias de esas programaciones no tienen una regla de obsolescencia de AMI, Amazon Data Lifecycle Manager no dará de baja esa AMI.

  • Si varias programaciones conflictivas crean una AMI y todas ellas tienen una regla de obsolescencia de AMI, Amazon Data Lifecycle Manager utilizará la regla de obsolescencia cuyo resultado sea la fecha de obsolescencia más tardía.

Las siguientes consideraciones aplican a las políticas de ciclo de vida de AMI en estado error:

  • Para políticas con una programación de retención basada en la edad, las AMI que están configuradas para caducar mientras la política está en estado error se conservan indefinidamente. Debe anular el registro de las AMI manualmente. Cuando vuelve a habilitar la política, Amazon Data Lifecycle Manager reanuda la eliminación de instantáneas o anula el registro de las AMI conforme terminen los periodos de retención.

  • Para las políticas con programas de retención basados en el recuento, la política deja de crear y anular el registro de AMI mientras está en estado error. Cuando vuelve a habilitar la política, Amazon Data Lifecycle Manager reanuda la creación de instantáneas y AMI, y reanuda la eliminación de instantáneas o AMI a medida que se alcanza el límite de retención.

Recursos adicionales

Para obtener más información, consulte Automatización de la administración de AMI e instantáneas de Amazon EBS mediante Amazon Data Lifecycle Manager en el blog de almacenamiento de AWS.