AWS RDS Aurora Mysql フェイルオーバーで CNAME をスワップする

AWS RDS Aurora Mysql フェイルオーバーで CNAME をスワップする

数日前から、RDS Aurora ライター/リーダー (従来の MySQL マスター/スレーブのような) をテストしています。具体的には、ライターのフェイルオーバーに対するリカバリ能力において、他のタスクの中でも、RDS はライター ロールとリーダー ロールを交換し (このステップではすべて正常)、エンドポイント CNAME を交換して、アプリケーションが正常に続行できるようにする必要があります。

私の場合、この最終ステップは実行されず、アプリケーションは引き続き同じマシンを指しています (このマシンはフェイルオーバー状態にあり、その後リーダーに格下げされます)。

これをテストするには、RDS パネルの「フェイルオーバーのテスト」ボタンを使用します。

CNAME エンドポイントを変更する機能については、公式ドキュメントに記載されています。 詳しくはこちら

次の段落では:

フェイルオーバーは Amazon RDS によって自動的に処理されるため、管理者の介入なしにデータベース操作をできるだけ早く再開できます。フェイルオーバー時に、Amazon RDS は DB インスタンスの正規名レコード (CNAME) をスタンバイを指すように反転するだけで、スタンバイが新しいプライマリに昇格されます。ベストプラクティスに従い、アプリケーション層でデータベース接続の再試行を実装することをお勧めします。

答え1

@Michael - sqlbot に基づいて、問題を修正しました。HA 構成で Aurora を使用する場合、クラスター内で名前が変更されるため、アプリケーション構成でインスタンス エンドポイントではなくクラスター エンドポイントを使用する必要があります。

答え2

これについて他に質問があります。route53 ではどのようなタイプのレコードを作成する必要がありますか? CNAME は問題ありませんか? また、クラスター エンドポイントが 2 つある場合は、クラスターごとに 1 つの CNAME を作成する必要がありますか? それとも、1 つの CNAME だけですか? 試してみたところ、2 つのクラスター エンドポイントで 1 つの CNAME を作成することはできないことがわかりました。ありがとうございます!

関連情報