このガイドでは、Data Transmission Service (DTS) を使用して MongoDB Atlas データベースから ApsaraDB for MongoDB インスタンスにデータを移行する手順を説明します。DTS は、完全データ移行と増分データ移行をサポートしています。両方のタイプを選択することで、移行中もサービスをオンラインに保つことができます。
このガイドでは、次の内容について説明します。
DTS サーバーの IP アドレスを MongoDB Atlas の許可リストに追加
DTS でのソースデータベースとターゲットデータベースの接続設定
移行タイプとオブジェクトの選択
事前チェックの実行と DTS インスタンスの購入
ワークロードの ApsaraDB for MongoDB への切り替え
前提条件
開始する前に、次のものがあることを確認してください。
ソース MongoDB Atlas データベースの合計データサイズより少なくとも 10% 大きいストレージ容量を持つ ApsaraDB for MongoDB インスタンス (推奨)
必要な権限を持つ MongoDB Atlas データベースアカウント (「必要な権限」をご参照ください)
ターゲットデータベースに対する読み取りおよび書き込み権限を持つ ApsaraDB for MongoDB データベースアカウント
制限事項
DTS は完全データ移行中にソースからの読み取りとターゲットへの書き込みを同時に行うため、両方のデータベースサーバーの負荷が増加します。影響を最小限に抑えるため、オフピーク時にデータを移行することを推奨します。
DTS は
adminまたはlocalデータベースからデータを移行できません。configデータベースは内部データベースであるため、移行は推奨されません。ソースとターゲットの MongoDB データベースでバージョンやストレージエンジンが異なる場合、ご利用のアプリケーションが両方で実行できることを確認してください。サポートされているバージョンとストレージエンジンについては、「MongoDB のバージョンとストレージエンジン」をご参照ください。
ターゲットデータベースへの同時書き込みにより、ターゲットのストレージサイズがソースデータサイズよりも 5%~10% 大きくなることがあります。
ターゲットの ApsaraDB for MongoDB インスタンスには、ソースのドキュメントと同じ
_idプライマリキーを持つドキュメントを含めることはできません。含んでいる場合、データが失われる可能性があります。競合が存在する場合は、ビジネスに影響を与えないように、移行を開始する前にターゲットから一致するドキュメントを削除してください。
課金
| 移行タイプ | インスタンス構成料金 | インターネットトラフィック料金 |
|---|---|---|
| 完全データ移行 | 無料 | Alibaba Cloud からインターネット経由でデータが移行される場合にのみ課金されます。詳細については、「課金概要」をご参照ください。 |
| 増分データ移行 | 課金されます。詳細については、「課金概要」をご参照ください。 |
移行タイプ
| 移行タイプ | 説明 | サポート対象オブジェクト |
|---|---|---|
| 完全データ移行 | ソース MongoDB データベースからターゲットに既存のデータを移行します。 | データベース、コレクション、インデックス |
| 増分データ移行 | 完全データ移行の完了後、ソースからターゲットへの変更を継続的にレプリケートします。データベース、コレクション、インデックスの作成・削除操作、およびドキュメントの作成・削除・更新操作をサポートします。 | データベース、コレクション、インデックス、ドキュメント |
必要な権限
| データベース | 完全データ移行 | 増分データ移行 |
|---|---|---|
| ソース MongoDB Atlas データベース | ソースデータベースに対する読み取り権限と listDatabases 権限 | ソース、admin、local データベースに対する読み取り権限と listDatabases 権限 |
| ターゲット ApsaraDB for MongoDB インスタンス | ターゲットデータベースに対する読み取りおよび書き込み権限 | ターゲットデータベースに対する読み取りおよび書き込み権限 |
MongoDB Atlas でデータベースアカウントを作成し、必要な権限を付与する方法については、「db.createUser()」をご参照ください。
ターゲットの ApsaraDB for MongoDB インスタンスについては、「DMS を使用したデータベースアカウントの管理」をご参照ください。
DTS サーバーの IP アドレスを MongoDB Atlas の許可リストに追加
DTS は MongoDB Atlas データベースへのネットワークアクセスを必要とします。移行タスクを設定する前に、このステップを完了してください。
MongoDB Atlas コンソールにログインします。
左側のナビゲーションウィンドウで、[Network Access] をクリックします。
[IP Whitelist] タブで、[ADD IP ADDRESS] をクリックします。
ソース MongoDB Atlas データベースが存在するリージョンの DTS サーバーの IP アドレスを追加します。DTS の IP アドレス範囲については、「DTS サーバーの CIDR ブロックの追加」をご参照ください。MongoDB Atlas の手順については、「IP アクセスリストエントリの追加」をご参照ください。
セキュリティリスクを軽減するため、移行完了後にこのセキュリティルールを削除してください。
移行タスクの設定 (新 DTS コンソール)
ステップ 1: データ移行ページを開く
次のいずれかの方法を使用します。
DTS コンソール
DTS コンソールにログインします。
左側のナビゲーションウィンドウで、[データ移行] をクリックします。
左上隅で、データ移行インスタンスが存在するリージョンを選択します。
DMS コンソール
実際のナビゲーションは、DMSコンソールのモードとレイアウトに基づいて異なる場合があります。詳細については、「シンプルモード」および「DMSコンソールのレイアウトとスタイルをカスタマイズする」をご参照ください。
DMS コンソールにログインします。
上部のナビゲーションバーで、ポインターを [データ + AI] > [DTS (DTS)] > [データ移行] に移動します。
[データ移行タスク] の右側にあるドロップダウンリストから、データ移行インスタンスが存在するリージョンを選択します。
ステップ 2: ソースデータベースとターゲットデータベースの設定
[タスクの作成] をクリックします。
続行する前に、ページ上部に表示される [制限事項] をお読みください。これらの制限を無視すると、タスクの失敗やデータの不整合を引き起こす可能性があります。
次のパラメーターを使用して、ソースデータベースとターゲットデータベースを設定します。
ソースデータベース (MongoDB Atlas)
| パラメーター | 説明 |
|---|---|
| タスク名 | DTS タスクの名前です。DTS が自動的に生成しますが、識別しやすいよう、意味のある名前を指定することを推奨します。名前は一意である必要はありません。 |
| DMS データベースインスタンスの選択 | 既存のデータベースインスタンスを選択すると、関連パラメーターが自動入力されます。手動で接続を設定する場合は、[接続の手動設定] を選択してください。新しいインスタンスを登録するには、[DMS データベースインスタンスの追加]Alibaba Cloud データベースインスタンスの登録サードパーティクラウド上のデータベース、または自己管理データベースの登録 をクリックします。詳細については、「」および「」をご参照ください。 |
| データベースタイプ | MongoDB を選択します。 |
| アクセス方法 | パブリック IP アドレス を選択します。 |
| インスタンスリージョン | MongoDB Atlas データベースが配置されているリージョンです。一覧に表示されていない場合は、地理的に最も近いリージョンを選択してください。 |
| アーキテクチャ | レプリカセット を選択します。 |
| ドメイン名または IP アドレス | MongoDB Atlas データベースの PRIMARY ノードのエンドポイントです。このエンドポイントは、MongoDB Atlas コンソールから取得できます。 |
| ポート番号 | MongoDB Atlas データベースのサービスポートです。デフォルト値:27017。 |
| 認証データベース | データベースアカウントが作成された認証データベースです。 |
| データベースアカウント | MongoDB Atlas のアカウントです。必要な権限については、「必要な権限」をご参照ください。 |
| データベースパスワード | データベースアカウントのパスワードです。 |
| 暗号化 | Mongo Atlas SSL を選択します。 |
ターゲットデータベース (ApsaraDB for MongoDB)
| パラメーター | 説明 |
|---|---|
| [DMS データベースインスタンスの選択] | 既存のデータベースインスタンスを選択してパラメーターを自動入力するか、手動で接続を設定します。 |
| データベースの種類 | [MongoDB] を選択します。 |
| [アクセス方法] | [Alibaba Cloud インスタンス] を選択します。 |
| インスタンス リージョン | ターゲットの ApsaraDB for MongoDB インスタンスが存在するリージョン。 |
| アーキテクチャ | ターゲットインスタンスのアーキテクチャ:[レプリカセット] または [シャーディングクラスター]。詳細については、「レプリカセットインスタンス」および「シャーディングクラスターインスタンス」をご参照ください。 |
| [インスタンス ID] | ターゲットの ApsaraDB for MongoDB インスタンスの ID。 |
| [認証データベース] | データベースアカウントが作成された認証データベース。ルートアカウントを使用するには admin を入力します。 |
| データベースアカウント | ApsaraDB for MongoDB アカウント。必要な権限については、「必要な権限」をご参照ください。 |
| データベースパスワード | データベースアカウントのパスワード。 |
ステップ 3: 接続テスト
ページ下部で [接続テストと次へ] をクリックし、[DTS サーバーの CIDR ブロック] ダイアログボックスで [接続テスト] をクリックします。
DTS サーバーの CIDR ブロックは、ソースデータベースとターゲットデータベースのセキュリティ設定に追加する必要があります。詳細については、「DTS サーバーの CIDR ブロックの追加」をご参照ください。
ステップ 4: 移行オブジェクトの設定
[オブジェクトの設定] ページで、次のパラメーターを設定します。
| パラメーター | 説明 |
|---|---|
| 移行タイプ | 1 回限りの移行の場合は、[スキーマ移行] + [完全データ移行] を選択します。移行中にサービスをオンラインに保つには、[スキーマ移行] + [完全データ移行] + [増分データ移行] を選択します。[スキーマ移行] を省略する場合は、開始前にターゲットデータベースとコレクションを手動で作成してください。[増分データ移行] を省略する場合は、データ整合性を維持するために移行中にソースデータベースへの書き込みを停止してください。 |
| [競合するテーブルの処理モード] | [事前チェックとエラー報告]:移行開始前にコレクション名の競合をチェックします。競合が見つかった場合、タスクは失敗します。オブジェクト名マッピングを使用して競合を解決してください。[エラーを無視して続行]:競合チェックをスキップします。データの不整合のリスクを受け入れる場合にのみ使用してください。DTS は競合するプライマリキーを持つレコードをスキップし、ターゲットデータを上書きしません。 |
| 移行先インスタンスのオブジェクト名の大文字化 | 送信先でのデータベース名およびコレクション名の大文字/小文字の変換を制御します。 デフォルト: DTS デフォルトポリシー。 詳細については、「宛先インスタンスでのオブジェクト名の大文字/小文字の変換を指定する」をご参照ください。 |
| ソース オブジェクト | [ソースオブジェクト] から 1 つ以上のデータベースまたはコレクションを選択し、矢印アイコンをクリックして [選択したオブジェクト] に移動します。 |
| [選択したオブジェクト] | 単一のオブジェクトの名前を変更するには、[選択したオブジェクト]単一オブジェクト名のマッピング で右クリックします。詳細については、「」をご参照ください。複数のオブジェクトを一度に名前変更するには、[一括編集] をクリックします。詳細については、「複数のオブジェクト名を一度にマッピング」をご参照ください。オブジェクトの名前を変更すると、依存オブジェクトの移行が失敗する可能性があることに注意してください。 |
[次へ: 詳細設定] をクリックします。
ステップ 5: 詳細設定
| パラメーター | 説明 |
|---|---|
| [接続失敗時の再試行時間] | 接続失敗後に DTS が再試行する時間。有効な値:10~1,440 分。デフォルト:720 分。これを少なくとも 30 分に設定してください。この時間内に DTS が再接続すると、タスクは自動的に再開されます。再試行時間も課金対象となることに注意してください。 |
| [その他の問題での再試行時間] | DDL または DML 操作の失敗後に DTS が再試行する時間。有効な値:1~1,440 分。デフォルト:10 分。これを 10 分より長く設定してください。[接続失敗時の再試行時間] より短くする必要があります。 |
| [完全データ移行の帯域幅調整を有効にする] | 完全データ移行中のデータベースへの読み取りおよび書き込み負荷を制限します。[ソースデータベースへの秒間クエリ数 (QPS)]、[完全データ移行の RPS]、および [完全移行のデータ移行速度 (MB/s)] を設定します。[完全データ移行] が選択されている場合にのみ利用可能です。 |
| [増分データ移行の帯域幅調整を有効にする] | 増分データ移行中の負荷を制限します。[増分データ移行の RPS] と [増分移行のデータ移行速度 (MB/s)] を設定します。[増分データ移行] が選択されている場合にのみ利用可能です。 |
| 環境タグ | DTS インスタンスを識別するためのオプションのタグ。 |
| [ETL の設定] | ETL (抽出・変換・書き出し) 機能を有効化します。[はい] を選択すると、コードエディタにデータ処理文を入力できます。詳細については、「データ移行またはデータ同期タスクでETLを設定する」をご参照ください。 |
| モニタリングとアラート通知 | タスクの失敗またはレイテンシがしきい値を超えた場合のアラートを設定します。アラートのしきい値と通知先連絡先を設定するには、[はい] を選択します。詳細については、「モニタリングとアラートの設定」をご参照ください。 |
[次のステップ: データ検証] をクリックしてデータ検証タスクを設定します。詳細については、「データ検証タスクの設定」をご参照ください。
ステップ 6: 事前チェックの実行
[次へ: タスク設定を保存して事前チェック] をクリックします。
このタスクの OpenAPI パラメーターを保存前にプレビューするには、[次へ: タスク設定を保存して事前チェック] にポインターを合わせ、[OpenAPI パラメーターのプレビュー] をクリックします。
DTS はタスクを開始する前に事前チェックを実行します。事前チェックが失敗した場合:
失敗した項目の横にある [詳細の表示] をクリックして原因を確認し、問題を修正してから [再事前チェック] をクリックします。
アラート項目を無視できる場合は、[アラート詳細の確認] > [無視] > [OK] > [再事前チェック] をクリックします。アラートを無視すると、データの不整合が発生する可能性があります。
ステップ 7: DTS インスタンスの購入とタスクの開始
[成功率] が [100%] に達するまで待ち、[次へ: インスタンスの購入] をクリックします。
[インスタンスの購入] ページで、次のパラメーターを設定します。
パラメーター 説明 リソースグループ DTS インスタンスのリソースグループです。デフォルト:default resource group。詳細については、「What is Resource Management? インスタンスクラス インスタンスクラスは移行速度を決定します。データ量と所要時間の要件に基づいてクラスを選択してください。詳細については、「Instance classes of data migration instances」をご参照ください。 [Data Transmission Service (従量課金) サービス規約] を読み、同意するチェックボックスを選択します。
[購入して開始] をクリックし、[OK] をクリックします。
タスクの進捗は、[データ移行] ページで追跡します。
移行タスクの設定 (旧 DTS コンソール)
新しい DTS コンソールを使用している場合は、「移行タスクの設定 (新 DTS コンソール)」に従ってください。
データ移行インスタンスを購入します。詳細については、「DTS インスタンスの購入」をご参照ください。
DTS コンソールにログインします。
Data Management Service (DMS) コンソールにリダイレクトされた場合は、
アイコンを
でクリックして、DTS コンソールの旧バージョンに切り替えます。左側のナビゲーションウィンドウで、[データ移行] をクリックします。
[移行タスク] ページの上部で、ApsaraDB for MongoDB インスタンスが存在するリージョンを選択します。
データ移行インスタンスを見つけ、[移行タスクの設定] をクリックします。
ソースデータベースとターゲットデータベースを設定します。
ソースデータベース
パラメーター 説明 [タスク名] タスク名。DTS が自動的に生成します。簡単に識別できるよう、わかりやすい名前を指定してください。 インスタンスタイプ [パブリック IP アドレスを持つユーザー作成データベース] を選択します。 インスタンス リージョン [インスタンスタイプ] が [パブリック IP アドレスを持つユーザー作成データベース] の場合は不要です。 データベースタイプ [MongoDB] を選択します。 ホスト名または IP アドレス MongoDB Atlas データベースの PRIMARY ノードのエンドポイント。次のアニメーションは、エンドポイントの取得方法を示しています。 
[ポート番号] MongoDB Atlas データベースのサービスポート。デフォルト: 27017。 データベース名 データベースアカウントが作成された認証データベース。 [データベースアカウント] MongoDB Atlas アカウント。必要な権限については、「必要な権限」をご参照ください。 データベースパスワード データベースアカウントのパスワード。パスワードを入力後、[接続テスト] をクリックして検証します。[成功] メッセージが表示されると接続が確認されます。 暗号化 [SSL 暗号化] を選択します。 ターゲットデータベース
パラメーター 説明 インスタンスタイプ [MongoDB インスタンス] を選択します。 インスタンスリージョン ApsaraDB for MongoDB インスタンスが存在するリージョン。 MongoDB インスタンス ID ApsaraDB for MongoDB インスタンスの ID。 [データベース名] データベースアカウントが作成された認証データベース。ルートアカウントを使用するには adminを入力します。データベースアカウント ApsaraDB for MongoDB アカウント。必要な権限については、「必要な権限」をご参照ください。 データベースパスワード データベースアカウントのパスワード。パスワードを入力後、[接続テスト] をクリックして検証します。 
[ホワイトリストを設定して次へ] をクリックします。DTS は、Alibaba Cloud データベースインスタンスの IP アドレスホワイトリストにサーバーの CIDR ブロックを自動的に追加します。Elastic Compute Service (ECS) インスタンスでホストされている自己管理データベースの場合、DTS は CIDR ブロックを ECS セキュリティグループルールに追加します。データセンターやサードパーティのクラウドにデプロイされたデータベースの場合は、DTS の CIDR ブロックを手動で追加してください。詳細については、「DTS サーバーの CIDR ブロックの追加」をご参照ください。
警告DTS の CIDR ブロックを許可リストに追加すると、データベースが DTS サーバーからのネットワークアクセスに公開されます。続行する前に、セキュリティへの影響を確認し、強力な認証情報の使用、公開ポートの制限、API 呼び出しの認証、ホワイトリストルールの定期的な監査、不正な CIDR ブロックの迅速な削除などの予防措置を講じてください。プライベート接続には、Express Connect、VPN Gateway、または Smart Access Gateway を使用してください。
移行タイプとオブジェクトを選択します。
設定 説明 移行タイプ 一度限りの移行を行う場合は、完全データ移行 を選択します。移行中にサービスをオンラインのまま維持する場合は、完全データ移行 + 増分データ移行 を選択します。なお、増分データ移行 を省略する場合、データ整合性を保つため、移行中はソースデータベースへの書き込みを停止してください。 移行対象のオブジェクト 利用可能 セクションでデータベースまたはコレクションを選択し、矢印アイコンをクリックして 選択済み に移動します。DTS では、 admin、local、configオブジェクト名のマッピング の各データベースは移行できません。移行可能なオブジェクトには、データベース、コレクション、関数が含まれます。送信先でのオブジェクト名の変更が必要な場合は、オブジェクト名マッピング機能をご利用ください。詳細については、「」をご参照ください。接続失敗時の再試行時間 接続失敗後に DTS が再試行を実行する期間です。デフォルト値:12 時間。この期間内に DTS が再接続に成功した場合、タスクは自動的に再開されます。なお、再試行時間は課金対象となります。 [事前チェック] をクリックします。
DTS はタスクを開始する前に事前チェックを実行します。事前チェックが失敗した場合は、失敗した項目の横にある情報アイコンをクリックして原因を確認します。問題を修正し、[事前チェック] を再度クリックします。重要でない失敗項目を無視して、事前チェックを再実行することもできます。
事前チェックに合格したら、[次へ] をクリックします。
[設定の確認] ダイアログボックスで、[インスタンスクラス] を設定し、[Data Transmission Service (従量課金) サービス規約] に同意するチェックボックスを選択します。
[購入して開始] をクリックします。
移行の監視と停止
完全データ移行
完全データ移行タスクを手動で停止しないでください。自動的に停止するのを待ちます。早期に停止すると、ターゲットデータベースが不完全になる可能性があります。
増分データ移行
増分データ移行は自動的に停止しません。切り替えの準備ができたときに手動で停止してください。
増分移行をクリーンに停止するには:
タスクの進捗バーに [増分データ移行] と [データ移行タスクに遅延はありません] と表示されるまで待ちます。
ソースデータベースへの書き込みを停止し、数分待ちます。
[増分データ移行] のステータスが再び [移行タスクに遅延はありません] に変わるまで待ちます。
移行タスクを手動で停止します。

オフピーク時、またはワークロードを ApsaraDB for MongoDB に切り替える直前に移行を停止してください。
次のステップ
移行タスクを停止した後、ワークロードをターゲットの ApsaraDB for MongoDB インスタンスに切り替えます。