LoginSignup
3
2

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-11-30

Screen Shot 2018-12-01 at 0.01.15.png

AWS便利ですね!re:Inventも盛り上がっているようで楽しそうです。
便利な半面AWSのインスタンス管理は大変です。
インスタンスの一覧を簡単に取得することで管理しやすくならないかなということで取得してみました。

aws_instance_list.sh
#!/usr/bin/env bash

PROFILE=${1:-default}

# 手動でのコマンド

# ヘッダー行書き出し
echo -e "リージョン\tタイプ\tIDや名前\tIPアドレスや作成者\tインスタンスタイプ\t状態"

for REGION in ap-northeast-1 us-east-1 us-east-2 us-west-1 us-west-2 ca-central-1 eu-central-1 eu-west-1 eu-west-2 eu-west-3 ap-northeast-2 ap-northeast-3 ap-southeast-1 ap-southeast-2 ap-south-1 sa-east-1 ; do
  # EC2のリスト取得
  aws --region ${REGION} --profile ${PROFILE} ec2 describe-instances --output text \
      --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value|[0],PublicIpAddress,InstanceType,State.Name]' \
      | sed -e 's/^/'${REGION}$'\tEC2\t''/g'
  # RDSのリスト取得
  aws --region ${REGION} --profile ${PROFILE} rds describe-db-instances --output text \
      --query 'DBInstances[].[DBInstanceIdentifier,MasterUsername,DBInstanceClass,State.Name]' \
      | sed -e 's/^/'${REGION}$'\tRDS\t''/g'
done

上記のコードを動かすと、CSV(タブ区切り)でEC2とRDSのインスタンスのリストを取得できます。

$ bash aws_instance_list.sh
リージョン タイプ   IDや名前 IPアドレスや作成者  インスタンスタイプ
ap-northeast-1  EC2 hoge.l2tp.org redmine   192.0.2.1   t2.micro

pbcopyに渡してGoogleスプレッドシートなどに貼ると見やすいです。

$ bash aws_instance_list.sh | pbcopy

Screen Shot 2018-12-01 at 0.06.50.png

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

$ bash aws_instance_list.sh ap-northeast-1 l2tp | pbcopy

GitHub上のコードを実行する場合には| bash -sで引数を渡します。

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

起動と修了

RDS

RDSインスタンスの停止コマンドです。

aws default rds stop-db-instance --db-instance-identifier my-great-aurora-instance

インスタンス名がEC2のようなハッシュ値じゃないです。

出ている項目

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

もっとやりたいこと

  1. 料金の管理をしたいのでインスタンスタイプから概算料金を出したいです。
  2. リージョン決め打ちなのでそこのループを回したいです。(現在は手動でループ)-> 解決しました

上記その他にヒントやアイディアがあれば是非教えてください!

参考サイト

AWS CLIを使ってEC2インスタンスの情報を取得する - Qiita

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2