ナスです。

前回、SSM でコマンド実行するための IAM ロールについて書きました。今回は、GUI で確認してたことを aws cli でやってみただけの記事です。これ知ってるだけで確認時間短縮になりますので、忘れずに書き残してこうと思います。

ドキュメント

ドキュメントにも記載があります。前回の記事でも紹介したトラブルシューティングのドキュメントです。

以下の情報を参考にして、Run Command に関する問題のトラブルシューティングを行います。

docs.aws.amazon.com

試したコマンド

オンラインになっている EC2 インスタンスの情報を表示するコマンドです。もうこれだけで十分な気がしています。

$ aws ssm describe-instance-information --instance-information-filter-list key=PingStatus,valueSet=Online
{
    "InstanceInformationList": [
        {
            "IsLatestVersion": true,
            "ComputerName": "ip-172-31-31-244.ap-northeast-1.compute.internal",
            "PingStatus": "Online",
            "InstanceId": "i-********************",
            "IPAddress": "172.31.31.244",
            "ResourceType": "EC2Instance",
            "AgentVersion": "2.0.847.0",
            "PlatformVersion": "2016.09",
            "PlatformName": "Amazon Linux AMI",
            "PlatformType": "Linux",
            "LastPingDateTime": 1499692626.203
        },
        {
            "IsLatestVersion": false,
            "ComputerName": "WIN-43V67ICDPJJ.WORKGROUP",
            "PingStatus": "Online",
            "InstanceId": "i-********************",
            "IPAddress": "172.31.17.78",
            "ResourceType": "EC2Instance",
            "AgentVersion": "2.0.805.0",
            "PlatformVersion": "6.3.9600",
            "PlatformName": "Microsoft Windows Server 2012 R2 Standard",
            "PlatformType": "Windows",
            "LastPingDateTime": 1499692626.651
        }
    ]
}

AWS 管理コンソールでも確認すると、確かに 2 台オンラインになっていますね。

ちなみに、全台オフラインだとこんな結果になります。

$ aws ssm describe-instance-information --instance-information-filter-list key=PingStatus,valueSet=Online
{
    "InstanceInformationList": []
}

SSM でコマンド実行前にこういったコマンドで状況を確認することで、後続のスクリプトでエラーになる可能性を減らせる場面もあるかと思います(実際ここまで確認する場面があるかどうかは不明…)ので、積極的に aws cli を使っていきましょう。

元記事はこちら

SSM でコマンド実行できるかどうか確認するコマンド [cloudpack OSAKA blog]