Project

General

Profile

RDSのリストア

RDSのスナップショットからのリストア方法。

ただしvmdkなどのスナップショットと異なり、「元のボリュームを変更しない」ため、
スナップショットの復元は別のデータベースとして新規作成される。

インスタンスからの参照はRDSのエンドポイント名で行うが、RDSのエンドポイント名は
一意に設定しなければならない為、以下いずれかの対策を行う必要がある。

  1. 既存DBのエンドポイント名リネームしたのち、スナップショットから元のエンドポイント名でDBを作成する
  2. 新規エンドポイント名でスナップショットから復元し、インスタンス側で参照しているDBホスト名を変更する

今回の手順では、インスタンス側を極力変更しない観点から1の手法を行う

またRDSはセキュリティグループの影響を受けるが、復元当時は設定されていないので
復元後に再設定する必要がある。

復元手順

利用しているEC2インスタンスをシャットダウン(またはDB未接続)した状態で行う。
データベースは起動しておくこと。

既存データベースのエンドポイント名のリネーム

  • AWSのRDS画面からデータベースを開く
  • 次の設定値を記録しておく
    • DBインスタンス識別子
    • DBインスタンスのクラス
    • サブネット
    • セキュリティグループ
  • 対象データベースを選択して「変更」を実行
  • DBインスタンス氏識別子を「既存の名称-old」などに変更
  • 次へ進み、変更のスケジュールを「すぐに適用」に変更する
  • DBインスタンスの変更を実行する
  • DB一覧に戻り、エンドポイント名称が変更されていることを確認する

スナップショットからのリストア

  • AWSのRDS画面からスナップショットを開く
  • 復元に使用するスナップショットを選択する
  • スナップショットのアクションからスナップショットの復元を実行する
    • DBインスタンス識別子を「変更前の名称(前項の-oldを付加する前)」に設定する
    • DBインスタンスのクラスを記録しておいたクラスまたは必要なクラスに変更する
  • DBインスタンスの復元を実行する
  • DB一覧で該当DBを選択し、ステータスが「利用可能」になるまで待つ
  • DBが利用可能になったら、DB名を選択して「変更」を実行する
    • サブネットを移行前に記録しておいた値に変更する
    • セキュリティグループを移行前に記録しておいた値に変更する
  • 次へ進み、変更のスケジュールを「すぐに適用」に変更する
  • DBインスタンスの変更を実行する
  • DB一覧に戻り、設定値が変更されていることを確認する
  • 以上で復元が完了したため、EC2インスタンスを起動しDBに接続できることを確認する
    • 古いデータベースは復元後の動作確認が取れ問題ないと判断したら停止削除する