RDSのスナップショットから復元したときのLaravel対応

  • URLをコピーしました!

データの削除失敗等、トラブルが発生してしまって、RDSのスナップショットから復元しないといけなくなった!時のLaravelの動きについて記載します。

結論から言うと、RDSのエンドポイントが変わってしまったなら、 .env のデータベースホストを変更するだけです

  1. .envDB_HOST を新しいRDSのエンドポイントに変更する。
  2. php artisan cache:clearphp artisan config:cache を実行する。

Laravelが動いているWebサーバーの再起動は不要です。

RDSのエンドポイントを変えたくないなー!と思った場合は、スナップショットから復元するときに一工夫します
エンドポイントはDB識別子が同じなら、次のエンドポイントも同じになります
その特性を利用します

  1. 既存のRDSの「DB識別子」を変える
  2. スナップショットを復元する設定のときのDB識別子を、もともとのDB識別子を登録する

これで、 .env を変更する必要がなくなります。

ただ、本当に接続先が切り替わってるの?ってなって、確認しずらいときもあると思いますので、チームと相談してどちらの方法で対応するのがいいか決めてから、作業するのがいいかなと思いました。私の個人的な意見としましては、 .env ファイルの書き換え対象になるWebサーバーの数が少ないようでしたら、エンドポイントが変わったほうが切り替えがしっかり確認できて、再稼働が安全かなと思います。

スナップショットから復元したときはRDSは新しいインスタンスができますので、 .env を切り替えてデータベースの向き先を切り替えるだけで済むので、リストア作業が非常に安全で安心感がありますね(^^)/
万が一リストアに失敗しても、もとのインスタンスに戻せるのも素晴らしいです!

AWSロゴ アイコン by Icons8

ツチノコテクノロジーに開発・保守を発注しませんか?

Laravel・Flutterの開発・保守をツチノコテクノロジーに発注しませんか?

まずはZOOMで打ち合わせ

お申し込みはこちら

ツチノコテクノロジーでは一緒に働く仲間を募集しています!

完全リモートで働きたい方へ!

詳しくは以下をご覧ください。

ツチノコテクノロジー採用サイト

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

yfukudaのアバター yfukuda 取締役・システムエンジニア

ツチノコテックアカデミアの記事は、社内で誰かが質問してくれたことに回答したときに、ついでに記載しています!(^^)/
みんなの悩みを共有すれば、きっと誰かの役に立つと信じて更新しています!

目次