Amazon SSM AgentのVersion確認方法

## 背景
昨年末にCloudWatch Agentがリリースされました。[AWS公式サイト](https://aws.amazon.com/jp/about-aws/whats-new/2017/12/amazon-cloudwatch-introduces-a-new-cloudwatch-agent-with-aws-systems-manager-integration-for-unified-metrics-and-logs-collection/)  

このツールのハンズオンイベントがあり、そちらに参加した際に 
関連ツールであるSSM Agentのバージョン確認方法が分かりませんでした。

※CloudWatch Agentの導入条件としてSSM Agentのバージョン制約があるため
　現在のSSM Agentのバージョンを確認したかったのですが
　amazon-ssm-agentコマンドには versionオプションが無いようです。
　(2018/2/20時点で2.2.93.0 以降である必要があります)

```
Usage of amazon-ssm-agent:
  -clear
  -code string
  -fingerprint
  -i string
        instance id
  -id string
  -r string
        instance region
  -region string
  -register
  -similarityThreshold int
         (default 40)
  -y
```

## SSM AgentのVersion確認方法
結論から言うと、awscliで確認することができました。

```
$ aws ssm describe-instance-information --query InstanceInformationList[] --output table
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                                                                                    DescribeInstanceInformation                                                                                   |
+--------------+----------------+-------------+----------------------+------------------+-------------------+-------------+-------------------+---------------+-------------------+----------------+
| AgentVersion | ComputerName   |  IPAddress  |     InstanceId       | IsLatestVersion  | LastPingDateTime  | PingStatus  |   PlatformName    | PlatformType  |  PlatformVersion  | ResourceType   |
+--------------+----------------+-------------+----------------------+------------------+-------------------+-------------+-------------------+---------------+-------------------+----------------+
|  2.2.120.0   |  ip-10-3-1-240 |  10.3.1.240 |  i-XXXXXXXXXXXf40dbc |  False           |  1519115377.69    |  Online     |  Amazon Linux AMI |  Linux        |  2017.09          |  EC2Instance   |
|  2.2.257.0   |  ip-10-3-1-146 |  10.3.1.146 |  i-XXXXXXXXXXX9834ff |  True            |  1519115509.41    |  Online     |  Amazon Linux AMI |  Linux        |  2017.09          |  EC2Instance   |
+--------------+----------------+-------------+----------------------+------------------+-------------------+-------------+-------------------+---------------+-------------------+----------------+
```

バージョンだけ抽出したいケースは下記のようにすることで確認できます。

```
$ aws ssm describe-instance-information --query InstanceInformationList[?InstanceId==\`ターゲットのインスタンスID\`].AgentVersion --output text
2.2.257.0
```

※ちなみにSystem ManagerコンソールのInventoryでも SSM AgentのVersionは確認することができます。
![SystemManagerコンソール.PNG](https://qiita-image-store.s3.amazonaws.com/0/224467/7221fdb8-d969-7f2c-2aa8-db82eb63a33a.png)

## Cloudwatch AgentのVersion確認方法
ついでにCloudwatch AgentのVersion確認方法も調べたのですが、下記コマンドで確認することができました。

```
$  /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status
{
 "status": "running",
 "starttime": "2018-02-20T07:00:28+0000",
 "version": "1.208.0"
}
```

## 参考/関連ドキュメント
- [OpsJAWS Meetup#14 ハンズオン資料](https://qiita.com/SHONANnoHBK/items/70e3879a0ce6fffe6d2c)
- [SSM Agent APIReference](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/APIReference/API_DescribeInstanceInformation.html)
- [CloudWatchAgent Install Document](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-first-instance.html#download-CloudWatch-Agent-on-EC2-Instance-first)