DMS Overview

整理 AWS DMS 的 Replication Instance、Endpoint、Task 類型、同構與異構遷移,以及建立遷移的步驟。

發佈 ~2 分鐘 #RDS

Concept

  • Replication Instance:負責執行複製作業的 EC2,可以同時執行好幾個 replication jobs,取決於 EC2 規格與實際搬遷需求
  • Source / Target Endpoint:讓 Replication Instance 存取 Source / Target Instance (圖示請見 AWS DMS Workshop:一個 replication instance 同時執行多個 tasks 的示意圖,連結見文末 Workshop Studio)

Task Types

  1. 一次性遷移(Full Load)
    • 將來源資料庫的完整數據集一次性遷移至目標資料庫。
    • 適用於單次數據轉移場景。
  2. 持續遷移(CDC - Change Data Capture)
    • 實時捕獲來源資料庫的變更(如插入、更新、刪除),並將這些變更同步應用到目標資料庫。
    • 適合需要最小停機時間或持續數據同步的場景。
  3. 一次性遷移(Full Load)& 持續遷移(CDC - Change Data Capture)
    • 遷移現有的來源資料並複寫持續變更。

DMS 類型

  1. 同構遷移(Homogeneous Migration)
    • 定義:來源資料庫與目標資料庫使用相同的資料庫引擎。
    • 範例:從本地 MySQL 遷移至 AWS RDS MySQL。
    • 特點:
      • 由於來源與目標引擎相同,數據結構、SQL 語法和配置高度相容,遷移過程相對簡單。
      • DMS 可直接複製數據和表結構,無需額外的轉換工具。
    • 適用場景:升級現有資料庫至雲端,或將資料庫遷移至更高性能的 AWS 服務(如從自建 MySQL 到 Aurora MySQL)。
  2. 異構遷移(Heterogeneous Migration)
    • 定義:來源資料庫與目標資料庫使用不同的資料庫引擎。
    • 範例:從 Oracle 遷移至 PostgreSQL。
    • 特點:
      • 由於引擎不同,數據類型、SQL 語法和 schema 可能存在差異,遷移過程更為複雜。
      • AWS 提供 Schema Conversion Tool(SCT),用於自動轉換資料庫 schema、存儲過程和其他代碼,減少手動調整的工作量。
    • 適用場景:轉換資料庫引擎以滿足業務需求,例如從傳統商業資料庫(如 Oracle)遷移至開源資料庫(如 PostgreSQL)以降低成本。

Steps

  1. 打通雲地網路
  2. 於 DMS 服務介面建立「replication instance」
  3. MySQL as Source Server 需要調整的設置:Using a MySQL compatible database as a source for homogeneous data migrations in AWS DMS - AWS Database Migration Service
  4. 於 DMS 服務建立「Source / Target Endpoint」
    • 當要把同個 DB 裡的資料拆到多個新的 target DB 內時,可以使用同個 endpoint、拆多個 replication task 實作 [ref]
  5. 於 DMS 服務建立「replication task」,需指定 replication instance / source & target endpoint / migration type

Reference