Data Transmission Service (DTS) を使用すると、異なる Alibaba Cloud アカウントが所有するデータベース間でデータをレプリケーションできます。代表的なユースケースには、組織再編後のデータ統合、アカウント間でのリソース移行、業務部門ごとの環境分離などがあります。
仕組み
クロスアカウント DTS タスクでは、少なくとも 2 つの Alibaba Cloud アカウントが関与します。
データベースインスタンスを所有するアカウント(ソース、ターゲット、またはその両方)
DTS タスクを作成するアカウント
タスクを作成する前に、データベースインスタンスを所有するアカウントは、RAM(Resource Access Management)による認可を通じて、タスク作成者アカウントにアクセス権限を付与する必要があります。この処理には、RAM ロールの作成、必要な権限の付与、および該当ロールの信頼ポリシーへのタスク作成者アカウントの追加が含まれます。
Alibaba Cloud アカウント間でのデータレプリケーション パラメーターにより、どのデータベースがクロスアカウントであるかが決定されます。サポートされるシナリオは以下の 3 種類です。
| シナリオ | ソース設定 | 送信先設定 |
|---|---|---|
| ソースデータベースがクロスアカウントである | はい | いいえ |
| ターゲットデータベースがクロスアカウントである | いいえ | はい |
| 両方のデータベースがクロスアカウントである | はい | はい |
前提条件
開始する前に、以下の準備が完了していることを確認してください。
ソースインスタンス、またはソースおよびターゲットの両方のインスタンスが作成済みであること
データベースインスタンスを所有するアカウントの Alibaba Cloud リソースへ DTS がアクセスできるよう、適切な権限付与が完了していること。詳細については、「DTS による Alibaba Cloud リソースへのアクセス権限の付与」をご参照ください。
サポート対象のデータベース
以下に示すデータベースは、クロスアカウント DTS タスクをサポートしています。サポートされる組み合わせは、データベースタイプ および アクセス方法 のパラメーターのみに依存します。つまり、ソースデータベースのクロスアカウント設定は、ターゲットデータベースのタイプには影響しません。
ソースデータベース
| データベースタイプ | アクセス方法 |
|---|---|
| MySQL | Alibaba Cloud インスタンス、Express Connect/VPN Gateway/Smart Access Gateway、ECS 上の自己管理型データベース |
| PolarDB for MySQL | Alibaba Cloud インスタンス |
| Tair/Redis | Alibaba Cloud インスタンス、Express Connect/VPN Gateway/Smart Access Gateway、ECS 上の自己管理型データベース、Cloud Enterprise Network (CEN)、Database Gateway |
| SQL Server | Alibaba Cloud インスタンス、Express Connect/VPN Gateway/Smart Access Gateway |
| PostgreSQL | Alibaba Cloud インスタンス、Express Connect/VPN Gateway/Smart Access Gateway |
| MongoDB | Alibaba Cloud インスタンス、Express Connect/VPN Gateway/Smart Access Gateway、ECS 上の自己管理型データベース、Cloud Enterprise Network (CEN) |
| Oracle | Express Connect/VPN Gateway/Smart Access Gateway |
| PolarDB (Compatible with Oracle) | Alibaba Cloud インスタンス、Express Connect/VPN Gateway/Smart Access Gateway |
| PolarDB for PostgreSQL | Alibaba Cloud インスタンス |
| PolarDB-X 1.0 | Alibaba Cloud インスタンス |
| PolarDB-X 2.0 | Alibaba Cloud インスタンス |
| DB2 for iSeries (AS/400) | Express Connect/VPN Gateway/Smart Access Gateway |
| DB2 for LUW | Express Connect/VPN Gateway/Smart Access Gateway、ECS 上の自己管理型データベース |
| MariaDB | Alibaba Cloud インスタンス、Express Connect/VPN Gateway/Smart Access Gateway、ECS 上の自己管理型データベース |
| ApsaraDB OceanBase for MySQL | Alibaba Cloud インスタンス、Express Connect/VPN Gateway/Smart Access Gateway、ECS 上の自己管理型データベース |
| SLS | Alibaba Cloud インスタンス |
| AnalyticDB for MySQL 3.0 | Alibaba Cloud インスタンス |
ターゲットデータベース
| データベースタイプ | アクセス方法 |
|---|---|
| MySQL | Alibaba Cloud インスタンス |
| PolarDB for MySQL | Alibaba Cloud インスタンス |
| AnalyticDB for MySQL 3.0 | Alibaba Cloud インスタンス |
| Tair/Redis | Alibaba Cloud インスタンス |
| ClickHouse | Alibaba Cloud インスタンス |
| SelectDB | Alibaba Cloud インスタンス |
| MongoDB | Alibaba Cloud インスタンス |
注意事項
双方向同期は、ApsaraDB RDS for MySQL インスタンス間、ApsaraDB RDS for MySQL クラスター間、Tair(Enterprise Edition)インスタンス間、ApsaraDB for MongoDB レプリカセットインスタンス間、および ApsaraDB for MongoDB シャードクラスターインスタンス間でのみサポートされています。双方向同期を行う場合は、ソースおよびターゲットの両方のアカウントで RAM 認可を完了する必要があります。
DTS は、異なる基盤上のアカウント間(例:Alibaba Finance Cloud アカウントと Alibaba Gov Cloud アカウント間)でのデータレプリケーションをサポートしていません。
RAM コンソールには、RAM ユーザーではなく、Alibaba Cloud アカウント(root ユーザー)でログインしてください。RAM ユーザーを使用して権限を付与すると、DTS タスクの設定時に「無効な権限」というエラーが発生する場合があります。
クロスアカウント DTS タスクの設定
以下の手順では、データ同期タスクを例として説明します。
シナリオ 1:ソースデータベースがクロスアカウントである
構成ロジック:
ソースデータベースはアカウント A が所有し、アカウント B が DTS タスクを作成・所有します。
アカウント A を使用して RAM コンソールにログインし、RAM ロールを作成した後、信頼ポリシーにアカウント B を追加します。
アカウント B(ターゲットデータベースアカウント)を使用して DTS タスクを作成します。
タスク構成画面で、ソースデータベースの Alibaba Cloud アカウント間でのデータレプリケーション を はい に設定し、Alibaba Cloud アカウント にアカウント A の ID を入力します。
操作手順:
アカウント A(ソースデータベースアカウント)を使用して RAM 認可を構成します。完全な手順については、「シナリオ 1:クロスアカウント DTS タスクのための RAM 認可の構成」をご参照ください。
アカウント B(ターゲットデータベースアカウント)を使用して DTS コンソールまたは DMS コンソールにログインします。
DTS コンソール
DTS コンソール にログインします。
左側のナビゲーションウィンドウで、データ同期 をクリックします。
ページの左上隅にあるドロップダウンリストから、データ同期インスタンスが配置されているリージョンを選択します。
DMS コンソール
注実際の操作は、DMS コンソールのモードおよびレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「DMS コンソールのレイアウトとスタイルのカスタマイズ」をご参照ください。
DMS コンソール にログインします。
上部のナビゲーションバーで、Data + AI にポインターを合わせ、 を選択します。
データ同期タスク の右側にあるドロップダウンリストから、データ同期インスタンスが配置されているリージョンを選択します。
タスクの作成 をクリックして、タスク構成ページに移動します。
ソースデータベースを構成します。
ソースデータベースの データベースタイプ、アクセス方法、および インスタンスリージョン を選択します。
Alibaba Cloud アカウント間でのデータレプリケーション を はい に設定します。

