あるAurora for MySQLのオンデマンドインスタンス(r6g.large)の1日のCPUUtilizationがこんな感じだったとする。
ピークタイムの負荷がちょっと厳しい。負荷由来でクエリ遅延が発生していてUXが損なわれていた。
これを無造作にAurora Serverless v2にしてオートスケールしてもらうとどうなるか?
CPU使用率は一定水準で推移して、ピークタイムのクエリ遅延は解消した。オートスケールのメリットは受けられているということになる。
一方で単純なインフラコストが最適化されるかというとどうかだろうか?
コストエクスプローラでRDSの日別コストを見てみると $7.5~8 から $20~25 程度となっていた。
3倍程度の開きがある*1ため、インスタンスサイズを倍にしてパフォーマンス面の課題が解決するようなら、オンデマンドインスタンスでスケールを上げた方がインフラコストは安くなる。
長期間の負荷傾向が読めているなら、4倍のインスタンスサイズでもリザーブドインスタンスを購入(4*0.6=2.4倍程度)すればインフラコスト面ではオンデマンドインスタンスの方が有利だろう。
CPU使用率のグラフの形はピークタイムと他でそこそこ差があるように見えるが、この程度の負荷傾向の差ならAurora Serverless v2にオンデマンドと比べてAWSに払うコスト面のメリットは無いと言えるかと思う。
じゃぁどういうユースケースがあるのかというと、マイクロサービスで何十もAuroraクラスタを抱えていて個別のインスタンスのサイズを管理するコストが高いような場合に、その管理コスト最適化の夢は見られるのではないだろうか。
そんな感じ。
記事名にもある通り、実録なので机上のコスト計算より実感のある情報ではあるかと思う。