困ったこと
ある日フェイルオーバーが発生してレプリカインスタンスが昇格した。
これまでプライマリインスタンスだったものは降格した。
そのタイミングからアプリケーションからの書き込みができなくなってしまった。。。
原因
Amazon Auroraにはクラスターエンドポイントとインスタンスエンドポイントがあって
インスタンスエンドポイントを参照していたので、フェイルオーバーが起きたあとも
レプリカに降格したインスタンスに向けて書き込みを行おうとして失敗していた。
AWSコンソールでエンドポイントを確認するとき、こっちに表示されるのはインスタンスエンドポイントなので注意されたし!!
こっちがクラスターエンドポイントで「書き込み用」と「読み込み用」の2種が表示される。
まとめ
AWSコンソール上で見るべきエンドポイント情報を間違えないように気をつけよう!
クラスターエンドポイントを参照することで、たとえフェイルオーバーが起きても何も対応しなくてよくなった。(でも一応CloudWatchでフェイルオーバーイベントを検知するようにしておいた!)