MongoDB Atlas により、データの整理や管理、そして強力なアプリケーションやアナリティクスへのデータ提供が、これまで以上に容易になりました。
2007年の設立以来、ドキュメントモデルが開発の進捗を加速させ、開発を遅らせる障害を取り除くことから、多くの開発者が MongoDB を活用しています。MongoDB のスケールアウトアーキテクチャは、構築されたアプリケーションが膨大なトラフィックや大量のデータ、あるいはその両方を取り扱えるようにします。
MongoDB Atlas は2016年に作成されたサービスとしてのデータベース(DBaaS)であり、クラウドの力を活用することで MongoDB をより簡単に利用できるようにします。MongoDB Atlas を使用すると以下が可能になります。
MongoDB Atlas の人気に伴い、多くのユーザーからいくつかの質問が寄せられています。
- MongoDB Atlas への移行が増えている理由は?
- アプリケーションを MongoDB Atlas に移行するプロセスとはどのようなものですか?
- 移行に関してどのようなサポートを受けられますか?
- MongoDB Atlas への移行における容易な点と困難な点は何ですか?
MongoDB データベースを移行する手順は、開始地点によって異なります。検討対象となるさまざまな移行パスを示すマトリックスは以下のとおりです。
現在 MongoDB を使用中:
現在別のデータベースを使用中:
既存の MongoDB デプロイから MongoDB Atlas への移行
- すでに MongoDB を使用している場合は、ドキュメントモデルと MongoDB のスケールアウトアーキテクチャの強みは、すでに明らかでしょう。
- したがって、MongoDB Atlas に移行する目的は、自己管理型のデプロイモデルに比べて改善を実現することとなります。
自己管理型 MongoDB デプロイから MongoDB Atlas への移行
まず、オンプレミスで実行しているかクラウドで実行しているかに関わらず、自己管理型のデプロイから MongoDB Atlas に移行する利点について説明します。
通常、自己管理型展開から MongoDB Atlas への移行は、以下の1つ以上の理由によって行われます。
- MongoDB Atlas への移行により、差別化につながる作業や新製品の作成に費やす時間が増加します。オンプレミスやクラウドでの自己管理型配置の運用と保守を行うことは、付加価値を生み出さない作業に時間を費やすことになります。
- オートメーションを通じて、MongoDB Atlas は重要なデータインフラストラクチャにおける責任とリスクを大幅に削減します。
- MongoDB Atlas は、より応答性が高く、スケーラブルで、信頼性と回復力に優れた操作とインフラストラクチャを提供します。
- 検索、ロケーション認識型書き込み、データレイクのサポートなど、MongoDB Atlas の新しい統合機能により、開発者はより迅速に開発を進めることができます。
- MongoDB Atlas への移行は一般的なマネージドサービス戦略の推進に役立ちます。
これらの一般的な利点は、次の3つのカテゴリーに分類されます。
- 操作の生産性、高度なオートメーション、新しいサービス
- 構成と操作のオートメーションの拡張
- DR、バックアップ、セキュリティ、コンプライアンスの新機能
- 事業継続性の維持
- 開発者により多くの力を:より優れたソフトウェアファクトリー
- 統合された検索、ロケーション認識型の書き込み、トリガーなどの追加機能により、リソースへの即時アクセスと生産性の向上を実現します。
- DevOps およびマイクロサービス向けの高度なサポート
- データレイクのサポート、サーバーレスプログラミング、モバイルアプリのサポートに向けた新しいデータプラットフォーム機能
- TCO の可視性と柔軟性
- リアルタイムデータに基づく詳細な TCO モデルのサポート
- DBaaS とクラウドの機能を活用することで TCO を改善
- スケーラブルなマネージドサービス導入の目標を達成
しかし、自己管理型展開には2つのタイプがあり、それぞれに異なる特徴があります。
オンプレミスの MongoDB デプロイから MongoDB Atlas への移行
自己管理型展開から MongoDB Atlas への移行により、運用上の責任がさまざまな形で変化します。
- ハードウェアは不要となり、MongoDB Atlas の運用スタッフの責任となります。
- MongoDB データベースソフトウェアのメンテナンスは MongoDB Atlas スタッフによって行われます。
- ID アクセス管理、セキュリティ、ネットワーキング、バックアップ、監視などのさまざまなサービスやインフラストラクチャはクラウドプロバイダーのサービスを使用して行われるようになります。
さらに、MongoDB Atlas はさまざまな点で MongoDB よりも強力なバージョンです:
- MongoDB Community Edition から開始する場合、MongoDB Atlas の基盤となる MongoDB Enterprise Edition の追加機能を利用できます。
- MongoDB Atlas には、統合型の検索、ロケーション対応の書き込み、トリガー、そして開発を加速するさまざまな機能があります。
- MongoDB Atlas は、データレイク機能、Stitch を介したサーバーレスプログラミング、および Realm によるモバイルアプリのデータマネジメントのサポートを含む、より広範なプラットフォームでもあります。
- これらすべてを組み合わせることで、MongoDB Atlas はデータプラットフォームとなります。
多くの会社は、自社の自己管理型配置に正当な誇りを持っており、MongoDB を適切に実行しています。アプリケーションまたはワークロードをサポートするためにデータベースがどのように機能するかについての詳細な知識は、MongoDB Atlas クラウド環境のチューニングとセットアップに活用できます。
オンプレミスから MongoDB Atlas へ移行する手順
自己管理型のオンプレミス MongoDB 環境から移行する際の概要手順は以下の通りです。
- クラスターのサイズを選択し、MongoDB Atlas cluster を設定します。
- MongoDB Atlas Live Migration Service を使用して、既存の MongoDB データベースから MongoDB Atlas にデータを同期します。
- 他のワークロードが MongoDB Atlas にアクセスするために使用しているアプリケーションコードまたはデータアクセスレイヤーを変更する準備をします。
- MongoDB Atlas に切り替えます。
MongoDB のドキュメントページ「クラスターへのデータの移行またはインポート」では、ソースとなる MongoDB デプロイメントの構成に応じて、Atlas ライブ移行サービスを使用するさまざまな方法を説明しています。
MongoDB クラウド展開から MongoDB Atlas への移行
MongoDB の自己管理型クラウド展開からの移行は、スタッフがネットワーキング、セキュリティ、監視のためのサービスを使用してクラウド上でソフトウェアを実行することにすでに慣れているため、一般的に最も容易に実行できます。
- 概要の手順は、上記に記載されているものと基本的に同じです。
- AWS 上の自己管理型 MongoDB デプロイを MongoDB Atlas に移行するための詳細な手順もご用意しています。
- GCP または Azure から MongoDB Atlas へ自己管理型の配置を移行する際は、ドキュメントのセクションレプリカセットの Atlas へのライブ移行を参照してください
別のデータベースから MongoDB Atlas への移行
異なるタイプのデータベースから MongoDB Atlas への移行は、前述のすべての利点によって動機付けられる可能性があります。しかし通常、MongoDB のドキュメントデータベースとそのスケールアウトアーキテクチャを活用することが主な要因となります。
ドキュメントモデルの利点
MongoDB のドキュメントデータモデルはアプリケーションコード内のオブジェクトに自然にマッピングされるため、開発者が容易に学習・使用できます。ドキュメントを使用すると、階層的な関係を表現して、配列やその他のより複雑な構造を簡単に保存できます。JSON ドキュメントでは、データをフィールド、配列、あるいはネストされたサブドキュメントとして保存できます。このように、関連情報をまとめて保存することで、豊富で表現力豊かな MongoDB クエリ言語を通じて高速なクエリアクセスが可能になります。
MongoDB では、BSON(Binary JSON)と呼ばれるバイナリ形式でデータをドキュメントとして保存します。フィールドはドキュメントごとに異なっていてもかまいません。ドキュメントは自己記述型であるため、ドキュメントの構造をシステムに宣言する必要はありません。ドキュメントに新しいフィールドを追加する必要がある場合、そのフィールドは、コレクション内の他のすべてのドキュメントに影響を与えることなく、中央のシステムカタログや ORM をアップデートすることなく、またシステムをオフラインにすることなく作成できます。オプションで、スキーマバリデーションを使用して、各コレクションのデータガバナンス制御を強制適用できます。
この柔軟性は、多様なソースからの情報を統合したり、特に新しいアプリケーション機能が継続的にデプロイされる中で、時間の経過に伴うドキュメントの違いに対応したりする際に、非常に役立ちます。
MongoDB の拡張能力
MongoDB は、大量のトラフィックと大量のデータの両方を取り扱うために拡張できる能力でも非常に人気があります。「MongoDB を活用して大規模に展開」ページでは、MongoDB がサポートするスケーラビリティの 3 つの側面(クラスター、データ、パフォーマンス)について説明しています。
MongoDB はスケールアウトアーキテクチャに基づいているため、スケールアップのための戦略とメカニズムが組み込まれています。多くのデータベースでは、アプリケーションが動作するようになった後、スケーラブルな操作をサポートするために、さらなるエンジニアリング作業が必要となります。スケーラビリティをサポートするという目標が、多くの移行を推進しています。
別のデータベースの自己管理型展開から MongoDB Atlas への移行
他のデータベースの自己管理型展開から MongoDB へ移行する方法は多数あります。
プロセスの例については、チュートリアル「リレーショナルデータベースから MongoDB への移行 」をご覧ください。
以下のリンクで紹介されているものなど、サードパーティによって開発された支援ツールもあります。
- MongoSyphon (@JohnLPage)
- SQL から MongoDB への移行(Studio3t)
ただし、一般的な手順は次のとおりです。
- MongoDB Atlas クラスターの開始サイズを決定し、クラスターを作成します。
- データを表現するための適切なドキュメント構造を決定します。
- ETL ツール、データ転送ユーティリティ、またはカスタムソフトウェアを使用してデータをダンプし、MongoDB Atlas に再ロードします。
- CDC ツールまたはユーティリティを使用して、ソースデータベースの変更に合わせて MongoDB Atlas cluster をアップデートします。
- MongoDB Atlas クラスター内のデータにアクセスできるように、アプリケーションまたはワークロードを変更します。
- テストが完了したら、新しい MongoDB Atlas クラスターにカットオーバーします。
別のサービスとしてのデータベースプロバイダーから MongoDB Atlas への移行
サービスとしてのデータベースプロバイダーから MongoDB に移行するプロセスは、上記で説明した手順と基本的に同じです。唯一の違いは、移行元のデータベースが自己管理型ではないことです。