web-dev-qa-db-ja.com

ec2-describe-tagsを使用しているときに実行中のインスタンスのみのリストを取得するにはどうすればよいですか

ec2-describe-tagsを使用しているときに実行中のインスタンスのみのリストを取得するにはどうすればよいですか。私はこのようなコマンドを使用しています:

ec2-describe-tags --filter "resource-type=instance" --filter "value=somevalue" --filter "key=key"
24
user1788294

aws-cli を使用すると簡単です。

aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId]' --filters Name=instance-state-name,Values=running --output text
33
John Rotenstein

John Rotensteinの答えを拡張すると、describe-instancesで間違いなくこれを行うことができます。

これにより、名前タグに特定のWordが含まれる実行中のすべてのインスタンスの名前タグとIPがリストされます。

name_tag=mongodb
aws ec2 describe-instances --filter "Name=tag-key,Values=Name" "Name=tag-value,Values=*$name_tag*" "Name=instance-state-name,Values=running" --query "Reservations[*].Instances[*][Tags[?Key=='Name'].Value[],NetworkInterfaces[0].PrivateIpAddresses[0].PrivateIpAddress]" --output text

出力:

10.100.2.10
mongodb0
10.100.2.11
mongodb1
10.100.2.12
mongodb2

ここでのボーナスは、name_tagを空のリストのままにしておくことですall実行中のインスタンス。

10
jonatan