18
18

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でMongoDBのアドオンのmLabが終了するので、別のMongoBD無料サービスにマイグレーションした時のメモ

Last updated at Posted at 2020-07-20

概要

Herokuで無料で利用可能なMongoDBのアドオンであるmLabのサービス終了に伴い、後継の無料利用可能なMongoDBサービス(MongoDB Atlas)に移行した際の方法のメモです。

画面操作手順が多く、一部の手順等を省略しておりますが、移行時の参考になればと思います。

背景

Heroku上で無料プランのみで、Railsで作成した趣味のWebサイト(※)を構築しており、
その中でMongoDBが無料利用可能なmLabアドオンを使用していました。
無料プランですと容量等、色々と制限がありますが、小規模で使用する分には問題ない形で使用できていました。

※作成したWEBサイト:駿河部

ですが、7/11頃に下記のようなメールが届いていました。

mail

要約すると、2020年の11月10日にmLabのMongoDBのアドオンは削除されて使用できなくなるという事となります。

詳細は下記に記載されていますが、mLab自体がMongoDB本体の会社(MongoDB Inc)に買収されたことに伴い、そちらのクラウドサービス(MongoDB Atlas)に統合されるためのようです。
参考

幸いにもサービス停止に伴い、MongoDB Atlas側へ無料利用可能なプラン(512MBまで利用可能)へのマイグレーション方法が案内されており、今回はそちらのプランへのマイグレーションを実施した際の記録になります。

手順

MongoDBの対応バージョンの確認

mLabで動いていたMongoDBのバージョンは3.6ですが、MongoDB Atlasは4.2となるため、使用しているmongoidやrubyのバージョンに注意が必要です。
今回私の場合には4.2に対応しているバージョンを使用しており、幸いにも対応は不要でした。
バージョン等の対応に関しては下記が参考になります。
参考

アカウント作成

https://www.mongodb.com/cloud/atlas
にアクセスして、Atlasアカウントを作成します。
(詳細は割愛しますが、メールアドレスやパスワードを入力し、メールのアクティベーションを実施してください。)
スクリーンショット 2020-07-20 21.21.18.png

Clusterを作成

ログイン後、クラスターを作成します。
Clusters → Build a Clusterを選択します。

create.png

Freeプランを選択します。

Free.png

AWS, GCP, Azureやリージョン等の選択ができますのでお好みで選択してください。
reagion.png

Clusterが作成できれば完了です。

clu2.png

mLabアカウントとの接続

画面左上の歯車アイコンを選択します。

setting.png

Connect to mLabといった項目があるので右側のボタンを選択します。

mLab

mLabのログイン画面に移動するのでログインします。
mlab.png

なお、mLabのアカウントが不明な場合には一度Herokuにログインして、mLabを使用しているアプリ内のAddonsのmLabを選択するとログインできるのでその後、上記のログイン画面でリロードするとログインできます。

heroku.png

ログイン完了後に、ダイアログが表示されるのでAutorizeで連携を許可します。
auth.png

Atrasの画面に戻って、mLab Accountの画面が表示されれば連携が完了です。

mLabCon.png

マイグレーション設定

mLab Accountの画面でActions → ... → Configure Migrationを選択します。

mlabcon1.png

Create or Select a projectを選択します。
cop.png

プロジェクトを選択して Confirm ~ を選択します。
(デフォルトであればProject 0)
t1.png

mLabから引き継いだアカウント情報などが表示されるので確認及び、importにチェックがついていることを確認して、 Import ~ を選択します。
import.png

Allow ~ のチェックボックスにチェックを入れて、右下のボタンを選択します。

Allow.png

作成したClusterを選択して、右下のボタンを選択します。

clus.png

マイグレーションの設定が完了しました。
fin1.png

マイグレーション実行

Migrate DeploymentのConfirmを選択します。

mig1.png

Confirm And Continueを選択します。

mig2.png

チェックボックスにチェックを入れずに、Begin Test Runを選択します。
mig3.png

マイグレーションが始まるので、完了するまで待ちます。
mig4.png

マイグレーションが無事に成功したら、Confirm Connectivityを選択します。
mig5.png

Confirm ~ を選択します。
mig55.png

チェックボックスにチェックを入れて、Begin Migrationを選択します。
(下記では、アプリケーションを事前に止めるように注意しているのでheroku ps:scale web=0等のコマンドで予めアプリを止めた方が無難です。)
mig6.png

マイグレーションが始まるので待ちます。
しばらくすると完了するので、Start Using Atlasを選択します。

migfin.png

MongoDBの接続URLの情報の雛形が表示されるので、コピーした上で
username及びpasswordに関してはherokuで使用していた値に置き換えて使用します。
con.png

herokuの環境変数を使用している場合には、下記のように環境変数を新しい値に書き換えます。
heroku config:set 環境変数名="上記の接続URL"

アプリの起動

Herokuのアプリを止めている場合には、再立ち上げを行います。
MongoDBを使用している機能が動くこと確認してください。

後始末

HerokuのmLabのアドオンを消します。
下記等を参考に予めバックアップを取ることが推奨されているので任意で実施してください。
https://docs.mlab.com/backups/#retention-policies

また、mLabを削除すると自動で追加されたMONGODB_URI"や"MONGOLAB_URI等の環境変が削除されるとの事ですので、
heroku config等で環境変数の値を出力してバックアップしておく事が推奨されています。

Herokuにログインを行い、Configure Add-onsを選択します。
herokuaddons.png

mLabのDelete Add onを選択します。
確認ダイアログが表示されるのでアプリ名を入力して削除します。
delmongo.png

以上でHeroku側のmLabの削除が完了しました。
念のためMongoDBを使用した機能が動くか確認してみましょう。

まとめ

Heroku上で動くMongoDBのアドオンのmLabの終了に伴い、代替サービスとなるMongoDB Atlasへ移行時の方法のメモを紹介しました。

手順が多く大変でしたが、無事マイグレーションできたので一安心しました。

18
18
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
18
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?