はじめに こんにちは、ここ最近AzureからAWSに主戦場を移したalfaです。 AWS なので早速地雷を踏みました。 具体的には、Auroraでフェイルオーバーが発生した際にDBへ書き込みが出来なくなってしまい、アプリが再起動されるまで正しく動かなくなってしまうといった症状です。 何が起こったのか AuroraのフェイルオーバーとActiveRecordのコネクションプールの仕組みは相性が悪かったという事ですが順を追って説明していきます。 クラスターに障害が発生した場合、クラスタエンドポイントのDNS(CNAME)を書き換えることで参照先を切り替える仕組みです。 クラスタエンドポイントをDBの接続先に設定したRubyアプリケーションがあったとき フェイルオーバーしてマスターが切り替わると... アプリケーションは再接続するだけで昇格したマスターを参照できます。 ウルトラハイパーメチャクチ