はじめに
こんにちは!インフラエンジニアのなみきです。
Webサーバーなどユーザーにサービスを提供するサーバーと、バッチサーバーなど裏方の処理を行うサーバーがある時、バッチ処理によるDB負荷がユーザー側へ影響しないよう、接続するDBインスタンスを分けたいシーンがあると思います。
ここで役立つのがAmazon Auroraのカスタムエンドポイントです。 以下のようにエンドポイントを使い分けるのがよくあるユースケースかと思います。
ここで、フェイルオーバーしたときの挙動はどうなるのだろうと疑問に思いました。
リーダーだけを含むカスタムエンドポイントを作ったつもりでも、フェイルオーバーで昇格してしまったら、リーダーとライターが混ざったカスタムエンドポイントになってしまうのでは? そして、ライターからリーダーになったインスタンスには接続がなくなるのでは?
理想としては、もしフェイルオーバーが起きてライターとリーダーが入れ替わったとしても、「カスタムエンドポイントはリーダーインスタンスに接続する」という点は変わらないようにしたいです。
そこで、理想を満たす方法はないか、RDSのカスタムエンドポイントについて調べて検証してみました。
結論
このように設定すると、理想を満たす挙動にできます。
詳しくは以下より解説します。
続きを読む