edit-icon download-icon

システムアーキテクチャ

最終更新日: Apr 17, 2018

このドキュメントでは、DTS のシステムアーキテクチャと、主要機能の基本的な設計コンセプトについて説明します。

システムアーキテクチャ

次の図は、DTS のシステムアーキテクチャを示しています。

DTS のシステムアーキテクチャ

  • システムの可用性

    DTS の各ユニットは、システム全体の高可用性を確保するために、プライマリデバイスとバックアップデバイスのようなワーカーのセットを構成しています。ディザスタリカバリシステムは、すべてのプライマリポイントのステータスをリアルタイムで検出します。実行の中断が発生すると、DTS はすぐにタスクをバックアップポイントに切り替え、タスクの実行を停止した場所から続行します。

  • 接続の信頼性

    データサブスクリプションおよび同期のインスタンスの場合、ディザスタリカバリシステムはソースおよびターゲットのエンドポイントも監視します。接続アドレスの変更が検出された場合、DTS は新しいデータソース接続に対して動的に対応し、自動的にエンドポイントに新しい接続アドレスを割り当てます。

データ移行の設計コンセプト

DTS のデータ移行プロセスは全体として、スキーマ移行、既存データ移行および変更データレプリケーションの 3 つの段階から構成されています。ゼロダウンタイムのデータ移行を実行する場合は、データ移行タスクを作成する際にこれらのすべての段階が必要です。

データ移行の設計コンセプトは次のとおりです。

データ移行の設計コンセプト

  • スキーマ移行

    DTS は、スキーマ移行の際にスキーマの変換を行います。異種データベース間で移行する場合、DTS はソースのスキーマの構造定義をソースのデータベースから取得し、スキーマをターゲットのデータベースの構造定義形式に変換し、変更したスキーマをターゲットインスタンスにインポートします。

  • 既存データ移行

    この段階では、DTS はすべての既存データをソースからターゲットに移行します。移行の一貫性を保証するために、変更データ取得ユニットは、移行が開始されたときからソースデータベースの変更データの取得を開始します。取得された変更データは、解決され、カプセル化され、ローカルキューに格納されます。

  • 変更データレプリケーション

    データ移行を実行した後、DTS はデータレプリケーションユニットを起動します。レプリケーションユニットは、変更データを取得し、それにマッピング、フィルタリング、およびカプセル化を実行した後に、ターゲットインスタンスにレプリケートします。

データサブスクリプションの設計コンセプト

データサブスクリプションは、リアルタイムで特定の RDS インスタンスから増分ログを取得するために使用されます。DTS SDK を使用すると、サブスクリプションによって取得したデータを、要件に応じて消費することができます。

データサブスクリプションの設計コンセプトは次のとおりです。

データサブスクリプションの設計コンセプト

データサブスクリプションインスタンスは、RDS インスタンスからの変更データを取得するためにログ取得ユニットを利用します。取得されたデータは、データ解決、フィルタリング、および標準フォーマット処理の後にローカルキューに格納されます。ログ取得ユニットは、データベースプロトコルに基づいてソースインスタンスを接続します。たとえば、ソースインスタンスが RDS MySQL の場合、ログ取得ユニットは Binlog ダンププロトコルを使用してソースインスタンスに接続します。

ログ取得ユニットと SDK データ消費プロセスの両方が高可用性を持っています。

  • ディザスタリカバリシステムは定期的にサブスクリプションインスタンスを監視します。ログ取得ユニットの異常を検出すると、DTS はプロセスが停止する前に通過した別の正常ポイントからログ取得ユニットを再起動します。

  • 同じサブスクリプションインスタンスに対して複数の SDK の消費が開始された場合、DTS は変更データを 1 つの消費者だけに送信します。実行の中断が発生した場合、DTS は別の正常な消費者に切り替え、プロセスが停止している場所からデータを送信し続けます。

データ同期の設計コンセプト

データ同期は、RDS インスタンスと RDS/ADS インスタンス間のリアルタイム同期をサポートします。

データ同期の設計コンセプトは次のとおりです。

データ同期の設計コンセプト

同期リンクの作成には次のものが含まれます。

  • 既存データの初期化

    ソースインスタンスの既存データは、ターゲットインスタンスにレプリケートされます。

  • 増分データの同期

    ソースデータベースの増分データは、ソースデータベースとターゲットデータベースが動的に同期されるまで、リアルタイムでターゲットデータベースに同期されます。

    増分データ同期は、次のユニットで構築されます。

    • 変更データ取得ユニット

      変更データ取得ユニットは、ソースインスタンスから未処理データを読み取り、データ解決、フィルタリング、および標準フォーマッティングを実行した後にローカルキューにデータを格納します。データベースプロトコルを使用してソースインスタンスに接続し、増分データを読み取ります。たとえば、ソースインスタンスが RDS MySQL の場合、変更データ取得ユニットは Binlog ダンププロトコルを使用してソースインスタンスに接続します。

    • 変更データ再生ユニット

      変更データ再生ユニットは、変更データ取得ユニットに増分データを要求し、カスタマイズされた同期オブジェクトに従って取得されたデータをフィルタリングします。その後、再生ユニットは、ログレコードをターゲットインスタンスに同期させ始めます。

    変更データ取得ユニットおよび変更データ再生ユニットの両方が高可用性を持っています。

    ディザスタリカバリシステムは、リンクの異常を検出すると、プロセスが停止する前に通過した別の正常ポイントでリンクを再開します。