利用方法
コマンド入力
# そのままだとデフォルトプロファイルで一覧を取ってくる
show-ec2
# プロファイル名を第一引数に取れる
show-ec2 production
結果
-----------------------------------------------------------------------
| DescribeInstances |
+--------------+-----------------------+----------------+-------------+
| no1_Name | no2_InstanceId | no3_PrivateIp | no4_Type |
+--------------+-----------------------+----------------+-------------+
| Server-01 | i-XXXXXXXXXXXXXXXXX | 10.X.XX.XXX | t3.small |
| Server-02 | i-XXXXXXXXXXXXXXXXX | 10.X.XX.XXX | t3.small |
| Server-03 | i-XXXXXXXXXXXXXXXXX | 10.X.XX.XXX | t3a.xlarge |
| Server-04 | i-XXXXXXXXXXXXXXXXX | 10.X.XX.XXX | t3.medium |
| Server-05 | i-XXXXXXXXXXXXXXXXX | 10.X.XX.XXX | t2.micro |
| Server-06 | i-XXXXXXXXXXXXXXXXX | 10.X.XX.XXX | t3.large |
+--------------+-----------------------+----------------+-------------+
やりたいこと
EC2の一覧がコンソール上でサッと確認できるようにしたかった
前提
- aws-cliがインストール済み
- プロファイルを設定済みで、
aws ec2 describe-instances
が使用できること - Shell関数はbashとzshで動作確認済み
定義
.bashrcや.zshrcなどに下記のShell関数を定義する。
show-ec2 () {
profile=$1
if [ -z "$profile" ]; then
profile="default"
fi
aws ec2 describe-instances \
--profile $profile \
--filter "Name=instance-state-name,Values=running" \
--query "sort_by(Reservations[].Instances[].{no1_Name: Tags[?Key==\`Name\`].Value|[0] , no2_InstanceId: InstanceId, no3_PrivateIp: PrivateIpAddress, no4_Type: InstanceType}, &no1_Name)" \
--output table
}
仕様
- 第一引数はaws configure等で設定したプロファイルを渡す。未入力の場合はデフォルトプロファイルを使用する。
- Nameタグ・インスタンスID・プライベートIP・インスタンスタイプを表示する
- Nameタグで昇順にソートする
- キー名に
no1_
のようなprefixをつけることでカラムのソートを実現している
参考