S3料金の調べ方

記事タイトルとURLをコピーする

AWSアカウントのS3の料金を AWS Cost ExplorerAmazon S3 Storage Lensを使って分析してみました。

まずはCost Explorerで確認

AWSアカウントの管理を任されたら、Cost Explorerを見るのはオススメです。任された当初は、そのアカウント上で何が動いているのか、何にコストがかかっているのかも不明だったりしますが、Cost Explorerをみるとある程度の把握ができます。

どのサービスが高いか

まずはCost Explorerでデフォルトの設定で見てみます。

グループ化の条件 フィルター
サービス なし

f:id:swx-watanabe:20210513081448p:plain

このAWSアカウント全体の中でS3(紫)の利用料金が最も高いことが確認できます。

S3のどの料金タイプが高いか

次にS3の何が高いのかを見ていきましょう。 S3の料金タイプは、大きく分けると「ストレージサイズ(TimedStorage-ByteHrs)」「リクエスト数(Requests)」「データ転送量(DataTransfer-Out-Bytes)」にかかります。

グループ化の条件 フィルター
使用タイプ サービス:S3

f:id:swx-watanabe:20210529092356p:plain

USW2(us-west-2なのでオレゴンリージョン)のリクエスト料金が高いことがわかります。

さらにリージョンで絞り込むこともできます。

グループ化の条件 フィルター
使用タイプ サービス:S3、リージョン:Oregon

f:id:swx-watanabe:20210513083424p:plain

グラフだけでなく数字も出てくるので計算してみると、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倍のコストなります。

参考ページ

どのリクエストが高いか

Requests-Tier1は、PUT、COPY、POST、LISTとわかりました。 その中でどのリクエストが高いか見てみます。

グループ化の条件 フィルター
APIオペレーション サービス:S3

f:id:swx-watanabe:20210529091646p:plain

ListBucketが高いことがわかります。

どのバケットが高いのか

コスト配分タグを設定していれば確認できますが、今回の環境では設定していませんでした。

Amazon S3 バケットのコストを確認する

S3 Storage Lensも使ってみよう

もう少し分析できないものかと思い、S3のStorage Lensという2020年11月に追加された機能を使ってみます。

Amazon S3 Storage Lens の紹介 — オブジェクトストレージに組織全体にわたる可視性を | Amazon Web Services ブログ

無料機能でストレージサイズ分析

ストレージサイズの大きいバケット のトップ10がわかったりします。バケット が大量にある場合にこの一覧性は非常に助かります。

f:id:swx-watanabe:20210513084810p:plain

時系列で見れたりもします。先日あるバケット の不要なオブジェクトをゴソッと削除したので、カクッと下がっているのがわかります。

f:id:swx-watanabe:20210513085927p:plain

ストレージサイズに関しては、これで分析が楽になりました。

有料機能でアクティビティ分析

有料機能のアドバンストメトリクスを有効にすると、更なる分析結果を得られます。 オブジェクト数から料金が計算できるのですが、低価格と感じたため導入してみました。

f:id:swx-watanabe:20210513091333p:plain

料金 - Amazon S3 |AWS

設定ですが、Storage Lensのダッシュボード設定で以下のようにしてみました。(赤線で囲ったところがデフォルトとの差分)

f:id:swx-watanabe:20210513092448p:plain

有効にしてから、実際に使えるようになるまで48時間待つ必要があります。

アクティビティという項目で、どのバケットにどんなリクエストがどれだけでているかがわかるようになりました。(なんかエラーが多いというのもわかりますね。。。)

リクエスト数はLISTリクエストよりもHEADリクエストの方が多いですが、上記のようにリクエスト単価はLISTリクエストが12.5倍なので、こちらの削減がコスト改善的には重要です。

f:id:swx-watanabe:20210513093856p:plain

なお、ダッシュボード設定でプレフィックスも有効にしたので、バケット単位だけでなく、プレフィックス単位でもトップ10が見れるようになりました。(デフォルトでトップ10ですが、3〜50で変更も可能)

f:id:swx-watanabe:20210513094851p:plain

しかし、現在はアクティビティメトリクスについてはプレフィックス対応していないため、何も表示されません。未来に期待です。

f:id:swx-watanabe:20210513094904p:plain

まとめ

  • Cost Exploreで何が高いか分析しよう
  • S3のリクエスト料金は、LISTやPOSTはGETの12.5倍高い
  • S3 Storage Lensは無料でストレージサイズに関する分析に役立つ
  • S3 Storage Lensは有料にするとアクティビティに関する分析もできる

渡辺 信秀(Nobuhide Watanabe) (記事一覧)

2017年入社。好きな言語は日本語。