Atlas Live Migration を使用して MongoDB を MongoDB Atlas に移行する

Last reviewed 2023-05-08 UTC

このドキュメントでは、MongoDB の Atlas Live Migration Service を使用して、データベースを含むセルフマネージド MongoDB レプリカセットから MongoDB Atlas のフルマネージド クラスタに移行するためのアーキテクチャについて説明します。

このチュートリアルは、完全ホスト型の MongoDB サービスに関心があるか、MongoDB Atlas クラスタへの MongoDB のレプリカセット内の MongoDB データベース移行を担当している、データベース設計担当者、データベース管理者、データベース エンジニアを対象としています。

アーキテクチャ

次の図は、移行のアーキテクチャを示しています。

プライマリから MongoDB Atlas への移行パスを持つ Compute Engine 上の MongoDB サーバー。

図中の矢印は、Compute Engine で実行されているソース MongoDB レプリカセットから、Google Cloud 上の MongoDB Atlas で実行されているターゲット クラスタへのデータ移行パスを表します。

デプロイ アーキテクチャには、次のコンポーネントが含まれています。

  • ソース データベース: 3 つの Compute Engine インスタンスで実行されるセルフマネージド MongoDB レプリカセット
  • ターゲット データベース: フルマネージド MongoDB Atlas クラスタ
  • 移行サービス: 移行元から移行先にデータを移行するための Atlas Live Migration 構成

このチュートリアルでは、Compute Engine インスタンスでセルフマネージド MongoDB レプリカセットを使用しますが、オンプレミス データセンターまたは別のクラウド環境にソース MongoDB レプリカセットをデプロイすることも可能です。

代替案を設計する

以降のセクションでは、このアーキテクチャの代替となる設計案について説明します。

シャーディングされた MongoDB クラスタ

このドキュメントのアーキテクチャでは、MongoDB レプリカセットをソースとして使用しています。このアーキテクチャには、MongoDB Atlas へのシャーディングされた MongoDB クラスタの移行は含まれていません。MongoDB レプリカセットとシャーディングされた MongoDB クラスタのアーキテクチャの違いについては、Stack Exchange: データベース管理者の投稿をご覧ください。

Atlas mongomirror ユーティリティ

このドキュメントのアーキテクチャでは、Atlas mongomirror ユーティリティではなく、Atlas Live Migration を使用しています。mongomirror ユーティリティでは、移行元の MongoDB 環境にエージェントをインストールする必要があり、このユーティリティは下位の抽象化レベルで動作します。

インテグレーション テクノロジー

このアーキテクチャの移行設定は、コピー セマンティクスを使用した同タイプのデータベースへの移行です。移行中にデータは変換されず、データベースの結合やデータの再シャーディングは行われません。Striim などのインテグレーション テクノロジーを使用して、コピー セマンティクスを超える機能を実装できます。

設計上の考慮事項

次のガイドラインは、信頼性、費用、パフォーマンスに関する組織の要件を満たすアーキテクチャを開発するために役立ちます。

信頼性

このアーキテクチャでの移行は、ソース MongoDB レプリカセットからターゲット MongoDB Atlas クラスタへの一方向の移行です。ソース MongoDB レプリカセットからターゲット クラスタへのカットオーバーが完了すると、ソース データベースはターゲット クラスタに加えられた変更によって最新の状態に保たれなくなります。したがって、このアーキテクチャを本番環境に実装した場合、フォールバック時にアプリケーションを最新のソース データベースに切り替えることはできません。フォールバックのプロセスについて詳しくは、データベースの移行: コンセプトと原則(パート 2)をご覧ください。

費用の最適化

このアーキテクチャのデプロイでは、課金対象である次の Google Cloud コンポーネントを使用します。

このアーキテクチャをデプロイするために、MongoDB Atlas の無料枠は使用できません。無料枠で使用可能なマシンタイプは、Atlas Live Migration には対応していません。最低限必要なマシンタイプ(このドキュメントの執筆時点では M10)には、MongoDB Atlas の 1 時間ごとの料金がかかります。料金の見積もりを生成するには、MongoDB Atlas の料金に移動し、Google Cloud の料金情報を確認してください。この移行を本番環境で実装する場合は、標準でホストされている MongoDB Atlas のバージョンの使用をおすすめします。

パフォーマンス

Atlas Live Migration では、ダウンタイムのないデータベース移行のアプローチを利用できます。ソース MongoDB レプリカセットから移行した場合も影響はなく、アプリケーションは引き続きソース データベースにアクセスできます。初期読み込みの後、Atlas Live Migration は移行の開始後に変更を行います。

最初のデータセットが移行されたら、ソース データベースからターゲット クラスタへのカットオーバーを実行します。カットオーバー プロセスの一環として、移行元データベースへの書き込みアクセスを一時停止します。その後、Atlas Live Migration が残りの変更をキャプチャし、ターゲット データベースに適用するまで待ちます。変更が適用された後、Atlas Live Migration でカットオーバーを実行し、ソース データベースを停止できます。

すべてのデータが移行されると、Atlas Live Migration ユーザー インターフェース内の進行状況を示すラインに表示されます。この時点で、データ移行が完了し、アプリケーション システムはレコードの新しいシステムとしてターゲット クラスタへのアクセスを開始できます。

デプロイ

このアーキテクチャをデプロイするには、Atlas Live Migration をデプロイして MongoDB を MongoDB Atlas に移行するをご覧ください。

次のステップ