excelでの管理に!ec2のインスタンス一覧を作成する
数十台のecインスタンスだったらこんな必要はないと思いますが、数百台、ものによっては、数千台っていうec2インスタンスを管理、もしくは一覧を作成したい場合、ec2管理コンソールで管理できなくなってきます。 そこで便利なのが、awsコマンドになってくるのですが、こちら結果が、jsonで帰ってきます。システマチックにこれを管理するぶんには便利なのですが、もっとレガシーにexcelとかで管理したい場合また、これが面倒になってきたりします。
ながながと描きましたが、これをEXCELで管理しやすいように、jqを利用してコピー&ペーストで済ませようとしたのが以下のコマンドになります。
- 下記コマンドを実行
common
左から順番に、 * インスタンスid * インスタンスタイプ * プライベートip * プライベートdns名 * (存在すれば)パブリックip
Name.Value
- インスタンスid
- Nameタグが設定されているもののみリスト化
# common aws ec2 describe-instances | jq -r '.Reservations[].Instances[] | .InstanceId + "|" + .InstanceType+ "|" + .NetworkInterfaces[].PrivateIpAddresses[].PrivateDnsName + "|" + .NetworkInterfaces[].PrivateIpAddresses[].PrivateIpAddress + "|" + if .PublicIpAddress != null then .PublicIpAddress else "---" end + "|" + .State.Name' # Name.Value aws ec2 describe-instances | jq -r '.Reservations[].Instances[] | .InstanceId + "|" + (.Tags[]? | select(.Key == "Name")).Value'
コマンドを2つに分けたのは。ちょっと私の知識はなくて、commonにName.Valueを設定しちゃうと、Name.Valueが入っているものしかもってこなくなっちゃったんで、どなたかアドバイスください。
- インスタンスIDとステータスのカンマ区切りで出す
aws ec2 describe-instances --instance-ids i-08e0a6c8d02bc7b46 | jq -r '.Reservations[].Instances[] | .InstanceId + "," + .State.Name'
結果から先に描きましたが。。。
こちら、ec2コマンド」がセットアップされていることが前提になり、ついでにいうと、jqがインストールされていることも必須です
これから(自分のメモ代わりに)随時追加していきます