

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 完成先決條件以設定 AWS Database Migration Service
<a name="CHAP_GettingStarted.Prerequisites"></a>

在本節中，您可以了解 的先決條件任務 AWS DMS，例如設定來源和目標資料庫。在這些任務中，您也會設定以 Amazon VPC 服務為基礎的虛擬私有雲端 (VPC) 來容納資源。此外，您還可以設定 Amazon EC2 執行個體，您會使用此執行個體來填入來源資料庫並驗證目標資料庫上的複寫。

**注意**  
填入來源資料庫最多需要 45 分鐘。

在此教學課程中，您將建立作為來源的 MariaDB 資料庫，以及作為目標的 PostgreSQL 資料庫。這個情況會使用常用、低成本資料庫引擎來示範複寫。使用不同的資料庫引擎示範在異質平台之間遷移資料 AWS DMS 的功能。

本教學課程中的資源使用美國西部 (奧勒岡) 區域。如果您想要使用不同的 AWS 區域，請指定您選擇的區域，而不是美國西部 （奧勒岡） 出現的位置。

**注意**  
為了簡單起見，您為本教學課程建立的資料庫不會使用加密或其他進階安全功能。您必須使用安全性功能，來確保生產資料庫的安全。如需詳細資訊，請參閱 [Amazon RDS 中的安全性](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.html)。

如需先決條件步驟，請參下列主題。

