Is there a way to find out if an EC2 instance is associated with Auto Scaling Group?
You can use the describe-auto-scaling-instances function to check which autoscaling group the instance is attached to.
So for example for instance id i-4ba0837f you could run the following command
aws autoscaling describe-auto-scaling-instances --instance-ids i-4ba0837f
Example response if attached to an autoscaling group is below
{
"AutoScalingInstances": [
{
"ProtectedFromScaleIn": false,
"AvailabilityZone": "us-west-2c",
"InstanceId": "i-4ba0837f",
"AutoScalingGroupName": "my-auto-scaling-group",
"HealthStatus": "HEALTHY",
"LifecycleState": "InService",
"LaunchConfigurationName": "my-launch-config"
}
]
}
However if it is not attached to any this will be an empty list.
{
"AutoScalingInstances": []
}
If this returns no results then that instance is not part of an autoscaling group.
This will also be available in the SDKs:
You can use the following aws cli command:
aws autoscaling describe-auto-scaling-instances --instance-ids i-exampleid
If the instance is part of an auto scaling group, the result will give you the details.
https://docs.aws.amazon.com/cli/latest/reference/autoscaling/describe-auto-scaling-instances.html
You may use describe-auto-scaling-instances
aws autoscaling describe-auto-scaling-instances --instance-ids your-instance-id
It will print something like this, if exists
{
"AutoScalingInstances": [
{
"InstanceId": "some-instance-id",
"InstanceType": "m4.large",
"AutoScalingGroupName": "awseb-some-name",
"AvailabilityZone": "eu-west-1c",
"LifecycleState": "InService",
"HealthStatus": "HEALTHY",
"LaunchTemplate": {
"LaunchTemplateId": "lt-04a2fffdesa",
"LaunchTemplateName": "AWSEBEC2LaunchTemplate_foobar",
"Version": "2"
},
"ProtectedFromScaleIn": false
}
]
}
if not
{
"AutoScalingInstances": []
}