はじめに
Amazon Aurora Serverless v2 とは、AWSのサーバーレスのデータベースサービス。
前回の記事ではハンズオンを実施してみました。
Amazon Aurora Serverless v2 ハンズオンやってみた - Qiita
今回の記事では料金の計算方法をまとめたいと思います。
ACUとは
AWS公式サイトで東京リージョンの料金を確認してみると
Aurora キャパシティーユニット 0.20USD/ACU 時間
料金 - Amazon Aurora | AWS
キャパシティユニット..? ACU..?
Aurora Serverless では、データベース容量は 1 秒あたりに請求される Aurora Capacity Unit (ACU) で測定されます。1 ACU には、対応する CPU とネットワークを備えた約 2 GB のメモリがあり、Aurora でプロビジョンしたインスタンスで使用されているのと類似のものです。(料金 - Amazon Aurora | AWS)
■ ACU とは
Aurora 容量単位。Aurora Capacity Unit。
1ACU あたり約2GBのメモリ、対応するCPU、ネットワークが組み合わせられる。
つまり、db.t3.medium(2コア、4GB)相当の性能にするには、2ACU必要。
1時間動かしたとして、0.20USD × 2ACU × 1時間 = 0.40USD
db.t3.mediumは1時間あたり 0.125USD
Oh..Serverless 高すぎ...!?
Serverlessは高い?
自動でスケールするらしい。
データベースの容量は、アプリケーションのワークロードのニーズを満たすように自動的にスケールアップまたはスケールダウンされ、非アクティブ時にはシャットダウンされるため、コストを削減し管理する時間を節約できます。(料金 - Amazon Aurora | AWS)
Aurora Serverlessを起動するときに最小と最大のACUを設定する項目がある。
最小、最大で設定したACU間を負荷に合わせて自動でスケールする。
つまり、先ほどのdb.t3.mediumの例でいくと、
1時間常に休みなく4GBを使う処理をしていたら、0.40USD
1時間の間に処理しない時間や4GB未満の処理もあるなら、安くなる。
Serverlessは本当に安いのか
ServerlessでないAuroraと料金比較してみる。
■ 料金計算の例
・1ヶ月間の料金
・メモリ最大16G ほしい
・ただし、常に16Gのメモリを使うわけではない。
・1日のうち4時間は16G(8ACU)、8時間は1G(0.5ACU)の処理を行い、それ以外は処理しないと想定する。
【Provisioned型(Serverlessでない)の場合】
db.r5.largeを選ぶこととする。
0.70USD × 24時間 × 30日 = 504USD
【Serverless型の場合】
最小ACUを0.5、最大ACUを8とする。
0.20USD × 8ACU × 4時間 = 6.40USD
0.20USD × 0.5ACU × 8時間 = 0.80USD
( 6.40USD + 0.80USD ) × 30日 = 216USD
おわり
Aurora Serverlessの料金について調べてみました。