

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

# 設定用於 DMS 結構描述轉換的網路
<a name="instance-profiles-network"></a>

DMS 結構描述轉換是一種無伺服器功能。若要連線至資料庫，它會將彈性網路界面 (ENI) 放置在 VPC 內的子網路中。當您建立執行個體描述檔時，您可以指定要使用的 VPC、子網路群組和安全群組。您可以為您的帳戶使用預設 VPC AWS 區域，也可以建立新的 VPC。

為了確保 DMS 結構描述轉換與資料提供者之間的適當連線，請設定下列網路元件：
+ **安全群組** – 在與 DMS 結構描述轉換相關聯的安全群組上設定輸出規則，以允許傳出流量到您的來源和目標資料庫網路。在資料庫安全群組上設定輸入規則，以允許來自 DMS 結構描述轉換安全群組的傳入流量。
+ **網路 ACLs** – 如果您的子網路使用網路存取控制清單，請確定它們允許 DMS 結構描述轉換子網路與資料庫子網路之間的流量。
+ **路由表** – 確定與 DMS 結構描述轉換子網路相關聯的路由表具有通往來源和目標資料庫的路由。這可能包括 VPC 對等路由、VPN 閘道路由或 NAT 閘道路由，視您的組態而定。
+ **子網路** – DMS 結構描述轉換將其 ENI 放置在子網路群組中定義的子網路中。子網路群組必須在不同的可用區域中包含至少兩個子網路。

**重要**  
由於 DMS 結構描述轉換是無伺服器，因此 ENI IP 地址可以隨時變更。請勿使用特定 IP 地址進行允許清單。反之，請在資料庫安全群組輸入規則中參考 DMS 結構描述轉換安全群組，或透過 NAT 閘道路由傳出流量，並使用相關聯的彈性 IP 地址進行內部部署連線。

您可以搭配 DMS 結構描述轉換使用數種不同的網路組態。以下是用於結構描述轉換之網路的常見組態。在可行的情況下，我們建議您在與目標端點相同的區域中建立執行個體描述檔，並使用與目標端點相同的 VPC 或子網路。

