[アップデート]Amazon EC2 Auto Scalingで、DescribeAutoScalingGroups APIからインスタンスの詳細情報をフィルタできるようになりました
Amazon EC2 Auto ScalingのAPIのオプションが増えました
おのやんです。
この度のアップデートにより、Amazon EC2 Auto Scaling(以下、Auto Scaling)で、DescribeAutoScalingGroups APIからインスタンスの詳細情報をフィルタできるようになりました。
ということで、今回はこちらを検証したいと思います。
AWS CLIのアップデート
検証にあたり、ローカルのMacにインストールされているAWS CLIを最新バージョンに更新します。最新バージョンではないコマンドでは、EC2インスタンスの表示可否がそもそも指定できないので、当然ですがこのようにエラーになります。
# EC2インスタンスを表示
% aws autoscaling describe-auto-scaling-groups --include-instances
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:
aws help
aws <command> help
aws <command> <subcommand> help
Unknown options: --include-instances
# EC2インスタンスを非表示
% aws autoscaling describe-auto-scaling-groups --no-include-instances
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:
aws help
aws <command> help
aws <command> <subcommand> help
Unknown options: --no-include-instances
筆者の場合はこちらのページからpkg
ファイルをダウンロードしてインストールしていたので、最新バージョン(v2.27.39
)のpkg
ファイルを新しくインストールします。
AWS CLI経由で検証
こちらが終わりましたら、AWS環境でAmazon EC2(以下、EC2)のAMIを作成して、こちらをもとにAuto Scalingグループを作成します。「希望するキャパシティ」の項目は、今回複数のEC2インスタンスを出力させたいので2
に設定します。
正常に動作すれば、このように2つのEC2インスタンスが作成されているはずです。
今回実行するのは、aws autoscaling describe-auto-scaling-groups
コマンドです。詳細はこちらのページで確認できます。
従来のコマンドでは、EC2インスタンス情報が出力に含まれていたので、Auto Scalingグループ以外の情報も一緒に出力されることになっていました。
% aws autoscaling describe-auto-scaling-groups
{
"AutoScalingGroups": [
{
"AutoScalingGroupName": "aws-test-scaling",
"AutoScalingGroupARN": "arn:aws:autoscaling:ap-northeast-1:xxxxxxxxxxxx:autoScalingGroup:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:autoScalingGroupName/aws-test-scaling",
"LaunchTemplate": {
"LaunchTemplateId": "lt-xxxxxxxxxxxxxxxxx",
"LaunchTemplateName": "aws-test-ec2-template",
"Version": "$Default"
},
"MinSize": 1,
"MaxSize": 2,
"DesiredCapacity": 2,
"DefaultCooldown": 300,
"AvailabilityZones": [
"ap-northeast-1a",
"ap-northeast-1c"
],
"LoadBalancerNames": [],
"TargetGroupARNs": [],
"HealthCheckType": "EC2",
"HealthCheckGracePeriod": 300,
"Instances": [
{
"InstanceId": "i-xxxxxxxxxxxxxxxxx",
"InstanceType": "t2.micro",
"AvailabilityZone": "ap-northeast-1a",
"LifecycleState": "InService",
"HealthStatus": "Healthy",
"LaunchTemplate": {
"LaunchTemplateId": "lt-xxxxxxxxxxxxxxxxx",
"LaunchTemplateName": "aws-test-ec2-template",
"Version": "1"
},
"ProtectedFromScaleIn": false
},
{
"InstanceId": "i-xxxxxxxxxxxxxxxxx",
"InstanceType": "t2.micro",
"AvailabilityZone": "ap-northeast-1c",
"LifecycleState": "InService",
"HealthStatus": "Healthy",
"LaunchTemplate": {
"LaunchTemplateId": "lt-xxxxxxxxxxxxxxxxx",
"LaunchTemplateName": "aws-test-ec2-template",
"Version": "1"
},
"ProtectedFromScaleIn": false
}
],
"CreatedTime": "2025-06-20T04:50:52.537000+00:00",
"SuspendedProcesses": [],
"VPCZoneIdentifier": "subnet-xxxxxxxxxxxxxxxxx,subnet-xxxxxxxxxxxxxxxxx,subnet-xxxxxxxxxxxxxxxxx,subnet-xxxxxxxxxxxxxxxxx,subnet-xxxxxxxxxxxxxxxxx,subnet-xxxxxxxxxxxxxxxxx
",
"EnabledMetrics": [],
"Tags": [],
"TerminationPolicies": [
"Default"
],
"NewInstancesProtectedFromScaleIn": false,
"ServiceLinkedRoleARN": "arn:aws:iam::xxxxxxxxxxxx:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling",
"TrafficSources": [],
"AvailabilityZoneDistribution": {
"CapacityDistributionStrategy": "balanced-best-effort"
},
"CapacityReservationSpecification": {
"CapacityReservationPreference": "default"
}
}
]
}
このコマンドに対して、今回のアップデートで次のオプションを入力できるようになりました。
オプション | 設定値 | 備考 |
---|---|---|
--include-instances |
true |
何もパラメータを指定しなかった時のデフォルトです |
--no-include-instances |
false |
先ほどのコマンドに--no-include-instances
を設定すると、こんな感じでEC2インスタンス情報が省略された状態で出力されます。Instances
の情報がまるっとなくなっているのがわかります。
% aws autoscaling describe-auto-scaling-groups --no-include-instances
{
"AutoScalingGroups": [
{
"AutoScalingGroupName": "aws-test-scaling",
"AutoScalingGroupARN": "arn:aws:autoscaling:ap-northeast-1:xxxxxxxxxxxx:autoScalingGroup:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:autoScalingGroupName/aws-test-scaling",
"LaunchTemplate": {
"LaunchTemplateId": "lt-xxxxxxxxxxxxxxxxx",
"LaunchTemplateName": "aws-test-ec2-template",
"Version": "$Default"
},
"MinSize": 1,
"MaxSize": 2,
"DesiredCapacity": 2,
"DefaultCooldown": 300,
"AvailabilityZones": [
"ap-northeast-1a",
"ap-northeast-1c"
],
"LoadBalancerNames": [],
"TargetGroupARNs": [],
"HealthCheckType": "EC2",
"HealthCheckGracePeriod": 300,
"CreatedTime": "2025-06-20T04:50:52.537000+00:00",
"SuspendedProcesses": [],
"VPCZoneIdentifier": "subnet-xxxxxxxxxxxxxxxxx,subnet-xxxxxxxxxxxxxxxxx,subnet-xxxxxxxxxxxxxxxxx,subnet-xxxxxxxxxxxxxxxxx,subnet-xxxxxxxxxxxxxxxxx,subnet-xxxxxxxxxxxxxxxxx",
"EnabledMetrics": [],
"Tags": [],
"TerminationPolicies": [
"Default"
],
"NewInstancesProtectedFromScaleIn": false,
"ServiceLinkedRoleARN": "arn:aws:iam::xxxxxxxxxxxx:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling",
"TrafficSources": [],
"AvailabilityZoneDistribution": {
"CapacityDistributionStrategy": "balanced-best-effort"
},
"CapacityReservationSpecification": {
"CapacityReservationPreference": "default"
}
}
]
}
Auto Scalingグループのみの設定を出力させたいときによさそう
確かに、Auto Scalingグループの情報だけ参照したい時はEC2インスタンスの情報が不要なケースもあるかと思います。
EC2インスタンス情報は項目が多くなりがちなので、Auto Scalingグループの情報だけ欲しい場合はかなりよさそうです。