はじめに
AWSのRDSを使っている方は、RDSの機能でバックアップを取っている方も多いでしょう。
とても簡単にバックアップが取れて便利ですよね!
今回はそのバックアップからデータが必要になった場合にサルベージする方法を書いていきます!
最新で正確な情報は下記に記載されており、今回はそれを元に作業をした為そちらもご確認ください。
AWS 公式ドキュメント
検証環境
RDS Mysql: 5.7.22
サルベージ方法
データをサルベージする方法としては現状2つ方法が存在します。
-
バックアップからDBスナップショットを復元する
- DBインスタンス自体が新規作成され、そこにDBが複製されます
-
バックアップデータをS3にエクスポートする
- S3へエクスポート後,Glue, Athenaを使用すればデータの解析ができるはずです
- 対象なるDBエンジンのバージョンがある為注意
Mysql 5.7.22はバージョン対象外なので、バックアップデータをS3にエクスポートする方法は今回使用できませんでした。
恐らく後者の方法の方が楽な気はします。
(5.7.24からは対応していた為、よく見ずに試してエラーが出て対象外な事に気付きました)
バックアップからDBスナップショットを復元する
基本的にはAWS コンソール RDSメニュー内からスナップショットの復元を行い、DBへアクセスすればデータをサルベージできると思います!
やってみた上での注意点としては下記かなと感じました
- スナップショットの復元はRDSのインスタンス自体が新規作成される為、インスタンスサイズ等に注意
- 復元する際のデフォルトの設定が、元のインスタンスと同じ設定だったので不要に大きなインスタンスで立てそうになりました、、、
- 意外と時間がかかる。今回20GiBのインスタンスの復元をして数十分かかりました、、、
- Sequel Pro等のMysqlクライアントからDBのデータを確認するためには、踏み台サーバーを用意してあげる必要がある
今回はSequel Proからデータを確認したかった為踏み台サーバーを用意してあげて接続しました。
公式でもしっかりドキュメント用意してくれている為、特に困らず接続できました!
(踏み台ってスラング的な言葉だと思っていたのですが、公式でも言うんですね、、、)
踏み台サーバーを経由してあげれば、問題なくSequel Pro等のクライアントからアクセスできると思います!
まとめ
AWS RDSはバックアップするのも簡単であれば、復元、データのサルベージも簡単で嬉しい!