Desconexión o asociación de instancias en el grupo de escalado automático
Puede desconectar instancias del grupo de escalado automático. Después de separar una instancia, esa instancia se vuelve independiente y puede administrarse de manera independiente o asociarse a un grupo de escalado automático distinto al grupo original al que pertenecía. Esto puede resultar útil, por ejemplo, cuando desee realizar pruebas con instancias existentes que ya estén ejecutando su aplicación.
En este tema se proporcionan instrucciones sobre cómo desconectar y asociar instancias. Cuando asocia instancias, también puede usar una instancia existente en lugar de una desconectada.
En lugar de desconectar y reasociar una instancia al mismo grupo, le recomendamos que utilice el procedimiento de espera para eliminar temporalmente la instancia del grupo. Para obtener más información, consulte Eliminación temporal de las instancias de un grupo de escalado automático.
Consideraciones sobre la desconexión de instancias
Cuando desconecta instancias, tenga en cuenta lo siguiente:
-
Puede desasociar una instancia solo cuando está en estado InService o StandBy. Si va a desasociar instancias que están en el estado StandBy, tenga cuidado. Es posible que la inclusión del indicador ShouldDecrementDesiredCapacity en la llamada a la API cuando se intenta desasociar instancias después de colocarlas en el estado StandBy provoque que otras instancias terminen inesperadamente.
-
Después de desconectar una instancia, esta sigue en funcionamiento y produce gastos. Para evitar gastos innecesarios, asegúrese de volver a asociar o finalizar las instancias desconectadas cuando ya no sean necesarias.
-
Puede optar por reducir la capacidad deseada en el número de instancias que se van a desconectar. Si elige no reducir la capacidad, Amazon EC2 Auto Scaling lanza nuevas instancias para sustituir a las que ha desconectado con el propósito de mantener la capacidad deseada.
-
Si la cantidad de instancias que está desconectando reduce el tamaño del grupo de escalado automático por debajo de su capacidad mínima, deberá reducir la capacidad mínima.
-
Si desconecta varias instancias de la misma zona de disponibilidad sin reducir la capacidad deseada, el grupo se equilibrará a menos que suspenda el proceso AZRebalance. Para obtener más información, consulte Suspensión y reanudación de procesos de Amazon EC2 Auto Scaling.
-
Si desconecta una instancia de un grupo de escalado automático que tiene un grupo de destino del balanceador de carga o un Classic Load Balancer, se cancela el registro de la instancia del balanceador de carga. Si está habilitado el drenaje de conexiones (retraso de anulación del registro) para el equilibrador de carga, Amazon EC2 Auto Scaling espera a que se completen las solicitudes en tránsito.
Consideraciones sobre la asociación de instancias
Tenga en cuenta lo siguiente al asociar instancias:
-
Amazon EC2 Auto Scaling trata a las instancias asociadas de la misma manera que las instancias iniciadas por el grupo. Esto significa que las instancias asociadas se pueden finalizar durante los eventos de reducción horizontal si se seleccionan. Los permisos que otorga el rol AWSServiceRoleForAutoScaling vinculado a servicios permiten a Amazon EC2 Auto Scaling hacerlo.
-
Cuando se asocian instancias, aumenta la capacidad deseada del grupo en el número de instancias que se asocian. Si la capacidad deseada más las instancias nuevas supera el tamaño máximo del grupo, la solicitud de asociación de instancias fallará.
-
Si agrega instancias a su grupo, lo que provoca una distribución desigual entre las zonas de disponibilidad, Amazon EC2 Auto Scaling reequilibra el grupo para restablecer una distribución uniforme, a menos que suspenda el proceso de AZRebalance. Para obtener más información, consulte Suspensión y reanudación de procesos de Amazon EC2 Auto Scaling.
-
Si asocia una instancia a un grupo de escalado automático que tiene un grupo de destino de balanceador de carga o un Classic Load Balancer, se registra la instancia con el balanceador de carga.
La instancia que desea asociar debe cumplir los siguientes criterios:
-
La instancia se encuentra en el estado running con Amazon EC2.
-
La AMI que se utiliza para lanzar la instancia debe existir.
-
La instancia no es miembro de otro grupo de escalado automático.
-
La instancia se inicia en una de las zonas de disponibilidad definidas en el grupo de escalado automático.
-
Si el grupo de escalado automático tiene un grupo de destino de equilibrador de carga o equilibrador de carga clásico asociado, la instancia y el equilibrador de carga deben estar en la misma VPC.
Mueva una instancia a un grupo diferente mediante la opción de desconectar y asociar
Utilice uno de los siguientes procedimientos para desconectar una instancia del grupo de escalado automático y asociarla a otro grupo de escalado automático.
Para crear un nuevo grupo de escalado automático a partir de una instancia desconectada, consulte Crear de un grupo de escalado automático desde una instancia mediante la AWS CLI (no se recomienda, crea una configuración de inicialización).
- Console
-
Cómo desconectar una instancia de un grupo de escalado automático
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.
-
Seleccione la casilla situada junto al grupo de escalado automático.
Se abre un panel dividido en la parte inferior de la página.
-
En la pestaña Administración de instancias, en Instancias, seleccione una instancia y elija Acciones, Desconectar.
-
En el cuadro de diálogo Desconectar la instancia, mantenga la casilla Reemplazar la instancia seleccionada para lanzar una instancia de reemplazo. Desactive la casilla de verificación para reducir la capacidad deseada.
-
Cuando se le pida la confirmación, escriba detach para confirmar la instancia especificada del grupo de escalado automático y, a continuación, elija Desconectar la instancia.
Ahora puede asociar la instancia a un grupo de escalado automático diferente.
Para asociar una instancia a un grupo de escalado automático
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.
-
(Opcional) En el panel de navegación, en Auto Scaling (Escalado automático), elija Auto Scaling Groups (Grupos de escalado automático). Seleccione el grupo de escalado automático y verifique que el tamaño máximo del grupo de escalado automático es lo suficientemente grande para poder agregar otra instancia. De lo contrario, en la pestaña Details (Detalles), aumente la capacidad máxima.
-
En el panel de navegación, en Instances (Instancias), elija Instances y seleccione una instancia.
-
Elija Acciones, Configuración de la instancia, Asociar a grupo de escalado automático.
-
En la página Attach to Auto Scaling Group (Asociar a grupo de escalado automático), en Auto Scaling Group (Grupo de Auto Scaling), seleccione el nombre del grupo de escalado automático y, a continuación, elija Attach (Asociar).
-
Si la instancia no cumple los criterios, recibirá un mensaje de error con los detalles. Por ejemplo, es posible que la instancia no esté en la misma zona de disponibilidad que el grupo de escalado automático. Seleccione Cerrar y vuelva a intentarlo con un grupo de escalado automático que cumpla los criterios.
- AWS CLI
-
Para desconectar y asociar una instancia, utilice los siguientes comandos de ejemplo. Reemplace cada marcador de posición de entrada del usuario con información propia.
Cómo desconectar una instancia de un grupo de escalado automático
-
Para describir las instancias actuales, utilice el siguiente comando describe-auto-scaling-instances.
aws autoscaling describe-auto-scaling-instances \
--query 'AutoScalingInstances[?AutoScalingGroupName==`my-asg`]'
El siguiente ejemplo muestra los resultados del comando.
Anote el ID de la instancia que se va a eliminar del grupo. Este ID es necesario en el siguiente paso.
{
"AutoScalingInstances": [
{
"ProtectedFromScaleIn": false,
"AvailabilityZone": "us-west-2a",
"LaunchTemplate": {
"LaunchTemplateName": "my-launch-template",
"Version": "1",
"LaunchTemplateId": "lt-050555ad16a3f9c7f"
},
"InstanceId": "i-05b4f7d5be44822a6",
"InstanceType": "t3.micro",
"AutoScalingGroupName": "my-asg",
"HealthStatus": "HEALTHY",
"LifecycleState": "InService"
},
{
"ProtectedFromScaleIn": false,
"AvailabilityZone": "us-west-2a",
"LaunchTemplate": {
"LaunchTemplateName": "my-launch-template",
"Version": "1",
"LaunchTemplateId": "lt-050555ad16a3f9c7f"
},
"InstanceId": "i-0c20ac468fa3049e8",
"InstanceType": "t3.micro",
"AutoScalingGroupName": "my-asg",
"HealthStatus": "HEALTHY",
"LifecycleState": "InService"
},
{
"ProtectedFromScaleIn": false,
"AvailabilityZone": "us-west-2a",
"LaunchTemplate": {
"LaunchTemplateName": "my-launch-template",
"Version": "1",
"LaunchTemplateId": "lt-050555ad16a3f9c7f"
},
"InstanceId": "i-0787762faf1c28619",
"InstanceType": "t3.micro",
"AutoScalingGroupName": "my-asg",
"HealthStatus": "HEALTHY",
"LifecycleState": "InService"
},
{
"ProtectedFromScaleIn": false,
"AvailabilityZone": "us-west-2a",
"LaunchTemplate": {
"LaunchTemplateName": "my-launch-template",
"Version": "1",
"LaunchTemplateId": "lt-050555ad16a3f9c7f"
},
"InstanceId": "i-0f280a4c58d319a8a",
"InstanceType": "t3.micro",
"AutoScalingGroupName": "my-asg",
"HealthStatus": "HEALTHY",
"LifecycleState": "InService"
}
]
}
-
Para desconectar una instancia sin reducir la capacidad deseada con el siguiente comando detach-instances.
aws autoscaling detach-instances --instance-ids i-05b4f7d5be44822a6 \
--auto-scaling-group-name my-asg
Para desconectar una instancia y reducir la capacidad deseada, incluya la opción --should-decrement-desired-capacity.
aws autoscaling detach-instances --instance-ids i-05b4f7d5be44822a6 \
--auto-scaling-group-name my-asg --should-decrement-desired-capacity
Ahora puede asociar la instancia a un grupo de escalado automático diferente.
Para asociar una instancia a un grupo de escalado automático
-
Para asociar una instancia a un grupo de escalado automático, utilice el siguiente comando attach-instances.
aws autoscaling attach-instances --instance-ids i-05b4f7d5be44822a6 --auto-scaling-group-name my-asg-for-testing
-
Para verificar el tamaño del grupo de escalado automático después de asociar una instancia, utilice el siguiente comando describe-auto-scaling-groups.
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names my-asg-for-testing
El siguiente ejemplo de respuesta muestra que el grupo tiene dos instancias en ejecución, una de las cuales es la instancia que se ha asociado.
{
"AutoScalingGroups": [
{
"AutoScalingGroupName": "my-asg-for-testing",
"AutoScalingGroupARN": "arn",
"LaunchTemplate": {
"LaunchTemplateName": "my-launch-template",
"Version": "2",
"LaunchTemplateId": "lt-050555ad16a3f9c7f"
},
"MinSize": 1,
"MaxSize": 5,
"DesiredCapacity": 2,
...
"Instances": [
{
"ProtectedFromScaleIn": false,
"AvailabilityZone": "us-west-2a",
"LaunchTemplate": {
"LaunchTemplateName": "my-launch-template",
"Version": "1",
"LaunchTemplateId": "lt-050555ad16a3f9c7f"
},
"InstanceId": "i-05b4f7d5be44822a6",
"InstanceType": "t3.micro",
"HealthStatus": "Healthy",
"LifecycleState": "InService"
},
{
"ProtectedFromScaleIn": false,
"AvailabilityZone": "us-west-2a",
"LaunchTemplate": {
"LaunchTemplateName": "my-launch-template",
"Version": "2",
"LaunchTemplateId": "lt-050555ad16a3f9c7f"
},
"InstanceId": "i-00dcdfffdf5175890",
"InstanceType": "t3.micro",
"HealthStatus": "Healthy",
"LifecycleState": "InService"
}
],
...
}
]
}