TerminateInstanceInAutoScalingGroup
Terminates the specified instance and optionally adjusts the desired group size. This operation cannot be called on instances in a warm pool.
This call simply makes a termination request. The instances are not terminated
immediately. When an instance is terminated, the instance status changes to
terminated. You can't connect to or start an instance after you've
terminated it.
If you do not specify the option to decrement the desired capacity, Amazon EC2 Auto Scaling launches instances to replace the ones that are terminated.
To terminate multiple instances in a single call, use the InstanceIds
and AutoScalingGroupName parameters instead of InstanceId.
When terminating multiple instances, the response populates
Activities instead of Activity.
By default, Amazon EC2 Auto Scaling balances instances across all Availability Zones. If you decrement the desired capacity, your Auto Scaling group can become unbalanced between Availability Zones. Amazon EC2 Auto Scaling tries to rebalance the group, and rebalancing might terminate instances in other zones. For more information, see Manual scaling in the Amazon EC2 Auto Scaling User Guide.
Request Parameters
For information about the parameters that are common to all actions, see Common Parameters.
- AutoScalingGroupName
-
The name of the Auto Scaling group. Required when using
InstanceIds.Type: String
Length Constraints: Minimum length of 1. Maximum length of 255.
Pattern:
[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*Required: No
- InstanceId
-
The ID of the instance.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 19.
Pattern:
[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*Required: No
- InstanceIds.member.N
-
The IDs of the instances. You can specify up to 100 instances.
This parameter requires that you also specify
AutoScalingGroupName.Type: Array of strings
Array Members: Minimum number of 1 item. Maximum number of 100 items.
Length Constraints: Minimum length of 1. Maximum length of 19.
Pattern:
[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*Required: No
- ShouldDecrementDesiredCapacity
-
Indicates whether terminating the instance also decrements the size of the Auto Scaling group.
Type: Boolean
Required: Yes
Response Elements
The following elements are returned by the service.
Errors
For information about the errors that are common to all actions, see Common Error Types.
- ResourceContention
-
You already have a pending update to an Amazon EC2 Auto Scaling resource (for example, an Auto Scaling group, instance, or load balancer).
- message
HTTP Status Code: 500
- ScalingActivityInProgress
-
The operation can't be performed because there are scaling activities in progress.
- message
HTTP Status Code: 400
Examples
Example
This example illustrates one usage of TerminateInstanceInAutoScalingGroup.
Sample Request
https://autoscaling.amazonaws.com/?Action=TerminateInstanceInAutoScalingGroup
&InstanceId=i-1234567890abcdef0
&ShouldDecrementDesiredCapacity=true
&Version=2011-01-01
&AUTHPARAMS
Sample Response
<TerminateInstanceInAutoScalingGroupResponse xmlns="https://autoscaling.amazonaws.com/doc/2011-01-01/">
<TerminateInstanceInAutoScalingGroupResult>
<Activity>
<AutoScalingGroupName>my-asg</AutoScalingGroupName>
<ActivityId>12345678-1234-1234-1234-123456789012</ActivityId>
<Description>Terminating EC2 instance: i-1234567890abcdef0</Description>
<Cause>At 2022-06-14T00:07:30Z instance i-1234567890abcdef0 was taken out of service in response to a user request, shrinking the capacity from 4 to 3.</Cause>
<StartTime>2022-06-14T00:07:30.280Z</StartTime>
<Details>{"Availability Zone":"us-east-1a","SubnetID":"subnet-057fa0918fEXAMPLE"}</Details>
<Progress>0</Progress>
<StatusCode>InProgress</StatusCode>
</Activity>
</TerminateInstanceInAutoScalingGroupResult>
<ResponseMetadata>
<RequestId>7c6e177f-f082-11e1-ac58-3714bEXAMPLE</RequestId>
</ResponseMetadata>
</TerminateInstanceInAutoScalingGroupResponse>
See Also
For more information about using this API in one of the language-specific Amazon SDKs, see the following: