Configurar las políticas de terminación para Amazon EC2 Auto Scaling - Amazon EC2 Auto Scaling

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configurar las políticas de terminación para Amazon EC2 Auto Scaling

Una política de terminación proporciona los criterios que Amazon EC2 Auto Scaling sigue para terminar las instancias en un orden específico.

De forma predeterminada, Auto Scaling de Amazon EC2 utiliza una política de terminación diseñada para terminar primero las instancias que utilizan configuraciones anticuadas. Puede cambiar la política de terminación para controlar qué instancias es más importante cancelar primero.

Cuando Amazon EC2 Auto Scaling finaliza las instancias, intenta mantener el equilibrio entre las zonas de disponibilidad que están habilitadas para su grupo de Auto Scaling. El mantenimiento del equilibrio zonal tiene prioridad sobre la política de cancelación. Si una zona de disponibilidad tiene más instancias que otras, Amazon EC2 Auto Scaling aplica primero la política de terminación a la zona desequilibrada. Si las zonas de disponibilidad están equilibradas, aplica la política de terminación en todas las zonas.

Cómo funciona la política de terminación predeterminada

Cuando Amazon EC2 Auto Scaling necesita terminar una instancia, primero identifica qué zona (o zonas) de disponibilidad tiene más instancias y al menos una instancia que no está protegida contra el escalamiento interno. A continuación, evalúa las instancias desprotegidas dentro de la zona de disponibilidad identificada de la siguiente manera:

Instancias que utilizan configuraciones anticuadas
  • Para los grupos que usan una plantilla de lanzamiento: determina si alguna de las instancias usa configuraciones anticuadas, prioriza en este orden:

    1. En primer lugar, compruebe si hay instancias lanzadas con una configuración de lanzamiento.

    2. A continuación, compruebe si hay instancias lanzadas con una plantilla de lanzamiento diferente en lugar de la plantilla de lanzamiento actual.

    3. Por último, comprueba si hay instancias que utilicen la versión más antigua de la plantilla de lanzamiento actual.

  • Para los grupos que usan una configuración de lanzamiento: determine si alguna de las instancias usa la configuración de lanzamiento más antigua.

Si no se encuentra ninguna instancia con configuraciones anticuadas o hay varias instancias entre las que elegir, Amazon EC2 Auto Scaling considera el siguiente criterio para las instancias que se acercan a su próxima hora de facturación.

Instancias cercanas a la próxima hora de facturación

Determine si alguna de las instancias que cumplen los criterios anteriores está más cerca de la siguiente hora de facturación. Si varias instancias están igual de próximas, cancele una de forma aleatoria. Esto le ayuda a maximizar el uso de las instancias que se facturan por hora. Sin embargo, la mayor parte del uso de EC2 ahora se factura por segundo, por lo que esta optimización ofrece menos beneficios. Para obtener más información, consulte Precios de Amazon EC2.

El siguiente diagrama de flujo ilustra cómo funciona la política de terminación predeterminada para los grupos que utilizan una plantilla de lanzamiento.


                        Un diagrama de flujo que muestra cómo un grupo de Auto Scaling usa la política de terminación predeterminada para terminar las instancias.

Política de terminación predeterminada y grupos de instancias mixtas

Amazon EC2 Auto Scaling aplica criterios adicionales al finalizar instancias en grupos de instancias mixtos.

Cuando Amazon EC2 Auto Scaling necesita finalizar una instancia, primero identifica qué opción de compra (puntual o bajo demanda) debe cancelarse en función de la configuración del grupo. De este modo, se garantiza que el grupo tiende a alcanzar la proporción especificada de instancias puntuales y bajo demanda a lo largo del tiempo.

A continuación, aplica la política de cancelación de forma independiente dentro de cada zona de disponibilidad. Determina qué instancia puntual o bajo demanda se debe cerrar en qué zona de disponibilidad para mantener el equilibrio entre las zonas de disponibilidad. La misma lógica se aplica a un grupo de instancias mixto con ponderaciones definidas para los tipos de instancias.

Dentro de cada zona, la política de terminación predeterminada funciona de la siguiente manera para determinar qué instancia desprotegida de la opción de compra identificada puede cancelarse:

  1. Determine si alguna de las instancias se puede terminar para mejorar la alineación con la estrategia de asignación especificada para el grupo de Auto Scaling. Si no se identifica ninguna instancia para la optimización o hay varias instancias entre las que elegir, la evaluación continúa.

  2. Determine si alguna de las instancias usa configuraciones desactualizadas, priorizando en este orden:

    1. En primer lugar, compruebe si hay instancias lanzadas con una configuración de lanzamiento.

    2. A continuación, compruebe si hay instancias lanzadas con una plantilla de lanzamiento diferente en lugar de la plantilla de lanzamiento actual.

    3. Por último, comprueba si hay instancias que utilicen la versión más antigua de la plantilla de lanzamiento actual.

    Si no se encuentra ninguna instancia con configuraciones desactualizadas o hay varias instancias entre las que elegir, la evaluación continúa.

  3. Determine si alguna de las instancias está más próxima a la siguiente hora de facturación. Si varias instancias están igual de próximas, elige una al azar.

Políticas de terminación predefinidas

