【AWS RDS】本番環境でやらかしたのでRDSを復元してデータを戻した
何が起きたか?
3日前くらいに実行したmigrationをrollbackしてしまいました。 追加されたいくつかのカラムが消えたので、そこに入ってたレコードも全部消えました。ぴえん😂
復元したときの自分の行動をざっくり
- 死ぬほど焦る
- 影響範囲の確認(どんなデータが消えてたかチェック)
- AWS Consoleに入る
- RDS > データベース > 該当DBクラスタ > 「メンテナンスとバックアップ」 > (下部)スナップショット > 一番新しいスナップショットを選択
- とりあえず「スナップショットを復元」を押す
- ・・・スナップショット復元が遅すぎる!!※1
- (復元完了した)DBにsshアクセスできない!!※2
- sshアクセスできた。中身見れた。ふむふむこれが消えてたのかー。
- 消えてたデータを復元(テーブル構造とレコードどっちも)
- 終わったハッピー
6. スナップショット復元が遅すぎる!!※1
なんとなくサクッと復元できるイメージを持ってたけど、RDSが速いのは「スナップショットの取得」までで、データを復元するにはデータ量に応じて相応の時間がかかるっぽい。(そりゃそうだ。)
この事実に気付いてからスナップショットをS3にエキスポートしてから必要なデータだけローカルで復元しようとしたが、それより先に復元が完了したのでやらずに済んだ。
7. DBにsshアクセスできない!!※2
- パブリックアクセスの設定か? => 違かった
- セキュリティグループのインバウンド 設定か? => 違かった
結論: 元のDBとVPCが同じになってなくてアクセスできなかった。(ここもデフォルトでコピーしてくれよ!😭)
まとめ
本番環境に眠い状態でアクセスするのはやめようね!