1
0

Aurora Serverles V2の選定ポイント、大規模コスト削減事例

Posted at

はじめに

JAWS PANKRATION 2024で発表させていただいた内容を日本語訳でブログにまとめます。

触れること

・Aurora Serverless V2を利用した大規模コスト削減事例
・Aurora Serverless V2のパフォーマンスとスケーリング
・Aurora Serverless V2の選定ポイント

Aurora Serverless V2とは?

Aurora Serverless V2は、以下の特徴を持つリレーショナル・データベースです。
・負荷に応じた自動スケーリング
・高い可用性
・高い拡張性
・高いコスト効率 ※注意が必要 別途解説
・サーバレスとプロビジョニングインスタンスの共存が可能

スクリーンショット 2024-08-24 13.54.51.png

また、スケーリング単位として、ACUという単位があります。
1ACUとして、2GBのメモリが利用可能であり、最低0.5から最大128までスケーリングすることが可能です。
1ACUあたり東京リージョンでは0.2USD/hとなり、利用したACU分が課金対象となります。

スクリーンショット 2024-08-24 13.54.58.png

事例紹介

少しぼやかしていますが、以下のようなシステムをAWSに移行した事例となります。
・WEBAP
・50万人のユーザ
・一日1000〜50万件程度のアクセス
・1時間5万回のシステム連携イベント
・レスポンスタイム3秒
・24/365稼働
・プライベートクラウドで動作

スクリーンショット 2024-08-24 13.55.55.png

移行にあたって解決したい問題や意識すべき特徴が複数ありました。
・平日9時〜17時が主な利用時間帯だが、休日や夜間利用もある
・必要な需要予測が難しい
・高い可用性が要求される(ダウンすれば他システムにも影響が出る)
・クラウドの拡張性、柔軟性を活用したい
・EC2はオートスケーリングで需要に合わせた柔軟なスケールが実現できるが、DBは最大の性能を用意する必要があり、無駄が多い
・24時間稼働のため、メンテナンスや見直しが容易ではない

スクリーンショット 2024-08-24 13.58.17.png

こういった課題を解決するために、Aurora Serverless V2を選択したという事例となります。

スクリーンショット 2024-08-24 14.02.15.png

コスト比較と削減事例

まず初めに、プロビジョニングインスタンスと、ServerlessV2のコストを比較したいと思います。
下の図からわかるように、プロビジョニングに比べて、約4.6倍もコストが高くなることがわかります。
ちなみにr6gインスタンスはr5インスタンスよりコストパフォーマンスにすぐれており、当たり前ですが、リザーブドインスタンスが最も安い金額となります。
スクリーンショット 2024-08-24 14.13.50.png

仮に、プロビジョニングインスタンスと同一コストとする場合、下記に示す通り、プロビジョニングインスタンスでは128GBのメモリが利用できるのに対し、ServerlessV2では平均28GBまでのメモリ使用量まで抑える必要があります。
この結果から分かる通り、Aurora ServerlessV2のコストパフォーマンスは良いとは言い難いですね。
スクリーンショット 2024-08-24 14.15.48.png

とはいえ、単純に性能とコストで比較するのは早すぎます。Aurora ServerlessV2にすることで、減る運用コストも加味する必要があるのです。たとえば、変更や見直しのコストです。変更には、人員を配置し、検討やテスト、変更作業などのコストがかかります。この部分のコストも加味して選定をする必要があるのです。

スクリーンショット 2024-08-24 14.18.00.png

我々のケースでは、ServerlessV2を選択したことで、月4000USD以上のコストを削減しています。これは運用コストを含んでいません。
スクリーンショット 2024-08-24 14.19.49.png

なぜ高い単価であるServerlessV2でコスト削減できたのか、その理由は以下にあると考えています。
・大きな需要変動
・常に最大負荷に備えておく必要がある
・需要予測が難しい
・ピーク負荷がかかることがあまりない
・24時間稼働であり、継続的な見直しが容易ではない
・要件の最大性能値と平常負荷のギャップ
スクリーンショット 2024-08-24 14.21.31.png

性能

AuroraServerlessV2は最低ACUと最大ACUが指定可能であり、最低ACUは選定ロジックに注意が必要です。
ACUを下げれば下げるほどコストは削減可能ですが、同時にスケーリングスピードが遅くなります。このあたりは性能試験のポイントになるでしょう。
スクリーンショット 2024-08-24 14.24.26.png

次にスケールアップとスケールダウンを見てみましょう。
スケールアップは非常に迅速に行われます。現在利用しているACUが大きければ大きいほど、スケーリングパフォーマンスはより迅速になります。
スケールダウンは、負荷に応じて段階的に行われ、需要が下がったからといっていきなり下がるのではなく、徐々にダウンしていくというより安全サイドに倒れたものとなります。
スクリーンショット 2024-08-25 22.49.45.png

我々の事例でも、CPU負荷が高まると迅速にACUが増加し、低いレイテンシのパフォーマンスを維持していることがわかります。
スクリーンショット 2024-08-25 22.51.57.png

選定ロジック

Aurora ServerlessV2に向いている特徴として以下5つが挙げられます。

・高いパフォーマンス要件に対して通常時の低い使用率
・需要予測が難しい
・スケーリングの手動運用が難しい
・スケーリングにおけるダウンタイムが許容できない
・スケーリングによってコスト効率を改善したい

スクリーンショット 2024-08-25 22.52.56.png

上記の特徴を踏まえ、選定ロジックを作成しました。
以下フローに従うと、どのタイプを選定すればよいか検討するうえでの一助になるかと思います。
是非参考にしてみてください。

スクリーンショット 2024-08-25 22.59.03.png

まとめ

Aurora Serverless V2は非常にフレキシブルなスケーリングを実現するサービスで、今回の事例にもありますが、正しい利用をすれば大きなコスト削減につなげることが可能です。
一方で、単純比較した場合コストは高めという特徴があるため、ケースに合わせて、選定することをおすすめします。
また、運用コストを意識すること、クラウド利用料のシミュレーション、パフォーマンスのテストは必須です。必ず実施しましょう。
この事例からわかるように、大抵の選択はトレードオフであり、何かを選択することは何かを捨てることと同義になります。すべてのケースにあった、万能なソリューションはありません。ケースに合わせて、正しい選択を心がけたいものですね。AWSのサービスも料金も変化していきますので、その変化に追従することも重要ですので、継続的に学んでいきましょう。

スクリーンショット 2024-08-25 22.59.40.png

スクリーンショット 2024-08-25 22.59.45.png

最後に

このような機会を設けていただき、運営いただいたメンバの方に感謝申し上げます。
クレイジーなグローバルイベントで楽しかったです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0