【アップデート】Amazon Aurora MySQL 2.10以降でリードレプリカの可用性が改善されていました

Amazon Aurora MySQLのリードレプリカに関するエモいアップデートが来てたよ!
2021.07.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは!コンサル部のinomaso(@inomasosan)です。

7/7の七夕はクラスメソッド創立記念日となります。
本日は大量のブログが投稿され一種の祭り状態になっているので、私も1本書くことにしました。

さて本題ですが、2021/5/26にAmazon Aurora MySQLのリードレプリカについてエモいアップデートがあったので、内容のご紹介とちょっとやってみたをまとめてみました。

アップデート内容は?

Aurora MySQL 2.10以降で、ライターノードを再起動しても、リーダーノードは再起動されなくなりました。 これにより、リーダーノードはライターノードの再起動中に読み取りリクエストを処理し続けることが可能となります。

従来はライターノード再起動に伴い、クラスター内の全てのノードの再起動が必要でした。

本アップデートの詳細はAWS公式記事をご参照願います。

やってみた

Aurora MySQLのライターノードを再起動した際に、ログとイベント最近のイベントにどのような差が出るのかを試してみました。

1. 異なるバージョンのAurora MySQLを構築

今回は以下バージョンのAurora MySQLを、マルチAZ配置によるライターノード、リーダーノードを作成しました。

  • Aurora (MySQL 5.7) 2.07.2
  • Aurora (MySQL 5.7) 2.10.0

2. Aurora (MySQL 5.7) 2.07.2のライターノード再起動

以下の赤枠部分が、ライターノードを再起動した際の、ライターノードの最近のイベントとなります。
該当のDBインスタンスを停止し、再起動していることが分かります。

次にリーダーノードの最近のイベントを見ていきます。
ライトノードの再起動に伴い、リーダーノードも再起動しています。

2. Aurora (MySQL 5.7) 2.10.0のライターノード再起動

以下の赤枠部分が、ライターノードを再起動した際の、ライターノードの最近のイベントとなります。
ライターノードは2.07.2と同様に該当のDBインスタンスを停止し、再起動していることが分かります。

次にリーダーノードの最近のイベントを見ていきます。
ライターノード再起動の時間帯にイベントが存在しないので、リーダーノードは特に影響を受けず起動し続けていたようです。

番外編

Amazon Aurora PostgreSQLは、このブログを書いている2021/7/7時点で、リードレプリカの可用性がどうなっているのか気になりました。
論より証拠、現時点で選択可能な最新バージョンである12.6で試してみることにしました。

以下の赤枠部分が、ライターノードを再起動した際の、ライターノードの最近のイベントとなります。
該当のDBインスタンスを停止し、再起動していることが分かります。

次にリーダーノードの最近のイベントを見ていきます。
Aurora (MySQL 5.7) 2.07.2のイベントと比較するとメッセージは少し異なるものの、リーダーノードも再起動しているようです。

まとめ

Amazon Aurora MySQL 2.10以降だとリードレプリカの可用性が高くなったことが分かりました。 新規構築の場合はバージョン要件等が特になければ、2.10以降を選択するのが良いかと思います。

こうなってくると、Amazon Aurora PostgreSQLもリードレプリカの改善が待ち遠しいですね!

この記事が、どなたかのお役に立てば幸いです。それでは!