AWS CLIツールを使ってインスタンス名で検索する方法
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 |
+-------------------------------+-------------+----------+------------+-----------------+