Alibaba Cloud アカウント に、ソースインスタンスを所有するアカウント(アカウント A)の ID を入力します。アカウント ID の確認方法については、「事前準備:クロスアカウント DTS タスクのための RAM 認可の構成」をご参照ください。
RAM ロール名 に、アカウント A が作成した RAM ロールの名前を入力します。例: ram-for-dts。 > 重要: > - ロール名のみを入力してください。RAM ユーザー名、RAM ロールの Alibaba Cloud リソース名(ARN)、およびデフォルトの DTS ロール AliyunDTSDefaultRole は入力しないでください。 > - この RAM ロールの作成手順については、「ステップ 1:RAM ロールの作成:クロスアカウント DTS タスクのための RAM 認可の構成(シナリオ 1)」をご参照ください。
残りのタスク構成を要件に応じて完了します。
シナリオ 2:ターゲットデータベースがクロスアカウントである
構成ロジック:
ターゲットデータベースはアカウント B が所有し、アカウント A が DTS タスクを作成・所有します。
アカウント B を使用して RAM コンソールにログインし、RAM ロールを作成した後、信頼ポリシーにアカウント A を追加します。
アカウント A(ソースデータベースアカウント)を使用して DTS タスクを作成します。
タスク構成画面で、ターゲットデータベースの Alibaba Cloud アカウント間でのデータレプリケーション を はい に設定し、Alibaba Cloud アカウント にアカウント B の ID を入力します。
操作手順:
アカウント B(ターゲットデータベースアカウント)を使用して RAM 認可を構成します。完全な手順については、「シナリオ 2:クロスアカウント DTS タスクのための RAM 認可の構成」をご参照ください。
アカウント A(ソースデータベースアカウント)を使用して DTS コンソールまたは DMS コンソールにログインします。
DTS コンソール
DTS コンソール にログインします。
左側のナビゲーションウィンドウで、データ同期 をクリックします。
ページの左上隅にあるドロップダウンリストから、データ同期インスタンスが配置されているリージョンを選択します。
DMS コンソール
注実際の操作は、DMS コンソールのモードおよびレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「DMS コンソールのレイアウトとスタイルのカスタマイズ」をご参照ください。
DMS コンソール にログインします。
上部のナビゲーションバーで、Data + AI にポインターを合わせ、 を選択します。
データ同期タスク の右側にあるドロップダウンリストから、データ同期インスタンスが配置されているリージョンを選択します。
タスクの作成 をクリックして、タスク構成ページに移動します。
要件に応じてソースデータベースを構成します。
ターゲットデータベースを構成します。
ターゲットデータベースの データベースタイプ、アクセス方法、および インスタンスリージョン を選択します。
Alibaba Cloud アカウント間でのデータレプリケーション を はい に設定します。

