こんにちは!イーゴリです。
問題点
RDSを復元したい時に同じエンドポイント名に設定したい場合、スナップショットから復元し、[DB 識別子]を既存RDSと同じ名前で設定しようとすると[DB instance already exists]というエラーが発生しています。
理由
DB 識別子名がエンドポイント名に反映され、<インスタンス識別子>.<アカウントの特定の地域の固定識別子>.<リージョン名>.rds.amazonaws.comの形式で生成されます。
例)testa.cxXXX.ap-northeast-1.rds.amazonaws.com
上記のため、同じDB 識別子及びエンドポイント名を指定することができません。
対策方法
作業流れ
対象DB 識別子(例:testa)を他のDB 識別子(例:testb)に変更します。 上記の設定と共にエンドポイント名も変わるため、上記の変更時点からタイムアウトが発生します。 スナップショットからRDSを復元する時に元のインスタンスの識別子を指定します。
手順
対象DBインスタンス(例:testa)を選択し、 [変更]をクリックします。
DBインスタンス識別子を別のインスタンス識別子に変更します(例:testaからtestbに変更する)。
[続行] をクリックします。
[すぐに適用] を選択し、「DBインスタンスを変更」 をクリックします。
エンドポイント名がtestaからtestbに変わったことを確認します。 ここでエンドポイント名が変わるので、アプリ側でエンドポイント名を変更しない限り、接続が切れますので、ご注意ください。
詳細情報を見ますと、DBインスタンス識別子及びエンドポイント名がtestaからtestbに変わりました。
今回はRDSのスナップショットから復元する時に「testa」というエンドポイントとして設定できるようにしました。
RDSをアップグレードする場合、この方法もご検討ください!
他にも、RDSをアップグレードする時にBlue/Green Deploymentsという方法もあるので、 要件を満たせばこの方法(下記の記事)もご検討ください。 ※色々な制約がありますので、ご注意ください。
以上
本田 イーゴリ (記事一覧)
カスタマーサクセス部
・2024 Japan AWS Top Engineers (Security)
・AWS SAP, DOP, SCS, DBS, SAA, DVA, CLF
・Azure AZ-900
・EC-Council CCSE
趣味:日本国内旅行(47都道府県制覇)・ドライブ・音楽