AWS Aurora サーバーレス or プロビジョン

こんにちは、かっぺいです。
AuroraServerlessがv2になって、実用性が増しました。
小規模利用の場合、コストを主題にするとサーバーレスかプロビジョンどっちにするか悩みどころです。

サーバーレスの費用

サーバーレスの場合、ACUというユニットサイズでスケーリングを行いますが、費用もこのACUの稼働時間で計算されます。
最大ACUと最小ACUを設定して、DBの利用状況に応じて、スケールアップ・ダウンを行います。サーバーレスv2の場合、スケールアップ・ダウンの間隔が短くなったので負荷に応じて柔軟にスケーリングが行えるようになりました。
費用面でも、この点は大きくて負荷が無ければ、少ないコストで運用できるようになっています。

自動シャットダウン

サーバーレスv1の場合、設定した指定時間のワークロードがない場合に自動でシャットダウンしてACUを0にする機能がありました。
サーバーレスv2の場合、同様の設定項目が無いので、自動シャットダウンは行われません。最低ACUを0.5に設定した場合、ワークロードが無くても0.5ACU時間がカウントされます。

サーバーレスのメリット

Auroraの場合、DynamoDBのようにインスタンス部分を全く気にしなくて良いかというと、ちょっと意味合いが違っていて、AZのインスタンス構成などは管理する必要があり、インスタンスタイプを考慮する必要がなくスケーリングが簡単に可能というくらいの扱いとなっています。
そのため、機能や必要知識としてはプロビジョン版との差はあまりありません。

停止可能なワークロード

サービス稼働時間が限定されている場合や、バッチ処理など短時間だけ利用するような場合は、使わない時間帯にインスタンス停止を行うことにより、費用を抑えることが可能です。
プロビジョンの場合は、リザーブド料金の割引率よりも高い割合の1日の未稼働時間を確保できればオンデマンドでも割安な運用が可能となります。

この場合のサーバーレスのメリットは、稼働中のワークロードに一定時間でのばらつきがある場合には、ACUのスケールダウンを期待できるので、プロビジョンよりも費用低減を狙うことが可能となるかもしれません。
ただし、プロビジョンのインスタンスタイプをバーストタイプの低めを選んだ場合は、ACUの単価よりも割安となってしまうので、サーバーレスのメリットは見込めない可能性があります。

常時稼働が必要な場合

Webサイトのような常時稼働を前提とした場合、プロビジョン版をリザーブドインスタンスで利用することにより、費用を抑えることが可能です。
注意点は、リザーブドインスタンスはインスタンスタイプでの年契約となり、途中で変更できません。
前払いなしや一部前払いを選択した場合は、対象のAuroraが稼働していなくても契約終了時間までの費用が請求されます。

この場合のサーバーレスを選ぶポイントは、一時的な高負荷なワークロードがあるが、普段は低いACUを維持できる場合になるのかなと思います。

個人的な感想

計測はしていませんが、同じメモリー容量となる条件で体感では、プロビジョン版の方が速度がわずかに速い気がします。
他のサーバーレスとは扱いが異なるため、長時間稼働の場合には費用面でもあまりメリットが感じられないので、常時稼働でワークロードが予測可能な一般的な利用の場合には、プロビジョン版の方が良いのかなと感じています。