Database JUNKY

MySQL,MariaDBを中心としたブログです

excelでの管理に!ec2のインスタンス一覧を作成する

数十台のecインスタンスだったらこんな必要はないと思いますが、数百台、ものによっては、数千台っていうec2インスタンスを管理、もしくは一覧を作成したい場合、ec2管理コンソールで管理できなくなってきます。 そこで便利なのが、awsコマンドになってくるのですが、こちら結果が、jsonで帰ってきます。システマチックにこれを管理するぶんには便利なのですが、もっとレガシーにexcelとかで管理したい場合また、これが面倒になってきたりします。

ながながと描きましたが、これをEXCELで管理しやすいように、jqを利用してコピー&ペーストで済ませようとしたのが以下のコマンドになります。

  • 下記コマンドを実行

common

左から順番に、 * インスタンスid * インスタンスタイプ * プライベートip * プライベートdns名 * (存在すれば)パブリックip

Name.Value

# 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が入っているものしかもってこなくなっちゃったんで、どなたかアドバイスください。

aws ec2 describe-instances --instance-ids i-08e0a6c8d02bc7b46 | jq -r '.Reservations[].Instances[] | .InstanceId + "," + .State.Name'

結果から先に描きましたが。。。

こちら、ec2コマンド」がセットアップされていることが前提になり、ついでにいうと、jqがインストールされていることも必須です

これから(自分のメモ代わりに)随時追加していきます