**Topics**
+ [針對來源和目標資料提供者使用單一 VPC](#instance-profiles-network-one-vpc)
+ [針對來源和目標資料提供者使用多個 VPC](#instance-profiles-network-multiple-vpc)
+ [針對來源和目標資料提供者使用共用 VPCs](#instance-profiles-network-shared-vpc)
+ [使用 Direct Connect 或 VPN 將網路設定為 VPC](#instance-profiles-network-vpn)
+ [使用網際網路連線至 VPC](#instance-profiles-network-internet)
+ [使用 DNS 解析網域端點](#instance-profiles-network-dns)
+ [針對 DMS 結構描述轉換的網路問題進行故障診斷](#instance-profiles-network-troubleshooting)

## 針對來源和目標資料提供者使用單一 VPC
<a name="instance-profiles-network-one-vpc"></a>

DMS 結構描述轉換最簡單的網路組態是單一 VPC 組態。在此設定中，執行個體描述檔會指定來源和目標資料庫所在的相同 VPC。DMS 結構描述轉換在該 VPC 中使用 ENI 連線到這兩個資料庫。

下圖顯示一個組態，其中來源資料庫連接到 DMS 結構描述轉換，而結構描述會轉換為目標資料庫，所有都在同一個 VPC 內。

![在單一 VPC 中透過相同子網路通訊的來源資料庫、DMS 結構描述轉換和目標資料庫。](http://docs.aws.amazon.com/zh_tw/dms/latest/userguide/images/sc_network_one_vpc.png)


資料庫上的安全群組必須允許從 DMS 結構描述轉換安全群組傳入資料庫連接埠。請勿使用特定 ENI IP 地址進行允許清單，因為 ENI IP 地址可能隨時變更。

下列範例顯示資料庫安全群組的輸入規則。在這些範例中， `sg-1234567890abcdef0`是與 DMS 結構描述轉換相關聯的安全群組。使用資料庫設定為接聽的連接埠。


**資料庫安全群組的傳入規則範例**  

| Type | 通訊協定 | 連接埠範圍 | 來源 | 說明 | 
| --- | --- | --- | --- | --- | 
| Oracle-RDS | TCP | 1521 | sg-1234567890abcdef0 | Oracle 資料庫 | 
| MySQL/Aurora | TCP | 3306 | sg-1234567890abcdef0 | MySQL 或 Aurora MySQL 資料庫 | 
| PostgreSQL | TCP | 5432 | sg-1234567890abcdef0 | PostgreSQL 或 Aurora PostgreSQL 資料庫 | 
| MSSQL | TCP | 1433 | sg-1234567890abcdef0 | Microsoft SQL Server 資料庫 | 
| 自訂 TCP | TCP | 您的連接埠 | sg-1234567890abcdef0 | 使用自訂連接埠的任何其他資料庫 | 

## 針對來源和目標資料提供者使用多個 VPC
<a name="instance-profiles-network-multiple-vpc"></a>

如果您的來源和目標資料庫位於不同的 VPCs，包括不同 AWS 帳戶或區域的 VPCs，您可以將執行個體描述檔設定為使用其中一個 VPCs，然後使用 VPCs 對等互連連結兩個 VPC。您也可以使用其他 VPC-to-VPC連線選項，例如 AWS Transit Gateway。如需詳細資訊，請參閱 [Amazon VPC-to-Amazon VPC 連線選項](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/amazon-vpc-to-amazon-vpc-connectivity-options.html)。

*VPC 互連連線*是兩個 VPCs之間的網路連線，使用每個 VPC 的私有 IP 地址來啟用路由，就好像它們位於相同的網路中一樣。您可以在自己的 VPCs 之間建立 VPC 對等互連、在另一個 AWS 帳戶中建立 VPC，或在不同的 VPC 之間建立 VPC 對等互連 AWS 區域。如需 VPC 對等互連的詳細資訊，請參閱《Amazon VPC 使用者指南》**中的 [VPC 對等互連](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-peering.html)。

下圖顯示使用 VPC 對等互連的組態。在這裡，一個 VPC 中的來源資料庫會透過 VPC 對等互連連接到另一個包含 DMS 結構描述轉換和目標資料庫的 VPC。

![VPC A 中的來源資料庫透過 VPC 對等互連連接到 VPC B 中的 DMS 結構描述轉換和目標資料庫。](http://docs.aws.amazon.com/zh_tw/dms/latest/userguide/images/sc_network_multiple_vpcs.png)


若要實作 VPC 對等互連，請遵循《*Amazon VPC 使用者指南*》中的「[使用 VPC 對等互連連線](https://docs.aws.amazon.com/vpc/latest/peering/working-with-vpc-peering.html)」中的指示進行操作。請確定任一 VPC 的路由表包含另一個 VPC 的 CIDR 區塊。例如，假設 VPC A 使用目的地 10.0.0.0/16，而 VPC B 使用目的地 172.31.0.0/16。在此情況下，VPC A 的路由表應包含 172.31.0.0/16，VPC B 的路由表必須包含 10.0.0.0/16。如需詳細資訊，請參閱《*Amazon VPC 對等互連指南*》文件中的「[更新 VPC 對等互連的路由表](https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-routing.html)」。

資料庫上的安全群組必須允許從 DMS 結構描述轉換安全群組傳入資料庫連接埠。如果您的 VPCs位於不同的 AWS 帳戶或不同的區域，則可能不支援安全群組參考。在此情況下，請改用對等 VPC 的子網路 CIDR 範圍。

下列範例顯示 VPC A 中來源資料庫的輸入規則，允許從 VPC B (172.31.1.0/24) 中的 DMS 結構描述轉換子網路 CIDR 範圍進行存取。使用資料庫設定為接聽的連接埠。如果兩個 VPCs位於相同的區域和帳戶中，我們建議您使用安全群組參考，而不是 CIDR 範圍，以實現更嚴格的存取控制。


**資料庫安全群組的傳入規則範例 (VPC 對等互連）**  

| Type | 通訊協定 | 連接埠範圍 | 來源 | 說明 | 
| --- | --- | --- | --- | --- | 
| Oracle-RDS | TCP | 1521 | 172.31.1.0/24 | Oracle 資料庫 | 
| MySQL/Aurora | TCP | 3306 | 172.31.1.0/24 | MySQL 或 Aurora MySQL 資料庫 | 
| PostgreSQL | TCP | 5432 | 172.31.1.0/24 | PostgreSQL 或 Aurora PostgreSQL 資料庫 | 
| MSSQL | TCP | 1433 | 172.31.1.0/24 | Microsoft SQL Server 資料庫 | 
| 自訂 TCP | TCP | 您的連接埠 | 172.31.1.0/24 | 使用自訂連接埠的任何其他資料庫 | 

## 針對來源和目標資料提供者使用共用 VPCs
<a name="instance-profiles-network-shared-vpc"></a>

AWS Database Migration Service 會將與組織中參與客戶帳戶共用的子網路視為相同帳戶中的一般子網路。

您可以透過建立複寫子網路群組，將網路設定為在自訂子網路或 VPCs中操作。當您建立複寫子網路群組時，您可以從特定 VPC 指定子網路。子網路清單必須在不同的可用區域中包含至少兩個子網路，且所有子網路都必須位於相同的 VPC 中。

如果您使用共用 VPC，請建立複寫子網路群組，以對應至您要從共用 VPC 使用的子網路。當您建立執行個體描述檔時，請指定共用 VPC 的複寫子網路群組，以及您為共用 VPC 建立的 VPC 安全群組。

請注意下列與使用共用 VPC 相關的事項：
+ VPC 擁有者無法與參與者共用資源，但參與者可以在擁有者的子網路中建立服務資源。
+ VPC 擁有者無法存取參與者建立的資源，因為所有資源都是帳戶特定的。不過，只要您將執行個體描述檔設定為使用共用 VPC，DMS 結構描述轉換就可以存取 VPC 中的資源，無論擁有的帳戶為何，只要有正確的許可即可。
+ 資源是帳戶特定的，因此其他參與者無法存取其他帳戶擁有的資源。您無權授予其他帳戶許可，讓他們存取在共用 VPC 中使用您帳戶建立的資源。

## 使用 Direct Connect 或 VPN 將網路設定為 VPC
<a name="instance-profiles-network-vpn"></a>

遠端網路可以使用多種選項連線至 VPC，例如 Direct Connect 或軟體或硬體 VPN 連線。您可以使用這些選項將內部網路延伸到 AWS 雲端，藉此整合現有的現場服務。可整合的現場服務包括監控、驗證、安全性、資料或其他系統。透過使用此類型的網路延伸，您可以將現場服務無縫連線至 託管的資源 AWS，例如 VPC。您可以使用此組態來轉換來源內部部署資料庫。

下圖顯示一個組態，其中來源端點是企業資料中心內的現場部署資料庫。它使用 Direct Connect 或 VPN 連接到包含 DMS 結構描述轉換和目標資料庫的 VPC。

![透過 Direct Connect 或 VPN 連接到包含 DMS 結構描述轉換和目標資料庫之 VPC 的內部部署來源資料庫。](http://docs.aws.amazon.com/zh_tw/dms/latest/userguide/images/sc_network_vpn.png)


在此組態中，設定下列網路元件：
+ 與 DMS 結構描述轉換子網路相關聯的路由表必須包含將目的地為現場部署 CIDR 範圍的流量傳送至 Virtual Private Gateway (VGW) 或 Transit Gateway 的路由。
+ NAT 或橋接主機上的安全群組必須允許所需資料庫連接埠上來自 DMS 結構描述轉換安全群組的傳入流量。
+ DMS 結構描述轉換安全群組必須允許傳出流量到內部部署資料庫連接埠。

請勿使用特定 ENI IP 地址進行允許清單，因為 ENI IP 地址可能隨時變更。如需詳細資訊，請參閱《*AWS Site-to-Site VPN 使用者指南*》中的「[建立站點對站點 VPN 連接](https://docs.aws.amazon.com/vpn/latest/s2svpn/SetUpVPNConnections.html#vpn-create-vpn-connection)」。

## 使用網際網路連線至 VPC
<a name="instance-profiles-network-internet"></a>

如果您不使用 VPN 或 Direct Connect 連線到 AWS 資源，您可以使用網際網路連線到來源資料庫。此組態使用具有私有子網路的 VPC，以及提供傳出網際網路存取的 NAT 閘道。您可以使用此組態來轉換具有公有存取性的來源內部部署資料庫。

下圖顯示 VPC 中的 DMS 結構描述轉換使用 NAT 閘道透過網際網路連線至內部部署來源資料庫的組態。

![透過網際網路和 NAT 閘道連接到私有子網路中 DMS 結構描述轉換的內部部署來源資料庫。](http://docs.aws.amazon.com/zh_tw/dms/latest/userguide/images/sc_network_igw.png)


若要啟用從 VPC 到可公開存取來源資料庫的連線，請使用透過 NAT 閘道連線至網際網路的私有子網路來設定 VPC。NAT 閘道提供一致的公有 IP 地址，您可以將其新增至來源資料庫的防火牆允許清單，允許私有子網路中的資源透過網際網路連線至來源資料庫。

VPC 路由表必須包含路由規則，這些規則預設會將*目的地不是* VPC 的流量傳送至 NAT 閘道。在此組態中，與資料提供者的連線似乎來自 NAT 閘道的公用 IP 地址。如需詳細資訊，請參閱《Amazon VPC 使用者指南》**中的 [VPC 路由表](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html)。

若要將網際網路閘道新增至 VPC，請參閱《Amazon VPC 使用者指南》**中的[連接網際網路閘道](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html#Add_IGW_Attach_Gateway)。

## 使用 DNS 解析網域端點
<a name="instance-profiles-network-dns"></a>

如果您需要解析資料庫的網域端點，您可以使用 Amazon Route 53 Resolver。如需使用 Route 53 DNS Resolver 的相關資訊，請參閱 [Route 53 Resolver 入門](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-getting-started.html)。

如需如何使用自己的內部部署名稱伺服器，使用 Amazon Route 53 Resolver 解析特定端點的相關資訊，請參閱[使用自己的內部部署名稱伺服器](CHAP_BestPractices.md#CHAP_BestPractices.Rte53DNSResolver)。

## 針對 DMS 結構描述轉換的網路問題進行故障診斷
<a name="instance-profiles-network-troubleshooting"></a>

下列各節說明使用 DMS 結構描述轉換時可能遇到的常見網路相關錯誤，以及如何解決這些錯誤。

### 資料庫連線錯誤
<a name="instance-profiles-network-troubleshooting-connectivity"></a>

當 DMS 結構描述轉換無法連線到來源或目標資料庫時，您可能會看到下列錯誤訊息：
+ `Could not connect to your {{{origin}}} database at '{{{serverName}}}:{{{port}}}'. Verify your network configuration, security groups, and that the database server is reachable.`

  其中 {{{origin}}} 是 `source`或 `target`，{{{serverName}}} 是您的資料庫伺服器主機名稱，而 {{{port}}} 是資料庫連接埠號碼。

您也可以檢查帳戶中的 DMS 結構描述轉換 Amazon CloudWatch logs，尋找連線失敗的特定原因。

若要解決這些錯誤，請檢查下列項目：

1. **驗證伺服器名稱和連接埠** – 確認資料提供者中設定的伺服器名稱和連接埠正確無誤。您可以使用 AWS DMS 主控台或 CLI AWS 檢查資料提供者設定。如需尋找資料庫端點和連接埠的詳細資訊，請參閱《[Amazon Relational Database Service 使用者指南》中的尋找 Amazon RDS 資料庫執行個體的連線資訊](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_CommonTasks.Connect.EndpointAndPort.html)。 *Amazon Relational Database Service *

1. **檢查安全群組規則** – 驗證與 DMS 結構描述轉換相關聯的安全群組是否允許資料庫連接埠上的傳出 （傳出） TCP 流量。同時驗證資料庫上的安全群組是否允許來自 DMS 結構描述轉換安全群組的傳入 （傳入） TCP 流量。如需使用安全群組規則的詳細資訊，請參閱《*Amazon VPC 使用者指南*》中的[使用安全群組規則](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-security-group-rules.html)。

1. **檢查網路 ACLs** – 驗證 DMS 結構描述轉換子網路和資料庫子網路上的網路 ACLs 是否允許資料庫連接埠上雙向的流量。

1. **檢查路由表** – 確認與 DMS 結構描述轉換子網路相關聯的路由表具有到達資料庫的正確路由。如果您使用 VPC 對等互連、VPN 或 Direct Connect，請確定有對應的路由。

1. **檢查 DMS 結構描述轉換 Amazon CloudWatch logs** – 檢閱 DMS 結構描述轉換日誌以取得詳細的錯誤資訊。您可以在遷移專案的**結構描述轉換**索引標籤上找到日誌的連結，或使用 AWS CLI 擷取包含例外狀況的日誌項目。

   首先，尋找您的 DMS 結構描述轉換日誌群組。日誌群組名稱以 開頭，`dms-tasks-sct`並包含遷移專案的最後一個 ARN 區塊：

   ```
   aws logs describe-log-groups \
     --log-group-name-prefix dms-tasks-sct
   ```

   然後，使用 `filter-log-events`命令在日誌群組中搜尋例外狀況：

   ```
   aws logs filter-log-events \
     --log-group-name {{dms-tasks-sct-your-migration-project}} \
     --filter-pattern "Exception" \
     --start-time {{start_timestamp_ms}} \
     --end-time {{end_timestamp_ms}}
   ```

   您可以將 取代`Exception`為其他模式，例如 `ERROR`或 `"Could not connect"`，以縮小結果範圍。`--start-time` 和 `--end-time`值是以毫秒為單位的 Unix 時間戳記。