概要
AWS EBSのストレージ/ボリュームのサイズに対する料金は秒単位で課金されます。料金は月額で設定されていますが、月額÷その月の日数÷86,400秒(24時間)が1秒当たりの料金になります。月によって1秒当たりの料金は少しだけ上下します。
AWS EBSの料金設定と課金の単位
AWSには料金設定と課金単位の粒度が違うサービスがあります。例えばEBSの料金は次のように「GB 月」と月額で設定されています(金額は2021年6月1日時点の東京リージョン)。
ボリュームタイプ | 料金 |
---|---|
汎用SSD(gp3)-ストレージ | 0.096USD/GB 月 |
汎用SSD(gp2)ボリューム | 1か月にプロビジョニングされたストレージ1GBあたり0.12USD |
しかしEBSのデータ量に課金は、実は秒単位です(ただし最小で60秒分は課金されます)。次のように書かれています。
- gp3 ボリュームのプロビジョンドストレージ、プロビジョンド IOPS、およびプロビジョンドスループットは、1 秒ごとに課金されます (最小課金時間は 60 秒)。
- gp2 ボリュームのプロビジョニング済みストレージは、1 秒ごとに課金されます (最小課金時間は 60 秒)。
実際に適用される「秒単価」
この時、料金計算には「今月の1秒当たりの料金(秒単価)」が必要になります。秒単価は、その月の秒数によって、つまりその月の日数によって変わります。次のように書かれています。
例えば、お客様が 1 か月 30 日間の期間に 12 時間 (43,200 秒) 2000 GB のボリュームをプロビジョニングしたとします。GB/月につき 0.08 USD 課金されるリージョンでは、そのボリュームに対して 2.667 USD (GB/月につき 0.08 USD x 2000 GB x 43,200 秒 / (86,400 秒/日 x 30 日/月)) が課金されます。
0.096USD/GB 月で1,000GBを使用した時、次のような単価になります。
- 1月など31日までの場合 … (0.096USD/GB 月)÷(86,400秒/日 × 31日/月)=0.000000035842USD/GB 秒
- 4月など30日までの場合 … (0.096USD/GB 月)÷(86,400秒/日 × 30日/月)=0.000000037037USD/GB 秒
- うるう年の2月で29日までの場合 … (0.096USD/GB 月)÷(86,400秒/日 × 29日/月)=0.000000038314USD/GB 秒
- それ以外の2月で28日までの場合 … (0.096USD/GB 月)÷(86,400秒/日 × 28日/月)=0.000000039683USD/GB 秒
月によって微妙に秒単価は上下します。
実際の料金計算
実際の料金計算は、秒単価を使うより次のような式で行う方がよいでしょう。
- サイズ × 月額 × 利用秒数 ÷ 86400 ÷ その月の日数
利用期間を秒数ではなく日数で計算するなら、もっと簡単です。
- サイズ × 月額 × 利用日数 ÷ その月の日数
利用しない期間はEBSボリュームを削除して利用開始時にデプロイするなど、一定サイズで利用時間を短くする場合の概算なら、月額に割合を掛けてしまう方が考えやすいことが多いです。
- 平日だけ(週7日のうち5日だけ)利用 … サイズ × 月額 × 5/7
- 定時内だけ(1日24時間のうち8時間だけ)利用 … サイズ × 月額 × 8/24
まとめ
AWS EBSのストレージ/ボリュームのサイズに対する料金は秒単位で課金されます。料金は月額で設定されていますが、月額÷その月の日数÷86,400秒(24時間)が1秒当たりの料金になります。月によって1秒当たりの料金は少しだけ上下します。AWSの料金を考えるうえで、以下の二点は意識しておきたいと思いました。
- 時間課金の料金確認時には、料金設定単位、課金単位、最小課金時間の情報を揃える
- 料金設定は月間(月額)だけど、課金単位は時間単位や秒単位などのサービスがある
- 課金単位は秒だけど、最小課金時間が60秒などのサービスがある
- 日割り計算をする際は、当月の日数を意識する(1月なら31日、4月なら30日など)
料金設定単位、課金単位、最小課金時間が揃わないものとしては、例えば身近なものにEC2のオンデマンドインスタンスの料金があります。料金は時間単価で設定されています。課金も基本的には時間単位ですが、一部のLinuxインスタンスでは秒単位になります。この時、最小課金時間も別の数字になります。
オンデマンド、リザーブド、スポット形式で起動したLinuxベースのインスタンスによるAmazon EC2の使用において、請求が1秒単位 (最低60秒) で行われるようになりました。Amazon EC2 Elastic GPUとAmazon EBSボリュームも、1時間ごとの請求モデルから1秒あたり (最低60秒) の請求モデルに変更されます。(略)時間単位による請求が課せられているMicrosoft WindowsやLinuxディストリビューションを実行しているインスタンスには、秒単位による請求が適用されません。
(Amazon EC2 で 1 秒あたりの請求が可能に)
他のサービスについても、利用期間に対する料金を確認する際には、上記の3項目を見つけることを意識するとよさそうです。