AWS CLIツールを使ってインスタンス名の一部の文字列で検索して、表形式で出力する方法を紹介します。

AWS CLIツールのインストール

pipのインストール(pipがインストールされてない場合)

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

awscliのインストール

sudo pip install awscli

awsコマンドを使うための設定

aws configure

アクセスキーとシークレットキーを聞かれるので入力する。

awsコマンドを使う

aws ec2 describe-instances

と実行することで、jsonやtext形式などで全インスタンスの情報を出力できます。

しかしこれだと情報量が多すぎるので以下のように実行することで必要な情報だけに絞って表示することができます。

aws ec2 describe-instances --filters "Name=tag:Name,Values=*インスタンス名の一部の文字列*" --query 'Reservations[*].Instances[*].[join(`,`,Tags[?Key==`Name`].Value),InstanceId,State.Name,InstanceType,PublicIpAddress]' --output table

シェルスクリプトにして「インスタンス名の一部の文字列」の部分は$1などに置き換えて利用すると便利です。また、PublicIpAddressのところは、PrivateIpAddressに置き換えることも可能です。

実行結果(あくまでも例で、表示をマスクしています)

-----------------------------------------------------------------------------------------
|                                   DescribeInstances                                   |
+-------------------------------+-------------+----------+------------+-----------------+
|  instance-1                   |  i-xxxxxxxx |  running |  m1.small  |  x.x.x.x        |
|  instance-2                   |  i-xxxxxxxx |  running |  c3.xlarge |  x.x.x.x        |
|  instance-3                   |  i-xxxxxxxx |  running |  m1.small  |  x.x.x.x        |
|  instance-4                   |  i-xxxxxxxx |  running |  c3.large  |  x.x.x.x        |
+-------------------------------+-------------+----------+------------+-----------------+