4

有没有办法查明 EC2 实例是否与 Auto Scaling Group 关联?

4

4 回答 4

6

您可以使用describe-auto-scaling-instances函数检查实例附加到哪个自动缩放组。

例如,例如 idi-4ba0837f您可以运行以下命令

aws autoscaling describe-auto-scaling-instances --instance-ids i-4ba0837f

如果附加到自动缩放组的示例响应如下

{
    "AutoScalingInstances": [
        {
            "ProtectedFromScaleIn": false,
            "AvailabilityZone": "us-west-2c",
            "InstanceId": "i-4ba0837f",
            "AutoScalingGroupName": "my-auto-scaling-group",
            "HealthStatus": "HEALTHY",
            "LifecycleState": "InService",
            "LaunchConfigurationName": "my-launch-config"
        }
    ]
}

但是,如果它没有附加到任何,这将是一个空列表。

{
    "AutoScalingInstances": []
}

如果这不返回任何结果,则该实例不是自动缩放组的一部分。

这也将在 SDK 中提供:

于 2020-06-21T16:55:30.477 回答
2

您可以使用以下 aws cli 命令:

aws autoscaling describe-auto-scaling-instances --instance-ids i-exampleid 

如果实例是 Auto Scaling 组的一部分,则结果将为您提供详细信息。

https://docs.aws.amazon.com/cli/latest/reference/autoscaling/describe-auto-scaling-instances.html

于 2020-06-21T16:56:09.133 回答
1

您可以使用describe-auto-scaling-instances

aws autoscaling describe-auto-scaling-instances --instance-ids your-instance-id

如果存在,它将打印这样的内容

{
  "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
    }
  ]
}

如果不

{
  "AutoScalingInstances": []
}
于 2020-06-21T16:55:48.630 回答
0

您还可以查看实例标签以确定它是否属于 ASG。ASG 中的 EC2 将始终具有aws:autoscaling:groupName标记。

于 2020-06-22T04:07:07.857 回答