**Topics**
+ [建立 VPC](#CHAP_GettingStarted.Prerequisites.VPC)
+ [建立 Amazon RDS 參數群組](#CHAP_GettingStarted.Prerequisites.params)
+ [建立來源 Amazon RDS 資料庫](#CHAP_GettingStarted.Prerequisites.sdatabase)
+ [建立目標 Amazon RDS 資料庫](#CHAP_GettingStarted.Prerequisites.tdatabase)
+ [建立 Amazon EC2 用戶端](#CHAP_GettingStarted.Prerequisites.client)
+ [填入來源資料庫](#CHAP_GettingStarted.Prerequisites.Populate)

## 建立 VPC
<a name="CHAP_GettingStarted.Prerequisites.VPC"></a>

在本節中，您會建立 VPC 以包含您的 AWS 資源。使用 VPC 是使用 AWS 資源時的最佳實務，讓您的資料庫、Amazon EC2 執行個體、安全群組等在邏輯上有條不紊且安全。

在教學課程資源中使用 VPC，也可確保您在完成教學課程後刪除所有使用的資源。您必須先刪除 VPC 包含的所有資源，才能刪除 VPC。

**建立 VPC 以搭配 使用 AWS DMS**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)：// 開啟 Amazon VPC 主控台。

1. 在導覽窗格中，選擇 **VPC 儀表板**，然後選擇**建立 VPC**。

1. 在**建立 VPC** 頁面上輸入下列選項：
   + **要建立的資源**：**VPC 等**
   + **名稱標籤自動產生**：選擇**自動產生**，然後輸入 **DMSVPC**。
   + **IPv4 區塊**：**10.0.1.0/24**
   + **IPv6 CIDR 區塊**：**無 IPv6 CIDR 區塊**
   + **租用**：**預設**
   + **可用區域的數量**：2
   + **公有子網路數量**：2
   + **私有子網路數量**：2
   + **NAT 閘道 (\$1)**：**無**
   + **VPC 端點**：**無**

   選擇**建立 VPC**。

1. 在導覽窗格中，選擇 **VPC**。請留意 **DMSVPC** 的 VPC ID。

1. 在導覽窗格中，選擇**安全群組**。

1. 選擇名為**預設**的群組，該群組具有與您為 **DMSVPC** 記錄的 ID 相符的 **VPC ID**。

1. 選擇**傳入規則**索引標籤，然後選擇**編輯傳入規則**。

1. 選擇**新增規則**。新增類型為 **MySQL/Aurora** 的規則，然後選擇 **Anywhere-IPv4** 作為**來源**。

1. 再次選擇**新增規則**。**新增類型為 **PostgreSQL** 的規則，然後選擇 **Anywhere-IPv4** 作為來源**。

1. 選擇**儲存規則**。

## 建立 Amazon RDS 參數群組
<a name="CHAP_GettingStarted.Prerequisites.params"></a>

若要指定來源和目標資料庫的設定 AWS DMS，請使用 Amazon RDS 參數群組。若要允許資料庫之間的初始和進行中複寫，請務必設定以下內容：
+ 來源資料庫的二進位日誌，讓 AWS DMS 可以判斷需要複寫哪些增量更新。
+ 目標資料庫的複寫角色，因此 會在初始資料傳輸期間 AWS DMS 忽略外部金鑰限制。使用此設定， AWS DMS 可以不按順序遷移資料。

**建立參數群組以搭配 使用 AWS DMS**

1. 前往 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)，開啟 Amazon RDS 主控台。

1. 在導覽窗格中，選擇**參數群組**。

1. 在**參數群組**頁面上，選擇**建立參數群組**。

1. 在**建立參數群組**頁面上，輸入下列設定：
   + **參數群組系列**：**mariadb10.6**
   + **Group name (群組名稱)**:**dms-mariadb-parameters** 
   + **描述:** **Group for specifying binary log settings for replication**

   選擇**建立**。

1. 在**參數群組**頁面上，選擇 **dms-mariadb-parameters**，然後在 **dms-mariadb-parameters** 頁面上選擇**編輯**。

1. 將下列參數設為以下值：
   + **binlog\$1checksum**：**NONE**
   + **binlog\$1format**：**ROW**

   選擇**儲存變更**。

1. 在**參數群組**頁面上，再次選擇**建立參數群組**。

1. 在**建立參數群組**頁面上，輸入下列設定：
   + **參數群組系列**：**postgres16**
   + **Group name (群組名稱)**:**dms-postgresql-parameters** 
   + **描述:** **Group for specifying role setting for replication**

   選擇**建立**。

1. 在**參數群組**頁面上，選擇 **dms-postgresql-parameters**。

1. 在 **dms-postgresql-parameters** 頁面上，選擇**編輯**，然後將 **session\$1replication\$1role parameter** 設定為**複本**。請注意，**session\$1replication\$1role ** 參數不在參數的第一頁上。使用分頁控制項或搜尋欄位來尋找此參數。

1. 選擇**儲存變更**。

## 建立來源 Amazon RDS 資料庫
<a name="CHAP_GettingStarted.Prerequisites.sdatabase"></a>

使用下列程序建立來源 Amazon RDS 資料庫。

**若要建立來源 Amazon RDS for MariaDB 資料庫**

1. 前往 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)，開啟 Amazon RDS 主控台。

1. 在**儀表板**頁面的**資料庫**區段中選擇**建立資料庫**。請勿在頁面頂端的**嘗試適用於 MySQL 和 PostgreSQL 的新 Amazon RDS 多可用區部署選項**區段中選擇**建立資料庫**。

1. 在**建立資料庫**頁面上，設定下列選項：
   + **選擇資料庫建立方法**：選擇**標準建立**。
   + **引擎選項**：對於**引擎類型**選擇 **MariaDB**。對於**版本**，請保持選取 **MariaDB 10.6.14**。
   + **範本**：選擇**開發/測試**。
   + **設定**：
     + **資料庫執行個體識別碼**：輸入 **dms-mariadb**。
     + 在**憑證設定**區段中輸入下列內容：
       + **主要使用者名稱**：保持 **admin** 的身分。
       + 不勾選 ** AWS Secrets Manager 中的管理主登入**資料。
       + **自動產生密碼**：保持未選取的狀態。
       + **主密碼**：輸入 **changeit**。
       + **確認密碼**：再次輸入 **changeit**。
   + **執行個體組態**：
     + **資料庫執行個體類別**：將**標準類別**保持選取狀態。
     + 對於**資料庫執行個體類別**，選擇 **db.m5.large**。
   + **儲存**：
     + 清除**啟用儲存自動擴展**方塊。
     + 其他設定維持不變。
   + **可用性與耐久性**：將**不要建立備用執行個體**保持選取的狀態。
   + **連線能力**：
     + **運算資源**：保持**不連線至 EC2 運算資源**
     + **網路類型**：將 **IPv4** 保持選取的狀態。
     + **虛擬私有雲端**：**DMSVPC-vpc**
     + **公開存取**：**是**。您必須啟用公有存取權，才能使用 AWS Schema Conversion Tool。
     + **可用區域**：**us-west-2a**
     + 其他設定維持不變。
   + **資料庫身份驗證**：將**密碼身份驗證**保持選取的狀態。
   + 在**監控**下清除**開啟績效詳情**方塊。展開**附加組態**區段，然後清除**啟用增強型監控**方塊。
   + 展開**附加組態**：
     + 在**資料庫選項**下，針對**初始資料庫名稱**輸入 **dms\$1sample**。
     + 在**資料庫參數群組**下，選擇 **dms-mariadb-parameters**。
     + 對於**選項群組**，將 **default:mariadb-10-6** 保持選取的狀態。
     + 在 **Backup (備份)** 底下，執行下列動作：
       + 將**啟用自動備份**保持選取的狀態。來源資料庫必須啟用自動備份，才能支援進行中複寫。
       + 對於**備份保留期間**，選擇 **1 天**。
       + 對於**備份時段**，將**沒有偏好**保持選取的狀態。
       + 清除**將標籤複製到快照**方塊。
       + 取消** AWS 勾選另一個區域中的啟用複寫**。
     + 在**加密**下，清除**啟用加密**方塊。
     + 將**日誌匯出**區段維持不變。
     + 在**維護**下，清除**啟用自動次要版本升級**方塊，並將**維護時段**設定保持為**沒有偏好**。
     + 將**啟用刪除保護**保持不勾選的狀態。

1. 選擇**建立資料庫**。

## 建立目標 Amazon RDS 資料庫
<a name="CHAP_GettingStarted.Prerequisites.tdatabase"></a>

重複上述程序以建立目標 Amazon RDS 資料庫，並進行下列變更。

**若要建立目標 RDS for PostgreSQL 資料庫**

1. 重複前述程序的步驟 1 和 2。

1. 在**建立資料庫**頁面上設定相同的選項，但下列選項除外：

   1. 針對**引擎選項**，選擇 **PostgreSQL**。

   1. 針對**版本**，選擇可用的 **PostgreSQL 16** 版本

   1. 對於 **DB instance identifier** (資料庫執行個體識別碼)，請輸入 **dms-postgresql**。

   1. 對於**主要使用者名稱**，將 **postgres** 保持選取的狀態。

   1. 對於**資料庫參數群組**，選擇 **dms-postgresql-parameters**。

   1. 清除**啟用自動備份**。

1. 選擇**建立資料庫**。

## 建立 Amazon EC2 用戶端
<a name="CHAP_GettingStarted.Prerequisites.client"></a>

您會在本節中建立 Amazon EC2 用戶端。您可以使用此用戶端將要複寫的資料填入來源資料庫。您也可以使用此用戶端，透過在目標資料庫上執行查詢來驗證複寫。

與透過網際網路存取資料庫相比，使用 Amazon EC2 用戶端存取資料庫具有以下優勢：
+ 您可以將資料庫的存取限制在相同 VPC 中的用戶端。
+ 我們已確認您在本教學課程中使用的工具可在 Amazon Linux 2023 上運作且能夠輕鬆安裝，建議您在本教學課程中使用 Amazon Linux 2023。
+ VPC 中元件之間的資料操作通常比網際網路上的資料操作效能更好。

**建立和設定 Amazon EC2 用戶端以填入來源資料庫**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在**儀表板**上選擇**啟動執行個體**。

1. 在**啟動執行個體**頁面上輸入下列值：

   1. 在**名稱和標籤**區段的**名稱**中輸入 **DMSClient**。

   1. 在**應用程式和 OS 映像 (Amazon Machine Image)** 區段中，將設定保持原樣。

   1. 在**執行個體類型**區段中選擇 **t2.xlarge**。

   1. 在**金鑰對 (登入)** 區段中選擇**建立新金鑰對**。

   1. 在**建立金鑰對**頁面上，輸入下列內容：
      + **Key pair name (金鑰對名稱):** **DMSKeyPair**
      + **金鑰對類型**：保留為 **RSA**。
      + **私有金鑰檔案格式**：在 MacOS 或 Linux 上為 OpenSSH 選擇 **pem**，或在 Windows 上為 PuTTY 選擇 **ppk**。

      出現提示時儲存金鑰檔案。
**注意**  
您也可以使用現有的 Amazon EC2 金鑰對，而不是新建金鑰對。

   1. 在**網路設定**區段中選擇**編輯**。選擇下列設定：
      + **VPC - *必要***：選擇內含您為 **DMSVPC-vpc** VPC 記錄之 ID 的 VPC。
      + **子網路**：請先選擇公有子網路。
      + **自動指派公有 IP**：選擇**啟用**。

      其餘設定維持不變，然後選擇**啟動執行個體**。

## 填入來源資料庫
<a name="CHAP_GettingStarted.Prerequisites.Populate"></a>

您會在此區段中找到來源資料庫和目標資料庫供稍後使用的端點，並使用下列工具來填入來源資料庫：
+ Git，下載填入來源資料庫的指令碼。
+ MariaDB 用戶端，可執行此指令碼。

### 取得端點
<a name="CHAP_GettingStarted.Prerequisites.Populate.Hosts"></a>

尋找並記下 RDS for MariaDB 和 RDS for PostgreSQL 資料庫執行個體的端點，以供日後使用。

**尋找資料庫執行個體端點**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)：// 開啟 Amazon RDS 主控台。

1. 在導覽窗格中選擇**資料庫**。

1. 選擇 **dms-mariadb** 資料庫，並記下資料庫的**端點**值。

1. 針對 **dms-postgresql** 資料庫重複上述步驟。

### 填入來源資料庫
<a name="CHAP_GettingStarted.Prerequisites.Populate.Git"></a>

接著，連線至您的用戶端執行個體、安裝必要的軟體、從 Git 下載 AWS 範例資料庫指令碼，然後執行指令碼來填入來源資料庫。

**若要填入來源資料庫**

1. 使用您在先前步驟中儲存的主機名稱和公有金鑰連接至用戶端執行個體。

   如需連線至 Amazon EC2 執行個體的詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[存取執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html)。
**注意**  
如果您使用 PuTTY，請在**連線**設定頁面上啟用 TCP 保持連線，如此連線就不會因閒置而逾時。

1. 安裝 Git、MariaDB 和 PostgreSQL。根據需要確認安裝。

   ```
   $ sudo yum install git
   $ sudo dnf install mariadb105
   $ sudo dnf install postgresql15
   ```

1. 執行以下命令，即可從 GitHub 下載資料庫建立指令碼。

   ```
   git clone https://github.com/aws-samples/aws-database-migration-samples.git
   ```

1. 切換至 `aws-database-migration-samples/mysql/sampledb/v1/` 目錄。

1. 執行下列命令。以 `dms-mariadb.cdv5fbeyiy4e.us-east-1.rds.amazonaws.com` 為例，為您先前記下的來源 RDS 執行個體提供端點。

   ```
   mysql -h dms-mariadb.abcdefghij01.us-east-1.rds.amazonaws.com -P 3306 -u admin -p dms_sample < ~/aws-database-migration-samples/mysql/sampledb/v1/install-rds.sql
   ```

1. 讓資料庫建立指令碼執行。此指令碼最多需要 45 分鐘，才能建立結構描述並填入資料。您可以放心地忽略指令碼顯示的錯誤和警告。