---
# System prepended metadata

title: 'AWS: 特定のNameタグを持つEC2を抽出する'

---

# AWS: 特定のNameタグを持つEC2を抽出する

すべて以下の出力が得られる。

```
#output
{
  "InstanceId": "i-07631932a2862aeff",
  "Tags": {
    "Key": "Name",
    "Value": "zansin-ctrl"
  }
}
```

## jqで

最終行でオブジェクトの形式の指定を`[]`で囲って、出力が`[]`で囲まれていることの帳尻を合わせている。

```
aws ec2 describe-instances | jq '.Reservations[].Instances[] 
| select( any(.Tags[]; .Key == "Name" and .Value == "zansin-ctrl")) 
| [{InstanceId: .InstanceId, Tags: .Tags[] }]'
```

## AWSCLIの`--query`オプションで

`--query`オプションはクライアントサイド処理。

```
aws ec2 describe-instances | jq '.Reservations[].Instances[] 
| select( any(.Tags[]; .Key == "Name" and .Value == "zansin-ctrl")) 
| [{InstanceId: .InstanceId, Tags: .Tags[] }]'
```

## AWSCLIの`--filters`オプションで

`--filters`オプションはサーバーサイド処理。

```
aws ec2 describe-instances --filters "Name=tag:Name,Values=zansin-ctrl"
```