Alibaba Cloud アカウント に、ターゲットインスタンスを所有するアカウント(アカウント B)の ID を入力します。アカウント ID の確認方法については、「事前準備:クロスアカウント DTS タスクのための RAM 認可の構成」をご参照ください。
RAM ロール名 に、アカウント B が作成した RAM ロールの名前を入力します。例: ram-for-dts。 > 重要: > - ロール名のみを入力してください。RAM ユーザー名、RAM ロールの Alibaba Cloud リソース名(ARN)、およびデフォルトの DTS ロール AliyunDTSDefaultRole は入力しないでください。 > - この RAM ロールの作成手順については、「ステップ 1:RAM ロールの作成:クロスアカウント DTS タスクのための RAM 認可の構成(シナリオ 2)」をご参照ください。
残りのタスク構成を要件に応じて完了します。
シナリオ 3:両方のデータベースがクロスアカウントである
構成ロジック:
ソースおよびターゲットの両方のデータベースが、それぞれ異なるアカウント(アカウント A およびアカウント B)が所有しており、第 3 のアカウント(アカウント C)が DTS タスクを作成します。
アカウント A およびアカウント B をそれぞれ使用して RAM コンソールにログインし、各々の RAM ロールを作成した後、各ロールの信頼ポリシーにアカウント C を追加します。
アカウント C を使用して DTS タスクを作成します。
タスク構成画面で、ソースおよびターゲットの両方のデータベースについて Alibaba Cloud アカウント間でのデータレプリケーション を はい に設定し、それぞれのアカウント ID を入力します。
操作手順:
アカウント A(ソース)およびアカウント B(ターゲット)の両方について RAM 認可を構成します。完全な手順については、「シナリオ 3:クロスアカウント DTS タスクのための RAM 認可の構成」をご参照ください。
アカウント C(DTS タスク作成者アカウント)を使用して DTS コンソールまたは DMS コンソールにログインします。
DTS コンソール
DTS コンソール にログインします。
左側のナビゲーションウィンドウで、データ同期 をクリックします。
ページの左上隅にあるドロップダウンリストから、データ同期インスタンスが配置されているリージョンを選択します。
DMS コンソール
注実際の操作は、DMS コンソールのモードおよびレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「DMS コンソールのレイアウトとスタイルのカスタマイズ」をご参照ください。
DMS コンソール にログインします。
上部のナビゲーションバーで、Data + AI にポインターを合わせ、 を選択します。
データ同期タスク の右側にあるドロップダウンリストから、データ同期インスタンスが配置されているリージョンを選択します。
タスクの作成 をクリックして、タスク構成ページに移動します。
ソースデータベースのクロスアカウント設定を構成します。
ソースデータベースの データベースタイプ、アクセス方法、および インスタンスリージョン を選択します。
Alibaba Cloud アカウント間でのデータレプリケーション を はい に設定します。

