7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Heroku で mLab add-on終了による Mongo DB atlas への移行

Last updated at Posted at 2020-07-11

背景

Heroku の Add-on として提供されていた mLab MongoDB が 2020/11/10 終了する事になりました。先日、 mLab がMongoDB, Inc. に買収されたのでそれに伴う動きなります。errbitなどを Heroku でホストしている場合、対応が必要になります。今回の移行プロセスは既存のデータも移行できるプロセスになっています。

ObjectRocket for MongoDB

Heroku からのメールで移行先としておすすめされているのが ObjectRocket ですが、月額46ドル〜となっています。errbit を使っているのはコスト抑えたいからというのが多いと思うので、これは少し厳しい。
https://elements.heroku.com/addons/ormongo

移行先としての MongoDB Atlas

こちらの PR でまとめられたドキュメントがあります。ただし、新規に Heroku ホストすることを前提としていますので、この部分は別の対応が必要です。
https://github.com/errbit/errbit/blob/master/docs/deployment/heroku.md

そこで、データの移行については下記のドキュメントにまとめられています。
https://docs.mlab.com/shutdown-of-heroku-add-on/

MongoDB Atlas であれば無料の範囲で運用できそうです。

移行方法

基本はドキュメントのとおりです。

アプリケーションを最新バージョンにする

mongodb 4.2系のサポートが必要になるので最新版にしておいてください。

MongoDB Atlasのクラスターを作成する

  • アカウントを作成しShared Clusterを選択する
スクリーンショット 2020-07-11 15.34.08.png
  • M0を選び無料枠でのクラスターを作成する
スクリーンショット 2020-07-11 15.48.58.png
  • Database Accessからユーザーを作成する。
    パスワード認証で、Read and write to any databaseの権限を付与する。
スクリーンショット 2020-07-11 15.50.04.png
  • IPアドレスのフィルターを解除する。
    Networwk AccessからAllow Access From Everywhereを選択する。
スクリーンショット 2020-07-11 15.53.35.png
  • Connectから接続情報を取得する。
    Rubyの2.5以降を選択する。
スクリーンショット 2020-07-11 15.55.46.png スクリーンショット 2020-07-11 15.57.12.png

Heroku側で接続情報を更新する

  • 環境変数 MONGODB_URI に上記でコピペした接続情報をコピペする。
    とのところは適宜書き換える。注意:環境変数を追加するとダウンタイムが発生します
mongodb+srv://xxx:<password>@xxx.xxx.mongodb.net/<dbname>?retryWrites=true&w=majority

mLabからMongoDB Atlasにデータ移行

下記のところからmLabにアカウント接続します。
screenshot-atlas-organization-settings.png

完了すると MongoDB Atlas のメニューバーに mLab の項目が出るのでそこから migration を実行できます。

Heroku側での残り作業

Heroku にログインして mLab のアドオンや環境変数を削除してください。これで移行完了です。移行しない場合は、 heroku run rake errbit:bootstrap を実行すれば DB の初期設定ができるかと思います。

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?