当ブログサイト(DevelopersIO)のDBを「Aurora Serverless v2」に移行してみた

当ブログサイトのWordPress、バックエンドで利用するデータベースが Aurora Serverless v2 になりました。
2022.04.27

AWSチームのすずきりょうです。

当ブログサイトの「DevelopersIO」2015年より記事のデータベースとして Amazon Aurora を利用しています。

先週一般公開された Aurora Serverless v2 への移行する機会がありましたので、紹介させていただきます。

事前準備

Aurora Serverless v2 をサポートする DBエンジンへのアップグレードを実施しました。

切替作業

Serverless v2 リーダーの追加

DBインスタンスクラス「Serverless v2」のリーダー(リードレプリカインスタンス)を追加しました。

フェイルオーバ優先順位は「tier-1」、ライターインスタンスと同等のDB性能を維持する指定としました。

「db.r6g.large」(vCPU:2、メモリ:16GiB)のライターでは、「tier-1」指定の 「Serverless v2」リーダーインスタンスのACU値は8(メモリ:16GiB)となりました。

Aurora のDBクラスターに、「Aurora Serverless V2」のリーダーインスタンスが追加されました

フェイルオーバ

従来のAuroraのライターインスタンスを指定し、「フェイルオーバ」操作を実施しました。

「Aurora Serverless v2」のインスタンスが、ライターになりました

DBクラスタに記録されたイベントの開始から完了までの時間は32秒でした。

パフォーマンスインサイトの「DBLoad」の値、 Serverless v2 への フェイルオーバ直後の上昇は確認されましたが、その後は同等の稼働状態に収束しました。

経過観察

Aurora Serverless v2 切替の翌日、約1日の稼働状態を確認しました。

ACU推移

ACU数(ServerlessDatabaseCapacity)は、3から5の間で利用できました。

月額コスト試算

Aurora Serverless v2 移行後と、 従来のAurora(Provided)利用のコストを比較しました。

試算前提 - リードレプリカインスタンスをマルチAZ構成で配置、AZ障害に備える。 - Serverless v2、ライターインスタンスのACUは4。リーダーインスタンスはフェイルオーバ時の性能低下リスクを許容し最小ACU(0.5)で維持する - リージョンは東京を利用、オンデマンド費用で比較する

インスタンスタイプ 月額コスト(USD) 1時間単価(USD) 利用数 時間 日数
Serverless v2 $ 648 $0.2 4.5 (4ACU :ライター + 0.5ACU リーダー) 24 30
db.r5.large $ 504 $0.35 2(台) 24 30
db.r5.xlarge $ 1008 $0.7 2(台) 24 30
db.r5.2xlarge $ 2016 $1.4 2(台) 24 30

まとめ

最新のAurora3エンジンでサポートされた、サーバーレスインスタンスとプロビジョニング済みインスタンスを混在構成クラスターを使用することで、 従来のAurora(Provided)、Aurora Serverless v2 双方向に切替が可能となるため、今回の移行も簡単に実施する事ができました。

今回の環境、DBの処理限界を超える負荷が数ヶ月毎に観測されている環境でした。

  • 過負荷発生時のデータベース負荷(パフォーマンスインサイト)

  • 過去半年のDBload値

スパイク的な負荷に対しDB性能の自動追従が期待できる Aurora Serverless v2、 従来のAurora(Provided)をスペックアップした状態で維持するよりも廉価なAWSコストで利用できる事。 また、DB過負荷負荷の監視やスペック調整など、運用面の省力化も期待できるため継続利用していきたいと思います。