[AWS]EBS作成状況チェックツール

# EBS作成状況チェックツール

最近、インスタンスの起動/停止の繰り返しやバックアップの
ためのスナップ、AMI作成で気付いたら大量のVolumesが。。

EBSが「in-use」でも無いのにたくさん作られて（available）、
Account Activityで課金状態を確認すると、地味に増えてるコレ。

> Amazon EC2 EBS
>  $0.12 per GB-month of provisioned storage   ..... 

## ボリューム操作と課金について
と言うことで試して、肌で感じるのがイチバン！
3つのEBSボリュームがアタッチされているインスタンスから、
AMIを作成するところから。

- - -
* [a] AMIを削除すると
 1. AMI作成  
![EBS_a-1.jpg](https://qiita-image-store.s3.amazonaws.com/0/20707/00e56d81-7e18-e284-3453-a6ed112f5439.jpeg)  
 2. SNAP, Volume確認  
 SNAPは出来る。  
（そしてProgressがバー表示なことに今ささらながら気づく。。）
![EBS_a-2.jpg](https://qiita-image-store.s3.amazonaws.com/0/20707/23191299-6348-f113-bfc8-78076ba9c94c.jpeg)  
※当然のことながらVolumeは出来ません。  
 3. AMI削除  
キレイに消える  
 4. SNAP, Volume確認  
SNAPは残ったまま  
※このままだと、以下に課金されると思われるのでとりあえず削除。  

> Amazon EC2 EBS
>  $0.1 per GB-Month of snapshot data stored

- - -
* [b] SNAPを削除すると  
 1. AMI作成  
![EBS_b-1.jpg](https://qiita-image-store.s3.amazonaws.com/0/20707/91663c2f-fab1-3709-5ec1-7b4a4ab29cb8.jpeg)  
 2. SNAP, Volume確認  
　[a]同様  SNAPは出来て、Volumeは出来ない。。
![EBS_b-2.jpg](https://qiita-image-store.s3.amazonaws.com/0/20707/9ead2769-4a7f-b8ef-4981-96b912efbb71.jpeg)  
 3. SNAP削除  
 はい、消せません！！残念！  
 それはそうですよね、イメージの保存構成の1要素なのでSNAPだけは消せません。
![EBS_b-3.jpg](https://qiita-image-store.s3.amazonaws.com/0/20707/7e4fb843-95d0-c43c-14bc-86c0928292bf.jpeg)

- - -
* [c] Volumeを削除すると  
 1. [b]で作ったAMIからインスタンス起動  
  「Delete on Termination」はOFFってください。（この辺で勘のいい人はネタばれしそう。。。）
![EBS_c-1.jpg](https://qiita-image-store.s3.amazonaws.com/0/20707/2d2f4581-eb3c-4dd9-ca46-2ff57f377c79.jpeg)
 2. SNAP, Volume確認  
 SNAPは新たには出来ませんが（当然）、Volumeが新たにSNAPから展開されてインスタンス。
![EBS_c-2.jpg](https://qiita-image-store.s3.amazonaws.com/0/20707/7e8b381a-219e-462e-8a60-4fb61a86fcb7.jpeg)
 3. インスタンスをターミネートして、Volume削除  
![EBS_c-3.jpg](https://qiita-image-store.s3.amazonaws.com/0/20707/8bd58053-8774-734e-b9d4-ade05ef08d6a.jpeg)
 4. SNAPもAMIも消えません！（当然！！）


## ツールを作ってみた
* 目的
 * ムダ使いを減らしたい

* 概要
 * 上記でもわかる通り、AMIを作るとSNAP、インスタンス起動でVolumeが新たに作成される
 * 昨日作った分だけでも分かれば、翌日記憶がホットな内に無駄なものは消せる！
 * ゆくゆくは自動的化したいが。。。削除の自動はちょっと怖いので後ほど。

* 動作環境
 * CentOS6.3
 * Python 2.6.6
 * boto-2.6.0
 * aws-cli/0.12.0

```py:daily_check_ebs_created.py
#!/usr/bin/python
#-*- coding: utf-8 -*-

import commands
import sys,getopt
import json
import datetime

from datetime import datetime as dt

# Set standard date
aday = datetime.timedelta(days=1)
std_day = datetime.datetime.today() - aday

# Exec command
aws_cmd='aws ec2 describe-volumes'
out=commands.getoutput(aws_cmd)

# Parse JSON
ebs_data = json.loads(out)

print "===================================================================="
print "The following refers to the volume that is created after this time. "
print  unicode(std_day)
print "===================================================================="

for vols in ebs_data["Volumes"]:
   cretime = dt.strptime(vols["CreateTime"], '%Y-%m-%dT%H:%M:%S.000Z')
   ## Volume only newly created
   if cretime > std_day:
     print  "AZ=" + vols["AvailabilityZone"] + ", volId=" + vols["VolumeId"] + ", CreateTime=" + unicode(cretime) + ", State=" + vols["State"]
```

* このままで動かない場合、以下のコマンドを実行して下さい。

> export AWS_DEFAULT_REGION=ap-northeast-1

  
## 後述
そんな大したコードでは無いですｗ
しかし地味に「使える」ものをアップで。

ただ、「使える」とか「使えない」とかは主観でもあるので、
シンプルでまずは自分たちで「使える」ものを書いてみるところから。