AWSで稼働中のEC2とRDSのインスタンスの一覧を取得できると管理が捗ります

AWSで稼働中のEC2とRDSのインスタンスの一覧を取得できると管理が捗ります:

Screen Shot 2018-12-01 at 0.01.15.png

AWS便利ですね!re:Inventも盛り上がっているようで楽しそうです。

便利な半面AWSのインスタンス管理は大変です。

インスタンスの一覧を簡単に取得することで管理しやすくならないかなということで取得してみました。

https://github.com/yousan/aws_instance_list

aws_instans_list.sh
#!/usr/bin/env bash 
 
# usage: $ curl -s https://raw.githubusercontent.com/yousan/aws_instance_list/master/aws_instans_list.sh | bash -s ap-northeast-1 default 
 
REGION=${1:-ap-northeast-1} 
PROFILE=${2:-default} 
 
# ヘッダー行書き出し 
echo -e "リージョン\tタイプ\tIDや名前\tIPアドレスや作成者\tインスタンスタイプ" 
 
# EC2のリスト取得 
aws --region ${REGION} --profile ${PROFILE} ec2 describe-instances --output text \ 
    --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value|[0],PublicIpAddress,InstanceType]' \ 
    | sed -e 's/^/'${REGION}$'\tEC2\t''/g' 
 
# RDSのリスト取得 
aws --region ${REGION} --profile ${PROFILE} rds describe-db-instances --output text \ 
    --query 'DBInstances[].[DBInstanceIdentifier,MasterUsername,DBInstanceClass]' \ 
    | sed -e 's/^/'${REGION}$'\tRDS\t''/g' 
上記のコードを動かすと、CSV(タブ区切り)でEC2とRDSのインスタンスのリストを取得できます。

$ bash aws_instans_list.sh 
リージョン タイプ   IDや名前 IPアドレスや作成者  インスタンスタイプ 
ap-northeast-1  EC2 hoge.l2tp.org redmine   192.0.2.1   t2.micro 
pbcopyに渡してGoogleスプレッドシートなどに貼ると見やすいです。

$ bash aws_instans_list.sh | pbcopy 


Screen Shot 2018-12-01 at 0.06.50.png


引数にリージョンとAWS CLIのプロファイルを渡せます。

$ bash aws_instans_list.sh ap-northeast-1 l2tp | pbcopy 
GitHub上のコードを実行する場合には| bash -sで引数を渡します。

curl -s https://raw.githubusercontent.com/yousan/aws_instance_list/master/aws_instans_list.sh | bash -s ap-northeast-1 default | pbcopy 


出ている項目

現在はインスタンス名、IPアドレス(RDSならMasterUsername)、インスタンスタイプを出しています。AWS CLIの--queryを調整することでカラムを変更できます。


もっとやりたいこと

  1. 料金の管理をしたいのでインスタンスタイプから概算料金を出したいです。
  2. リージョン決め打ちなのでそこのループを回したいです。(現在は手動でループ)
上記その他にヒントやアイディアがあれば是非教えてください!

コメント

このブログの人気の投稿

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-04-30 23:37:32 RSSフィード2021-04-30 23:00 分まとめ(42件)

投稿時間:2023-02-05 02:09:04 RSSフィード2023-02-05 02:00 分まとめ(9件)