[Amazon RDS] スナップショットから復元する時に元のエンドポイント名を設定する方法

記事タイトルとURLをコピーする

こんにちは!イーゴリです。

問題点

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という方法もあるので、 要件を満たせばこの方法(下記の記事)もご検討ください。 ※色々な制約がありますので、ご注意ください。

aws.amazon.com

以上

イーゴリ (記事一覧)

クラウドインテグレーション部・エンジニア

特にTerraform(自動化)、ネットワーク系、DNS、VDI、Windows Serverに興味があります

日本国内旅行・ドライブが好きです