【AWS】Auroraのバックアップからの復元について
バックアップ
Auroraのバックアップには、自動バックアップと手動バックアップがある。
また、Auroraではバックアップファイルのことをスナップショットと呼ぶ。
・自動バックアップ
自動で定期的に取得されるバックアップ。
Auroraインスタンスごとに自動バックアップの設定をしないと取得されない。
クラスター、インスタンスどちらからも選択できる。
・手動バックアップ
コンソールなどから手動で実施するバックアップ。
インスタンスからのみ選択可能。
※インスタンスとクラスター
Auroraは、複数のインスタンスで冗長化することが可能。
冗長化したインスタンスのぐーぷをクラスターと呼ぶ。
復元方法
復元は次の2パターンある。
・スナップショットから復元する。(手動バックアップ、自動バックアップどちらからでもOK)
・特定時点への復元。(自動バックアップがないとできない)
スナップショットから復元する
スナップショットを選択し、「スナップショットの復元」を選択すればよい。
手動バックアップからも復元可能なため、誤ってクラスターごと削除した時なども復元が可能。
(手動バックアップはクラスターを削除しても残るため。)
特定時点への復元
インスタンスから「インスタンスの操作 > 特定時点への復元」を選択
自動スナップショットがある場合のみ利用可能なため、クラスターを削除した時などは使用できない。
(自動スナップショットはインスタンスが削除されると一緒になくなってしまうため。)
復元手順
スナップショットからの復元、特定時点への復元のいずれも、実施すると新しいクラスターが生成される。
既存のクラスターに上書きされるわけではない。
したがって、復元を行っても入力したデータが消えてしまうといった、アプリへの影響は出ない。
また、復元されるのはプライマリ(書き込み)のみである。
レプリカは復元されないので、クラスター構成を取っている場合などは、別途作成する必要がある。
復元したインスタンスをもとにレプリカの作成を行えばよい。
復元したDBに向き先を変えるためには、エンドポイントを変更しないといけない。
エンドポイントは識別子(インスタンス名やクラスター名)を変更すると自動的に変更される。
なので、エンドポイントを変更する=識別子を変えるということになる。
手順としては
①既存のクラスター、インスタンスのエンドポイントの識別子を変更
②復元したクラスター、インスタンスの識別子を既存のものに変更
という手順になる。
DBが切り替わり、接続が安定するまでには15分程度かかる。
切り替え中は当然アプリの動作が不安定になるので、ユーザーには使用しないように調整する必要がある。
※ただし、エンドポイントをDNS等で設定している場合は、この限りではない。システムの柔軟性を考えてもアプリの設定ファイル等に直接エンドポイントを記述するのは望ましくないので、DNSでの管理が望ましい。
復元手順まとめ
①DBを復元する。
自動スナップショットがあれば特定時点への復元、なければ手動スナップショットからの復元
②既存クラスター、インスタンスの識別子を変更
③新規クラスター、インスタンスの識別子を変更
④接続の挙動が安定するまで待つ(15分程度)