AWSアカウントのS3の料金を AWS Cost Explorer と Amazon S3 Storage Lensを使って分析してみました。
まずはCost Explorerで確認
AWSアカウントの管理を任されたら、Cost Explorerを見るのはオススメです。任された当初は、そのアカウント上で何が動いているのか、何にコストがかかっているのかも不明だったりしますが、Cost Explorerをみるとある程度の把握ができます。
どのサービスが高いか
まずはCost Explorerでデフォルトの設定で見てみます。
グループ化の条件 | フィルター |
---|---|
サービス | なし |
このAWSアカウント全体の中でS3(紫)の利用料金が最も高いことが確認できます。
S3のどの料金タイプが高いか
次にS3の何が高いのかを見ていきましょう。 S3の料金タイプは、大きく分けると「ストレージサイズ(TimedStorage-ByteHrs)」「リクエスト数(Requests)」「データ転送量(DataTransfer-Out-Bytes)」にかかります。
グループ化の条件 | フィルター |
---|---|
使用タイプ | サービス:S3 |
USW2(us-west-2なのでオレゴンリージョン)のリクエスト料金が高いことがわかります。
さらにリージョンで絞り込むこともできます。
グループ化の条件 | フィルター |
---|---|
使用タイプ | サービス:S3、リージョン:Oregon |
グラフだけでなく数字も出てくるので計算してみると、10万円くらいでした。
- USW2-TimedStorage-ByteHrs:$46.57
- Requests-Tier1:$765.30
- Requests-Tier2:$127.71
- 合計:$939.58(約10万円)
Requests-Tier1とRequests-Tier2の違いは以下です。
Usage Type | Description | 1,000 リクエストあたり料金(オレゴンリージョンの例) |
---|---|---|
region-Requests-Tier1 | PUT、COPY、POST、LIST リクエスト | 0.005USD |
region-Requests-Tier2 | GET、SELECT、他のすべてのリクエスト | 0.0004USD |
Tier1のリクエストはTier2のリクエストと比べると12.5倍のコストなります。
参考ページ
- Understanding your AWS billing and usage reports for Amazon S3 - Amazon Simple Storage Service
- 料金 - Amazon S3 |AWS
どのリクエストが高いか
Requests-Tier1は、PUT、COPY、POST、LISTとわかりました。 その中でどのリクエストが高いか見てみます。
グループ化の条件 | フィルター |
---|---|
APIオペレーション | サービス:S3 |
ListBucketが高いことがわかります。
どのバケットが高いのか
コスト配分タグを設定していれば確認できますが、今回の環境では設定していませんでした。
S3 Storage Lensも使ってみよう
もう少し分析できないものかと思い、S3のStorage Lensという2020年11月に追加された機能を使ってみます。
Amazon S3 Storage Lens の紹介 — オブジェクトストレージに組織全体にわたる可視性を | Amazon Web Services ブログ
無料機能でストレージサイズ分析
ストレージサイズの大きいバケット のトップ10がわかったりします。バケット が大量にある場合にこの一覧性は非常に助かります。
時系列で見れたりもします。先日あるバケット の不要なオブジェクトをゴソッと削除したので、カクッと下がっているのがわかります。
ストレージサイズに関しては、これで分析が楽になりました。
有料機能でアクティビティ分析
有料機能のアドバンストメトリクスを有効にすると、更なる分析結果を得られます。 オブジェクト数から料金が計算できるのですが、低価格と感じたため導入してみました。
設定ですが、Storage Lensのダッシュボード設定で以下のようにしてみました。(赤線で囲ったところがデフォルトとの差分)
有効にしてから、実際に使えるようになるまで48時間待つ必要があります。
アクティビティという項目で、どのバケットにどんなリクエストがどれだけでているかがわかるようになりました。(なんかエラーが多いというのもわかりますね。。。)
リクエスト数はLISTリクエストよりもHEADリクエストの方が多いですが、上記のようにリクエスト単価はLISTリクエストが12.5倍なので、こちらの削減がコスト改善的には重要です。
なお、ダッシュボード設定でプレフィックスも有効にしたので、バケット単位だけでなく、プレフィックス単位でもトップ10が見れるようになりました。(デフォルトでトップ10ですが、3〜50で変更も可能)
しかし、現在はアクティビティメトリクスについてはプレフィックス対応していないため、何も表示されません。未来に期待です。
まとめ
- Cost Exploreで何が高いか分析しよう
- S3のリクエスト料金は、LISTやPOSTはGETの12.5倍高い
- S3 Storage Lensは無料でストレージサイズに関する分析に役立つ
- S3 Storage Lensは有料にするとアクティビティに関する分析もできる
渡辺 信秀(記事一覧)
2017年入社 / 地味な内容を丁寧に書きたい