Aurora MySQL のフェイルオーバー発生時に読み取り処理を継続する方法があるのか教えてください
この記事は アノテーション株式会社 AWS Technical Support Advent Calendar 2024 | Advent Calendar 2024 - Qiita 17 日目の記事です。
困っていた内容
Aurora MySQL でフェイルオーバーが発生した際の可用性について確認がしたいです。
現在、ライターインスタンス 1 台とリードレプリカ 1 台の構成で Aurora MySQL を利用していますが、リードレプリカをもう一台追加することでフェイルオーバー中も読み込み処理を継続できるのでしょうか? フェイルオーバーの対象とならないリードレプリカが Aurora クラスタにあっても、Aurora クラスタ単位で読み込み書き込みともにダウンタイムは発生してしまうのでしょうか?
結論
Aurora MySQL クラスターが以下の 3 つの条件を満たす場合、フェイルオーバー中も読み取り処理のみ継続可能です。書き込み処理についてはダウンタイムが発生します。
- リードレプリカが 2 台以上のクラスター構成であること
- リードレプリカへの接続がリーダーエンドポイントを経由していること
- エンジンバージョンが Aurora MySQL 2.10 以降であること
Aurora MySQL 2.10 以降では、クラスター内に複数のリーダー DB インスタンスを持つことで、フェイルオーバー中の可用性を向上させることができます。Aurora MySQL 2.10 以降では、Aurora は、ライター DB インスタンスとフェイルオーバー先のリーダーインスタンスのみを再起動します。クラスター内の他のリーダー DB インスタンスは、フェイルオーバー中も使用可能であり、リーダーエンドポイントへの接続を通じてクエリの処理を続行します。
まとめ
この記事がどなたかのお役に立てば幸いです。