[小ネタ]2月はS3の日割り料金が高くなる
クラウド事業本部の木村です。
S3のコストについて興味深い事象がありましたので、備忘も兼ねて共有したいと思います。
きっかけ
2月の初旬にAWS Cost Anomaly DetectionにてOrganizations内の複数アカウントにてS3の利用費に異常があると検知がありました。
全てのアカウントにてデータの保存量がほとんど変わっていないのに、2月1日のS3の1日当たりの料金が前日と比べて約20%ほど高くなっていました。
データ量は変わっていないのに、なぜ料金が上がったのかを調べていったところ納得の結果でしたので調査した結果を共有していきたいと思います。
料金上昇について
まず、具体的な状況を説明します。S3の費用はほぼ全てストレージ保存費用で発生しており、1月31日と2月1日のS3の使用状況を比較したところ保存されているデータ量はほぼ同じでした。しかし、Cost Explorerを確認してみると2月1日の料金が前日と比較して約20%増加していました。
S3の利用費、非ブレンド純コスト
アカウント個別で確認しても同様のどのアカウントでも同様の傾向で、同様の傾向は2/2以降についても割高な傾向が続いていました。
この状況について心当たりがなく原因について調査を行いました。
料金が上がった原因まとめ
2月は日数が少ない → 約11%アップ
利用量によって単価が変動する → 約9%アップ
この2つの要因が組み合わさって2/1は前日比20%増となっていることがわかりました。
詳細については以下で説明していきます。
原因1: 2月は日数が少ない
一つの目の要因は、2月の日数の少なさです。S3では、GB-monthで費用が発生します。
つまり1日当たりの料金を求める際には、保存量/当月の日数 で算出されることになります。
1月は31日ありますが、今年の2月は28日しかありません。同じ容量のオブジェクトを保管する場合でも、1月は「31」で日割り計算されるのに対し、2月は「28」で計算されます。この計算方法の違いだけで、2月の1日あたりの保存量は約11%も高くなります。
例えば31TBがアカウント全体で保存されている場合、以下のように計算されます。
1月は31日なので、1日あたり1TBが保存されていることに
2月は28日なので、1日あたり1.107TBが保存されていることに
このように1日当たりの保存量が増えますので、1日あたりの料金も増えるという状態になります。
当然ですが、月額で発生する費用については一定の量を保管していた場合料金は同額となります。
1月:1日あたり1TB * 31日 → 31TB分の料金
2月:1日あたり1.107TB * 28日 → 31TB分の料金
あくまで1日あたりの費用が高くなっているという点にご留意いただければと思います。
原因2:利用量によって単価が変動する
S3のストレージに関する料金体系は利用量が増えるほど単価が安くなるボリュームディスカウントを採用しています。最初の50TBまでは通常の料金単価、次の450TBは割引された料金単価というようにティア毎に単価が安くなっていきます。
このボリュームディスカウントですが、当月の利用量によってティアが決まってきます。ですので毎月1日になると一番料金の高いティアで費用が発生します。
1月31日時点では、月の累積使用量によって低いティアの単価が適用されていましたが、2月1日になると再び最初のティア(最も高い単価)が適用されます。
料金ティアの例(東京リージョン、スタンダードストレージの場合)は以下になります。
最初の50TB/月: $0.025/GB
次の450TB/月: $0.024/GB
500TB超/月: $0.023/GB
今回確認していたアカウントでは、前月の保存量の合計が500TBを超えていたので1/31に発生した料金は一番料金の低いティアの$0.023/GBで計算されていました。
2/1は一番料金の高いティアで計算されることになり$0.025/GBで計算されています。
このため2/1に発生した費用は同じ保存量でも,約8%ほど高い費用が発生することになりました。
この2つの要因が組み合わさったことが何も変更していないにもかかわらず料金が約20%上昇したからくりでした。
ただ月額の費用で見てみると保存量が一定であるならば同額の費用となりますので、特に対応は必要ありません。
まとめ
AWSの料金体系は一見シンプルに見えて、実は様々な要素が絡み合っています。今回のケースでは、2つの要因が重なり、2/1から料金が20%も上昇したように見えるという事象が発生しました。
日数が少ないことによる日割りの費用が高くなるのは、S3の他にもGB-Monthで計算されるEBSなどが該当します。
逆にEC2のインスタンスの利用料は1時間あたりで料金が設定されているので、同様の事象は発生しません。
また、月初の費用が高く見えるという件では、同じように料金ティアの概念があるCloudFront(データアウト)などが該当します。
このようにそれぞれのサービスの料金体系によって費用が決まってきます。
コストの異常を検知した際には、それぞれのサービスの料金体系を確認することで何か発見があるかもしれません。
この記事がどなたかの参考になれば幸いです。クラウド事業本部の木村がお届けしました。