LoginSignup
6
0

More than 3 years have passed since last update.

S3バケット別概算コスト算出ツールを作ってみた

Last updated at Posted at 2020-04-05

はじめに

S3って安価なストレージなので、容量気にせずとりあえずなんでも格納して放置なんてことが多いですよね?
将来的に分析するかもってことでデータレイクに蓄積して結果使わないなんてことも多い。(my観測範囲)

で、新型コロナウィルスの影響で先行き不安な状況なので、収束まではどうにか支出を抑えて凌ぎたいという
人も多いと思い、要否判断(&不要であれば削除)しやすいように、S3バケットごとに使用量/概算コストを
一覧表示するツールを作ったので、紹介します。

ツール概要

一言で言えば、
全リージョン/全バケット別にオブジェクト数/使用バイト数/概算月額料金を出力するツール
です。(誰かが作ってそうなんですが探してもなかったので作りました)

CloudWatchからバケットサイズなど取得できるようになってるので、それを実行すればawscliでも取得できる
のですが、リージョン指定しないといけないとか、メトリクス/ディメンションを指定するのがダルイので
そこらへんうまくやってくれるツールが欲しいなぁと思ったのがモチベーションです。
あと、請求コンソールだとバケット別の使用量はわからないので。

補足(&免責事項)

  • コスト算出について
    • 実行時点の利用量を1ヶ月間継続した場合の概算請求額であり正確ではありません(ご利用は自己責任で)
    • ストレージ保存量に対して課金される料金が対象であり、それ以外(リクエスト/転送量)のコストは含みません
    • 概算請求額は東京リージョン料金(2020/04時点)で算出します
    • 料金通貨は米ドル
  • バージョニングについて
    • 以前のバージョンのオブジェクトやそのサイズもカウントされます
    • ツール結果とaws s3 ls --recursive等で得られるオブジェクト数は異なります

要はざっくりでいいのでバケットごとにかかる料金を知りたいって人がターゲットです

実行方法

前提

  • AWSクレデンシャル情報(~/.aws/credentials)が設置されていること

Go言語がインストールされている環境の場合

GO111MODULE=off go get -v github.com/miyaz/s3usage
cd $(go env GOPATH)/src/github.com/miyaz/s3usage
go run main.go

それ以外の環境

こちらから環境に応じたzipファイルをダウンロードし
展開後 s3usageというバイナリを実行します

オプション

  • -p {プロファイル名}
    • ~/.aws/credentials に記載されているプロファイル名
    • 指定なし時(デフォルト)はdefault
  • -v
    • ストレージタイプ毎の使用量/概算コストも表示したい場合に指定

実行例

./s3usage -p prod
normal.png

./s3usage -v -p prod
verbose.png

おわりに

コロナに負けるな!

6
0
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
6
0