メモメモメモ

ほんとうにめも

【AWS RDS】本番環境でやらかしたのでRDSを復元してデータを戻した

何が起きたか?

3日前くらいに実行したmigrationをrollbackしてしまいました。 追加されたいくつかのカラムが消えたので、そこに入ってたレコードも全部消えました。ぴえん😂

復元したときの自分の行動をざっくり

  1. 死ぬほど焦る
  2. 影響範囲の確認(どんなデータが消えてたかチェック)
  3. AWS Consoleに入る
  4. RDS > データベース > 該当DBクラスタ > 「メンテナンスとバックアップ」 > (下部)スナップショット > 一番新しいスナップショットを選択
  5. とりあえず「スナップショットを復元」を押す
  6. ・・・スナップショット復元が遅すぎる!!※1
  7. (復元完了した)DBにsshアクセスできない!!※2
  8. sshアクセスできた。中身見れた。ふむふむこれが消えてたのかー。
  9. 消えてたデータを復元(テーブル構造とレコードどっちも)
  10. 終わったハッピー

6. スナップショット復元が遅すぎる!!※1

なんとなくサクッと復元できるイメージを持ってたけど、RDSが速いのは「スナップショットの取得」までで、データを復元するにはデータ量に応じて相応の時間がかかるっぽい。(そりゃそうだ。)

この事実に気付いてからスナップショットをS3にエキスポートしてから必要なデータだけローカルで復元しようとしたが、それより先に復元が完了したのでやらずに済んだ。

7. DBにsshアクセスできない!!※2

  • パブリックアクセスの設定か? => 違かった
  • セキュリティグループのインバウンド 設定か? => 違かった

結論: 元のDBとVPCが同じになってなくてアクセスできなかった。(ここもデフォルトでコピーしてくれよ!😭)

まとめ

本番環境に眠い状態でアクセスするのはやめようね!