Puede elegir entre las siguientes políticas de rescisión predefinidas:

  • Default— Termine las instancias de acuerdo con la política de terminación predeterminada.

  • AllocationStrategy— Termine las instancias del grupo Auto Scaling para alinear las instancias restantes con la estrategia de asignación del tipo de instancia que está finalizando (ya sea una instancia puntual o una instancia bajo demanda). Esta política es útil cuando han cambiado los tipos de instancias que prefiera. Si la estrategia de asignación de spot es lowest-price, puede reequilibrar gradualmente la distribución de instancias de spot en sus grupos de spot con los precios más bajos. Si la estrategia de asignación de spot es capacity-optimized, puede reequilibrar gradualmente la distribución de las instancias de spot en los grupos de spot donde hay más capacidad de spot disponibles. También puede reemplazar gradualmente las instancias bajo demanda de un tipo de prioridad menor por otras de un tipo de prioridad mayor.

  • OldestLaunchTemplate— Termine las instancias que tengan la plantilla de lanzamiento más antigua. Con esta política, las instancias que utilizan una plantilla de lanzamiento que no es la actual terminan primero, seguidas de las instancias que utilizan la versión más antigua de la plantilla de lanzamiento actual. Esta política es útil cuando va a actualizar un grupo y eliminar progresivamente las instancias de una configuración anterior.

  • OldestLaunchConfiguration— Termine las instancias que tengan la configuración de lanzamiento más antigua. Esta política es útil cuando va a actualizar un grupo y eliminar progresivamente las instancias de una configuración anterior. Con esta política, las instancias que usan la configuración de lanzamiento no actual se terminan primero.

  • ClosestToNextInstanceHour— Finalice las instancias que estén más cerca de la siguiente hora de facturación. Esta política ayuda a maximizar el uso de las instancias que tienen un cargo por hora.

  • NewestInstance— Finalizar la instancia más reciente del grupo. Esta política es útil cuando va a probar una nueva configuración de lanzamiento, pero no desea mantenerla en producción.

  • OldestInstance— Termina la instancia más antigua del grupo. Esta opción es útil cuando va a actualizar las instancias del grupo de escalado automático a un nuevo tipo de instancias EC2. Puede sustituir gradualmente las instancias del tipo antiguo por instancias del tipo nuevo.

    nota

    Amazon EC2 Auto Scaling siempre equilibra primero las instancias en las zonas de disponibilidad, independientemente de la política de terminación que se utilice. Como resultado, es posible que encuentre situaciones en las que algunas instancias más recientes se terminen antes de las instancias más antiguas. Por ejemplo, cuando hay una zona de disponibilidad agregada más recientemente, o cuando una zona de disponibilidad tiene más instancias que las otras zonas de disponibilidad usadas por el grupo.

Cambiar la política de terminación de un grupo de Auto Scaling

Para cambiar la política de cancelación de su grupo de Auto Scaling, utilice uno de los siguientes métodos.

Console

No puede cambiar la política de terminación al crear inicialmente un grupo de Auto Scaling en la consola Auto Scaling de Amazon EC2. La política de terminación predeterminada se utiliza automáticamente. Una vez creado el grupo de Auto Scaling, puede sustituir la política predeterminada por una política de rescisión diferente o por varias políticas de rescisión enumeradas en el orden en que deben aplicarse.

Para cambiar la política de terminación de un grupo de Auto Scaling
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/ y elija Auto Scaling Groups (Grupos de escalado automático) en el panel de navegación.

  2. Seleccione la casilla situada junto al grupo de escalado automático.

    Se abre un panel dividido en la parte inferior de la página.

  3. En la pestaña Details (Detalles) elija (Advanced configurations) Configuraciones avanzadas, Edit (Editar).

  4. Para Termination policies (Políticas de terminación), elija una o varias políticas de terminación. Si elige varias políticas, colóquelas en el orden en el que desea que se evalúen.

    De manera opcional, puede elegir Custom termination policy (Política de terminación personalizada) y luego elegir una función de Lambda que se ajuste a sus necesidades. Si ha creado versiones y alias para la función de Lambda, puede elegir una versión o un alias en el menú desplegable Version/Alias (Versión/Alias). Para utilizar la versión no publicada de la función de Lambda, mantenga Version/Alias (Versión/Alias) establecido en su valor predeterminado. Para obtener más información, consulte Creación de una política de terminación personalizada con Lambda.

    nota

    Si se utilizan varias políticas, su orden debe establecerse correctamente:

    • Si utiliza la política Default (Predeterminada), debe ser la última de la lista.

    • Si utiliza una política Custom termination (Terminación personalizada), debe ser la primera de la lista.

  5. Elija Actualizar.

AWS CLI

La política de terminación predeterminada se utiliza automáticamente a menos que se especifique una política diferente.

Para cambiar la política de terminación de un grupo de Auto Scaling

Utilice uno de los siguientes comandos:

Puede utilizar políticas de terminación de manera individual o combinarlas en una lista de políticas. Por ejemplo, utilice el siguiente comando para actualizar un grupo de escalado automático para que utilice primero la política OldestLaunchConfiguration y después la política ClosestToNextInstanceHour.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --termination-policies "OldestLaunchConfiguration" "ClosestToNextInstanceHour"

Si utiliza la política de terminación Default, colóquela la última en la lista de políticas de terminación. Por ejemplo, --termination-policies "OldestLaunchConfiguration" "Default".

Para utilizar una política de rescisión personalizada, primero debe crear su política de rescisión utilizando AWS Lambda. Para especificar la función Lambda que se utilizará como política de terminación, colóquela la primera en la lista de políticas de terminación. Por ejemplo, --termination-policies "arn:aws:lambda:us-west-2:123456789012:function:HelloFunction:prod" "OldestLaunchConfiguration". Para obtener más información, consulte Creación de una política de terminación personalizada con Lambda.