koudenpaのブログ

趣味のブログです。株式会社はてなでWebアプリケーションエンジニアをやっています。職業柄IT関連の記事が多いと思います。

実録Aurora Serverless v2はコスト最適化の夢を見るか?

ある日のAuroraのCPU使用率

あるAurora for MySQLのオンデマンドインスタンス(r6g.large)の1日のCPUUtilizationがこんな感じだったとする。

ピークタイムの負荷がちょっと厳しい。負荷由来でクエリ遅延が発生していてUXが損なわれていた。

これを無造作にAurora Serverless v2にしてオートスケールしてもらうとどうなるか?

Serverless v2にした後のCPU使用率とACU

CPU使用率は一定水準で推移して、ピークタイムのクエリ遅延は解消した。オートスケールのメリットは受けられているということになる。

一方で単純なインフラコストが最適化されるかというとどうかだろうか?

コストエクスプローラでRDSの日別コストを見てみると $7.5~8 から $20~25 程度となっていた。

3倍程度の開きがある*1ため、インスタンスサイズを倍にしてパフォーマンス面の課題が解決するようなら、オンデマンドインスタンスでスケールを上げた方がインフラコストは安くなる。

長期間の負荷傾向が読めているなら、4倍のインスタンスサイズでもリザーブインスタンスを購入(4*0.6=2.4倍程度)すればインフラコスト面ではオンデマンドインスタンスの方が有利だろう。

CPU使用率のグラフの形はピークタイムと他でそこそこ差があるように見えるが、この程度の負荷傾向の差ならAurora Serverless v2にオンデマンドと比べてAWSに払うコスト面のメリットは無いと言えるかと思う。

じゃぁどういうユースケースがあるのかというと、マイクロサービスで何十もAuroraクラスタを抱えていて個別のインスタンスのサイズを管理するコストが高いような場合に、その管理コスト最適化の夢は見られるのではないだろうか。

そんな感じ。

記事名にもある通り、実録なので机上のコスト計算より実感のある情報ではあるかと思う。

*1:$1~2程度コンピューティング以外のコストも含められているため、インスタンスクラス由来の差はもうちょい大きい