Alibaba Cloud アカウント に、アカウント A(ソースインスタンスの所有者)の ID を入力します。アカウント ID の確認方法については、「事前準備:クロスアカウント DTS タスクのための RAM 認可の構成」をご参照ください。
RAM ロール名 に、アカウント A が作成した RAM ロールの名前を入力します。例: ram-for-dts。 > 重要: > - ロール名のみを入力してください。RAM ユーザー名、RAM ロールの Alibaba Cloud リソース名(ARN)、およびデフォルトの DTS ロール AliyunDTSDefaultRole は入力しないでください。 > - この RAM ロールの作成手順については、「RAM ロールの作成:クロスアカウント DTS タスクのための RAM 認可の構成(シナリオ 3)」をご参照ください。
ターゲットデータベースのクロスアカウント設定を構成します。
ターゲットデータベースの データベースタイプ、アクセス方法、および インスタンスリージョン を選択します。
Alibaba Cloud アカウント間でのデータレプリケーション を はい に設定します。

Alibaba Cloud アカウント に、アカウント B(ターゲットインスタンスの所有者)の ID を入力します。アカウント ID の確認方法については、「事前準備:クロスアカウント DTS タスクのための RAM 認可の構成」をご参照ください。
RAM ロール名 に、アカウント B が作成した RAM ロールの名前を入力します。例: ram-for-dts。 > 重要: > - ロール名のみを入力してください。RAM ユーザー名、RAM ロールの Alibaba Cloud リソース名(ARN)、およびデフォルトの DTS ロール AliyunDTSDefaultRole は入力しないでください。 > - この RAM ロールの作成手順については、「RAM ロールの作成:クロスアカウント DTS タスクのための RAM 認可の構成(シナリオ 3)」をご参照ください。
残りのタスク構成を要件に応じて完了します。
トラブルシューティング
| エラー | 原因 | 解決方法 |
|---|---|---|
AliyunUIDNotFound:アカウントが DTS コンソールにログインしていない | Alibaba Cloud アカウント に入力したアカウント ID が無効であるか、または該当アカウントが一度も DTS コンソールにログインしたことがありません。 | 指定されたアカウントで DTS コンソールにログインし、初期化を行った後、再度試行してください。正しいアカウント ID の確認方法については、「事前準備:クロスアカウント DTS タスクのための RAM 認可の構成」をご参照ください。 |
AliyunUidFormat:Alibaba Cloud アカウント ID の形式が無効 | Alibaba Cloud アカウント に入力したアカウント ID が、標準の Alibaba Cloud UID 形式と一致していません。 | 有効なアカウント ID を入力してください。正しい形式および値の確認方法については、「事前準備:クロスアカウント DTS タスクのための RAM 認可の構成」をご参照ください。 |
AssumeRoleFail: Invalid role arn format | RAM ロールの ARN(例:acs:ram*)を RAM ロール名 に誤って入力しています。 | ロール名のみを入力してください。正しい値の確認方法については、「クロスアカウント DTS タスクのための RAM 認可の構成」をご参照ください。 |
AssumeRoleFail: The role not exists | RAM ロール名 に入力したロール名が存在しないか、または必要な権限が付与されていません。 | ロール名が正しいこと、および必要な権限が付与されていることを確認してください。詳細については、「クロスアカウント DTS タスクのための RAM 認可の構成」をご参照ください。 |
AssumeRoleFail: NoPermission: You are not authorized to do this action. You should be authorized by RAM. | RAM ロールに有効な権限が付与されていません。一般的な原因には、ロールへの必要な権限の付与漏れ、信頼ポリシーの編集漏れ、信頼ポリシー内のアカウント ID プレースホルダーの置き換え漏れ、および信頼ポリシーの保存漏れなどが挙げられます。 | RAM ロールに必要な権限を付与してください。詳細については、「クロスアカウント DTS タスクのための RAM 認可の構成」をご参照ください。 |
NoPermission: (Access Denied) You are not allowed to perform this action. Please contact your account administrators to grant permissions via RAM. | RAM ロール名 に指定した RAM ロールに必要な権限が付与されていません。 | RAM ロールに必要な権限を付与してください。詳細については、「クロスアカウント DTS タスクのための RAM 認可の構成」をご参照ください。 |
Abnormal.RamCheckUserRole:RAM ロール名に AliyunDTSDefaultRole が入力されている | RAM ロール名 に、デフォルトの DTS システムロールである AliyunDTSDefaultRole を入力しています。 | このクロスアカウントタスク用に作成したカスタム RAM ロールの名前を入力してください。詳細については、「クロスアカウント DTS タスクの RAM 認可を設定する」をご参照ください。 |