MongoDB 互換の Firestore に移行する

このガイドでは、MongoDB 互換の移行元データベースを MongoDB 互換の Firestore データベースに最小限のダウンタイムで移行する手順について説明します。

移行プロセスについて

移行プロセスには次のステージがあります。

  1. 準備: 移行に必要なリソースを作成し、移行プロセスの後のステージでコマンドを実行するために使用される環境変数を設定します。

  2. MongoDB 互換の移行元データベースからインポートする: Datastream サービスを使用して、MongoDB 互換の移行元データベースの内容をキャプチャし、Cloud Storage バケットに転送します。

  3. MongoDB 互換の Firestore データベースにデータを書き込む: Dataflow サービスを使用して、Cloud Storage バケットから MongoDB 互換の Firestore データベースにデータを転送します。

    この Dataflow パイプラインは、MongoDB 互換の移行元データベースからデータを取得する Datastream ストリームと同時に実行されます。

  4. Firestore にトラフィックを移行する: 手順の適切な時点で、アプリケーションの読み取り / 書き込みトラフィックを MongoDB 互換の Firestore データベースに移行し、移行パイプラインを停止します。

次の図は、移行プロセスの概要を示しています。

ストリーミング データ移行アーキテクチャ

データ転送中、MongoDB 互換のソース データベースはサービング状態のままです。

  • Datastream プロセスは、保存データと変更イベントの両方をキャプチャします。
  • ソース データベースへの書き込みトラフィックをシャットダウンする必要がある場合、短時間だけ部分的に利用できなくなります。この期間中、残りの変更イベントは Firestore に複製されます。

  • レプリケーションが完了すると、MongoDB 互換の Firestore データベースがアプリケーション ワークロードの新しい信頼できる情報源になります。すべての読み取り / 書き込みトラフィックを新しいデータベースに転送できます。

詳細な移行手順

このセクションでは、移行について詳しく説明します。

Datastream サービスは、移行元と移行先の間にストリームを作成します。この場合、移行元は現在の MongoDB 互換のデプロイで、移行先は Cloud Storage です。このプロセスには次のステップが含まれます。

  1. Mongo ソース用の移行元 Datastream 接続プロファイルを作成します。具体的な手順は、MongoDB 互換の移行元のタイプとデプロイ方法によって異なります。

  2. MongoDB 互換の移行元 データベースからデータと変更イベントを受信する Cloud Storage バケットを作成します。

  3. この Cloud Storage バケットを使用する移行先の Datastream 接続プロファイルを作成します。

  4. 移行元の接続プロファイルを移行先の接続プロファイルに接続する Datastream ストリームを作成して起動します。

  5. Dataflow パイプラインを開始して、キャプチャしたデータの MongoDB 互換の Firestore データベースへの挿入を開始します。

  6. ストリームをモニタリングして、移行プロセスの重要なマイルストーンを特定し、データ転送中にエラーが発生したかどうかを判断します。

  7. 必要に応じて、移行元データベースへの書き込みトラフィックをシャットダウンします。最近の変更を含むすべてのデータが MongoDB 互換の Firestore データベースに複製されたら、読み取りトラフィックを新しい宛先にリダイレクトします。

  8. MongoDB 互換の Firestore データベースへの書き込みトラフィックを有効にします

コード例について

このガイドのコード例は、順番に実行することを想定しています。このガイドでは、すべての環境変数を事前に設定して環境を構成することを前提としています。その後、すでに構成されている環境変数を使用して、移行に必要なコマンドを実行します。このアプローチを使用することをおすすめします。多くのコマンドで同じ環境変数を使用するため、移行プロセスのさまざまな段階でエラーが発生する可能性を減らすことができます。

また、コマンド例の変数を、対応する環境変数に設定した同じ値に置き換えることもできます。

制限事項

始める前に、MongoDB 互換の Firestore と MongoDB の違いを確認してください。特に次の点に注意してください。

データが上記のカテゴリの制限を満たしていない場合:

  • 移行プロセスを開始する前に、データセットでこれらの条件に対処することをおすすめします。

  • 変更せずに続行すると、制限の影響を受けるドキュメントは Firestore への書き込みに失敗し、保留されます。これらのドキュメントの処理方法を決定できます。サポートされている型、値、サイズに変換された場合は、再処理できます。

Datastream には次の要件があります。

  • Datastream でサポートされている MongoDB の最小メジャー バージョンは 4.0 です。一部のマイナー バージョンでは、サポートされている最小パッチ バージョンがあります。

    • 4.0.21
    • 4.2.10
    • 4.4.2
  • MongoDB クラスタが変更ストリームをサポートしている必要があります。Change Streams を有効にするには、MongoDB デプロイがレプリカセットまたはシャーディングされたクラスタとして構成されている必要があります。

次のステップ

移行用のリソースを構成するに進みます。