hero_picture
Cover Image for RDS Aurora Serverless v2 にてReaderインスタンスのACUが想定より高くなる謎を調査した

RDS Aurora Serverless v2 にてReaderインスタンスのACUが想定より高くなる謎を調査した

こんにちは。クラウドソリューション事業部の石垣です。

先日、Auroraクラスターに追加のReaderインスタンスとしてAurora Serverless v2を導入しようとした際に、ACUが想定より高くなる事象があって原因を調査しました。

経緯

以下のような元々Provisioned Instanceで構成されていたAuroraクラスターに負荷対策としてServerless v2のインスタンスの追加を検討していました。

起こったこと

追加したServerless v2のインスタンスでACUが4より低くなりません。

原因

デフォルトのAuroraクラスターで、デフォルト設定でReadレプリカを追加すると、フェイルオーバー優先順位が「tier-1」で作成されます。

今回の原因はこれです。

以下の弊社の別のブログにもありますが、tier-1はWriterインスタンスのスペックに追従します。

WriterインスタンスがProvisioned Instanceであってもその挙動は変わらずなので、Writerインスタンスのスペック相当のACUが追加したServerless v2インスタンスに割り当てられます。

参考:https://www.seeds-std.co.jp/blog/creators/2024-03-25-a5476ad1-3aa5-46ff-8ae6-55623defaf3c/

対応

フェールオーバー戦略として今回の場合は以下を想定していて、Serverless v2インスタンスはフェールオーバー先としては想定していませんでした。

  • 既存のProvisioned Instanceがフェールオーバー先とする。
  • 追加のServerless v2インスタンスはあくまでアクセス増対応のためのReaderスケーリング用途。

上記の場合、Serverless v2インスタンスはWriterインスタンスのスペックに追従する必要がないので、フェールオーバ優先順位をtier-2にします(tier-1より下であればOK)。

無事下がりました。

終わりに

Aurora Serverless v2の導入を検討するケースも増えてきましたが、フェールオーバー戦略の検討とそれにあわせたフェールオーバー優先順位の設定も大切ですね。