MongoDB Atlasで3.4アップグレードを試したら一瞬で完了した

2016.12.11

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、菊池です。

11/29にMongoDBの最新メジャーバージョンであるVer.3.4がリリースされました。

というわけで早速、MongoDBのマネージドサービス、MongoDB Atlasを使ってVer. 3.2からVer.3.4へアップグレードをしてみました。

アップグレード

MongoDB Atlasのアップグレード作業は、コンソール画面から数クリックで、非常に簡単に実施できます。

まずは作業前のバージョンを確認しておきます。3.2系最新の、Ver.3.2.11で稼働しています。

Cluster0-shard-0:PRIMARY> db.version()
3.2.11
Cluster0-shard-0:PRIMARY>

コンソールのクラスタ管理画面で、CONFIGURATIONを選択します。

atlas-34-001

MongoDB Versionの項目で、Change versionを選択。

atlas-34-002

MongoDB 3.4 with WiredTigerが選択可能になっています。

atlas-34-003

MongoDB 3.4 with WiredTigerを選択。アップグレード後には前バージョンへのダウングレードできない旨の警告が表示されます。CONFIRM & DEPLOYを選択することでアップグレードが実行されます。

atlas-34-004

変更がデプロイされている旨の表示が出ますが、すぐに消えました。

atlas-34-005

接続していたシェルのセッションが切断されますので、再接続してみたところ、すでにVer. 3.4.0にアップグレードされていました!

$ mongo "mongodb://cluster0-shard-00-00-b1mko.mongodb.net:27017,cluster0-shard-00-01-b1mko.mongodb.net:27017,cluster0-shard-00-02-b1mko.mongodb.net:27017/admin?replicaSet=Cluster0-shard-0" --ssl --username master --password
MongoDB shell version v3.4.0
Enter password: 
connecting to: mongodb://cluster0-shard-00-00-b1mko.mongodb.net:27017,cluster0-shard-00-01-b1mko.mongodb.net:27017,cluster0-shard-00-02-b1mko.mongodb.net:27017/admin?replicaSet=Cluster0-shard-0
2016-12-10T09:28:55.656+0000 I NETWORK  [main] Starting new replica set monitor for Cluster0-shard-0/cluster0-shard-00-00-b1mko.mongodb.net:27017,cluster0-shard-00-01-b1mko.mongodb.net:27017,cluster0-shard-00-02-b1mko.mongodb.net:27017
MongoDB server version: 3.4.0
Cluster0-shard-0:PRIMARY> 
Cluster0-shard-0:PRIMARY> db.version()
3.4.0
Cluster0-shard-0:PRIMARY>

Atlasのコンソールでログを確認すると、以下のようになっています。

atlas-34-006

なんと操作を実行してから、アップグレード -> 再起動 -> Primaryの選出まで、わずか6秒で完了しています。再起動によりセッションの切断はあるものの、すぐに再接続可能な状態に復帰していることがわかります。

まとめ

いかがでしょうか。

MongoDBのマネージドサービス、MongoDB Atlasを使って、最新のVer.3.4へのアップグレードを試してみました。操作が簡単なだけでなく、ほぼ一瞬でアップグレードが完了しました。通常、データベース環境のメジャーアップグレードでは、かなりの作業と時間が必要になるものですが、MongoDBでは簡単に実施可能です。

これは、MongoDB自体がバイナリ1つで実行可能であるという非常にシンプルな実装になっているために可能なことであり、MongoDBの大きな強みの1つと言えるでしょう。