設定複寫執行個體的網路 - AWS Database Migration Service

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

設定複寫執行個體的網路

AWS DMS 一律會根據 Amazon VPC 在虛擬私人雲端中建立複寫執行個體。您可以指定您複寫執行個體所在的 VPC。您可以將預設 VPC 用於您的帳戶和 AWS 區域,也可以建立新的 VPC。

請確保配置複寫執行個體 VPC 的彈性網路介面與安全群組相關聯。此外,請確定此安全群組的規則允許所有連接埠上的所有流量離開 (輸出) VPC。此方法可允許複寫執行個體與來源和目標資料庫端點通訊,只要在端點上啟用正確的輸入規則即可。我們建議您使用端點的預設設定,允許在所有連接埠上輸出到所有地址。

來源和目標端點會透過連線到 VPC 或位於 VPC 內部,來存取 VPC 內部的複寫執行個體。資料庫端點必須包含網路存取控制清單 (ACL) 和安全群組規則 (若適用的話),允許來自複寫執行個體的傳入存取。設定方式取決於您使用的網路組態。您可以使用複寫執行個體 VPC 安全群組、複寫執行個體的私有或公有 IP 地址,或是 NAT 閘道的公有 IP 地址。這些來自網路的連線可讓您用於資料遷移。

注意

由於 IP 地址可能會因基礎設施的變更而變更,因此建議您使用 VPC CIDR 範圍,或透過 NAT GW 關聯的彈性 IP 路由複寫執行個體輸出流量。如需建立 VPC (包括 CIDR 區塊) 的詳細資訊,請參閱《Amazon Virtual Private Cloud 使用者指南》中的使用 VPC 和子網路。如需彈性 IP 地址的相關資訊,請參閱《Amazon Elastic Compute Cloud 使用者指南》中的彈性 IP 地址

資料庫遷移的網路組態

您可以搭配 AWS Database Migration Service 使用數種不同的網路組態。以下是用於資料庫遷移的網路常見組態。

可行的話,建議您在與目標端點相同的區域中,以及在與目標端點相同的 VPC 或子網路中建立 DMS 複寫執行個體。

所有資料庫遷移元件皆位於單一 VPC 的組態

最簡單的資料庫遷移網路,便是讓來源端點、複寫執行個體和目標端點皆位於相同的 VPC 內。若來源和目標端點位於 Amazon RDS 資料庫執行個體或 Amazon EC2 執行個體上,這便是個不錯的選擇。

下圖會顯示組態,其中 Amazon EC2 執行個體上的資料庫會連線到複寫執行個體,並且資料會遷移到 Amazon RDS 資料庫執行個體。

AWS Database Migration Service 全部於一個 VPC 範例

用於此組態的 VPC 安全群組必須在資料庫連接埠上允許從複寫執行個體輸入。您可以使用幾種方式執行此動作。您可以確保複寫執行個體所使用的安全群組已輸入此端點。或者,您也可以允許複寫執行個體的 VPC CIDR 範圍、NAT GW 彈性 IP 或私有 IP 地址 (如果您使用的話)。但是我們不建議您使用複寫執行個體的私有 IP 地址,因為如果複寫 IP 地址變更,複寫就可能會中斷。

使用多個 VPC 的組態

若來源端點和目標端點位於不同的 VPC,您可以在其中一個 VPC 中建立複寫執行個體。然後使用 VPC 對等互連來連結兩個 VPC。

VPC 對等互連連線是兩個 VPC 間的聯網連線,允許使用每個 VPC 的私有 IP 地址進行路由,就像它們位於相同的網路。您可以在自己的 VPC、使用其他 AWS 帳戶中的 VPC 或不同區域中的 VPC 之間建立 VPC 對等連線。 AWS 如需 VPC 對等互連的詳細資訊,請參閱《Amazon VPC 使用者指南》中的 VPC 對等互連

下圖顯示使用 VPC 對等互連的範例組態。在此處,VPC 中 Amazon EC2 執行個體上的來源資料庫會使用 VPC 對等互連連線到 VPC。此 VPC 包含複寫執行個體和 Amazon RDS 資料庫執行個體上的目標資料庫。

AWS Database Migration Service 複製實例

若要實作 VPC 對等互連,請遵循 Amazon 虛擬私有雲端、VPC 對等互連文件中的使用 VPC 對等互連中的指示。請確定某個 VPC 的路由表包含另一個 VPC 的 CIDR 區塊。例如,如果 VPC A 使用的是目的地 10.0.0/16,而 VPC B 使用的是目的地 172.31.0.0,則 VPC A 的路由表應包含 172.31.0.0,而 VPC B 的路由表必須包含 10.0.0.0/16。如需詳細資訊,請參閱 Amazon Virtual Private Cloud、VPC 對等互連文件中的更新 VPC 對等互連的路由表

用於此組態的 VPC 安全群組必須在資料庫連接埠上允許從複寫執行個體輸入,或者允許在對等互連 VPC 的 CIDR 區塊上輸入。

使用共用 VPC 的組態

AWS DMS 對待組織中參與客戶帳戶共用的子網路,就像同一帳戶中的一般子網路一樣。以下是如何 AWS DMS 處理 VPC、子網路以及如何使用共用 VPC 的說明。

您可以透過建立 ReplicationSubnetGroup 物件,將網路組態設定為在自訂子網路或 VPC 中運作。建立 ReplicationSubnetGroup 時,您可以選擇從帳戶中的特定 VPC 指定子網路。您指定的子網路清單必須包含位於不同可用區域中的至少兩個子網路,而且所有子網路都必須位於相同的 VPC 中。建立時ReplicationSubnetGroup,客戶只會指定子網路。 AWS DMS 將代表您決定 VPC,因為每個子網路只會連結到一個 VPC。

當您建立 AWS DMS ReplicationInstance或時 AWS DMS ReplicationConfig,您可以選擇指定或無伺服器複寫在其中運作的 VPC 安全性群組ReplicationSubnetGroup和/ReplicationInstance或。如果未指定,請 AWS DMS 選擇客戶預設值 ReplicationSubnetGroup (如果未針對預設 VPC 中的所有子網路指定,則 AWS DMS 會代表您建立) 和預設 VPC 安全性群組。

您可以選擇在指定的可用區域或 ReplicationSubnetGroup 中的任何可用區域中執行遷移。 AWS DMS 嘗試建立複寫執行個體或啟動無伺服器複寫時,會將子網路的可用區域轉譯為核心服務帳戶中的可用區域,以確保我們在正確的可用區域中啟動執行個體,即使兩個帳戶之間的可用區域對應不相同。

如果您使用共用 VPC,則需要確保建立的 ReplicationSubnetGroup 物件,會對應至您希望透過共用 VPC 使用的子網路。建立 ReplicationInstanceReplicationConfig 時,您必須為共用 VPC 指定 ReplicationSubnetGroup,並指定您透過 Create 請求為共用 VPC 建立的 VPC 安全群組。

請注意下列與使用共用 VPC 相關的事項:

  • VPC 擁有者無法與參與者共用資源,但參與者可以在擁有者的子網路中建立服務資源。

  • VPC 擁有者無法存取參與者建立的資源 (例如複寫執行個體),因為所有資源都是帳戶特定的。不過,只要您在共用 VPC 中建立複寫執行個體,只要複寫端點或任務具有正確的許可,就可以存取 VPC 中的資源,而不論擁有帳戶為何。

  • 資源是帳戶特定的,因此其他參與者無法存取其他帳戶擁有的資源。您無權授予其他帳戶許可,讓他們存取在共用 VPC 中使用您帳戶建立的資源。

使用 AWS Direct Connect 或 VPN 將網路設定至 VPC

遠端網路可以使用多種選項 (例如 AWS 直接 Connect 線或軟體或硬體 VPN 連線) 連線到 VPC。這些選項常透過將內部網路擴充至 AWS 雲端,來整合現有的現場服務,例如監控、身分驗證、安全、資料及其他系統。透過使用此類網路擴充,您便可以順暢地連線到 AWS託管資源 (例如 VPC)。

下圖顯示一個組態,其中來源端點是企業資料中心內的現場部署資料庫。其會使用 AWS Direct Connect 或 VPN 連線到包含複寫執行個體及 Amazon RDS 資料庫執行個體上目標資料庫的 VPC。

AWS Database Migration Service 複製實例

在此組態中,VPC 安全群組必須包含路由規則,將目標為 VPC CIDR 範圍或特定 IP 地址的流量傳送到主機。此主機必須要能夠橋接 VPC 到現場部署 VPN 之間的流量。在此情況下,NAT 主機會包含其本身的安全群組設定。這些設定必須允許從複寫執行個體的 VPC CIDR 範圍、私有 IP 地址或安全群組傳入 NAT 執行個體的流量。但是我們不建議您使用複寫執行個體的私有 IP 地址,因為如果複寫 IP 地址變更,複寫就可能會中斷。

使用網際網路的網路對 VPC 組態

如果您不使用 VPN 或連接 AWS Direct Connect 到 AWS 資源,則可以使用互聯網遷移數據庫。在此情況下,您可以遷移至 Amazon EC2 執行個體或 Amazon RDS 資料庫執行個體。此組態涉及帶有網際網路閘道 VPC 內的公有複寫執行個體,其中包含目標端點和複寫執行個體。

AWS Database Migration Service 複製實例

若要將網際網路閘道新增至 VPC,請參閱《Amazon VPC 使用者指南》中的連接網際網路閘道

VPC 路由表必須包含路由規則,將不是預設流向 VPC 的流量傳送到網際網路閘道。在此組態中,與端點的連線看起來就像是來自複寫執行個體的公有 IP 地址,而非私有 IP 地址。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的 VPC 路由表

我們將於 2022 年 8 月 15 日淘汰 EC2-Classic。建議您從 EC2-Classic 遷移至 VPC。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的從 EC2-Classic 遷移至 VPC,以及部落格文章 EC2-Classic Networking is Retiring – Here’s How to Prepare

若要將不在 VPC 中的 Amazon RDS 資料庫執行個體連接到 VPC 中的 DMS 複寫伺服器和資料庫執行個體,您可以搭配代理伺服器使 ClassicLink 用。

ClassicLink 可讓您將 EC2-Classic 資料庫執行個體連結至帳戶中相同區域內的 VPC。 AWS 在您建立連結後,來源資料庫執行個體便可以使用私有 IP 地址與 VPC 內部的複寫執行個體通訊。

由於 VPC 中的複寫執行個體無法使用直接存取 EC2-Classic 平台上的來源資料庫執行個體 ClassicLink,因此您可以使用代理伺服器。代理伺服器會將來源資料庫執行個體連線到包含複寫執行個體和目標資料庫執行個體的 VPC。代理服務器用 ClassicLink 於連接到 VPC。代理伺服器上的連接埠轉送則會允許在來源資料庫執行個體和 VPC 中的目標資料庫執行個體之間進行通訊。

AWS Database Migration Service 使用 ClassicLink

ClassicLink 搭配資 AWS Database Migration Service 使用

您可以將不在 VPC 中的 Amazon RDS 資料庫執行個體連接到 VPC 中的 AWS DMS 複寫伺服器和資料庫執行個體。為此,您可以將 Amazon EC2 ClassicLink 與代理伺服器搭配使用。

下列程序顯示如何用 ClassicLink 於此目的。此程序會將不在 VPC 中的 Amazon RDS 來源資料庫執行個體連接到包含 AWS DMS 複寫執行個體和目標資料庫執行個體的 VPC。

  • 在 VPC 中建立 AWS DMS 複寫執行個體。(所有複寫執行個體都是在 VPC 中建立)。

  • 將 VPC 安全群組與複寫執行個體和目標資料庫執行個體建立關聯。當兩個執行個體共享同一個 VPC 安全群組時,根據預設,他們便可以互相通訊。

  • 在 EC2 Classic 執行個體上設定代理伺服器。

  • 使用 Proxy 伺服器和 VPC ClassicLink 之間建立連線。

  • 建立來源和目標資料庫的 AWS DMS 端點。

  • 建立 AWS DMS 工作。

用於 ClassicLink 將不在 VPC 中的資料庫執行個體上的資料庫遷移到 VPC 中資料庫執行個體上的資料庫
  1. 建立 AWS DMS 複寫執行個體並指派 VPC 安全群組:

    1. 請登入 AWS Management Console 並開啟 AWS DMS 主控台,網址為 https://console.aws.amazon.com/dms/v2/

      如果您以 AWS Identity and Access Management (IAM) 使用者身分登入,請確定您擁有適當的存取權限 AWS DMS。如需資料庫移轉所需許可的詳細資訊,請參閱使用 AWS DMS所需的 IAM 許可

    2. Dashboard (儀表板) 頁面上,選擇 Replication Instance (複寫執行個體)。遵循步驟 1:使用 AWS DMS 主控台建立複寫執行個體中的說明建立複寫執行個體。

    3. 建立 AWS DMS 複寫執行個體之後,請開啟 EC2 服務主控台。從導覽窗格選擇網路介面

    4. 選擇 DMS NetworkInterface,然後從 [作] 功能表選擇 [變更安全性群組]。

    5. 選擇您希望用於複寫執行個體和目標資料庫執行個體的安全群組。

  2. 將最後一個步驟的安全群組與目標資料庫執行個體建立關聯:

    1. 開啟 Amazon RDS 服務主控台。從導覽窗格中選擇執行個體

    2. 選擇目標資料庫執行個體。對於執行個體動作,選擇修改

    3. 針對安全群組參數,選擇您在先前步驟中使用的安全群組。

    4. 選擇繼續,然後選擇修改資料庫執行個體

  3. 步驟 3:使用 NGINX 在 EC2 Classic 執行個體上設定代理伺服器。使用您選擇的 AMI 啟動 EC2 Classic 執行個體。以下範例是以 AMI Ubuntu Server 14.04 LTS (HVM) 為基礎。

    在 EC2 Classic 執行個體上設定代理伺服器

    1. 連線到 EC2 Classic 執行個體,並使用下列命令安裝 NGINX:

      Prompt> sudo apt-get update Prompt> sudo wget http://nginx.org/download/nginx-1.9.12.tar.gz Prompt> sudo tar -xvzf nginx-1.9.12.tar.gz Prompt> cd nginx-1.9.12 Prompt> sudo apt-get install build-essential Prompt> sudo apt-get install libpcre3 libpcre3-dev Prompt> sudo apt-get install zlib1g-dev Prompt> sudo ./configure --with-stream Prompt> sudo make Prompt> sudo make install
    2. 使用以下代碼編輯 NGINX 精靈檔案,/etc/init/nginx.conf

      # /etc/init/nginx.conf – Upstart file description "nginx http daemon" author "email" start on (filesystem and net-device-up IFACE=lo) stop on runlevel [!2345] env DAEMON=/usr/local/nginx/sbin/nginx env PID=/usr/local/nginx/logs/nginx.pid expect fork respawn respawn limit 10 5 pre-start script $DAEMON -t if [ $? -ne 0 ] then exit $? fi end script exec $DAEMON
    3. /usr/local/nginx/conf/nginx.conf 建立 NGINX 組態檔案。在組態檔中,新增以下內容:

      # /usr/local/nginx/conf/nginx.conf - NGINX configuration file worker_processes 1; events { worker_connections 1024; } stream { server { listen DB instance port number; proxy_pass DB instance identifier:DB instance port number; } }
    4. 使用下列命令,從命令列啟動 NGINX:

      Prompt> sudo initctl reload-configuration Prompt> sudo initctl list | grep nginx Prompt> sudo initctl start nginx
  4. 在 Proxy 伺服器與包含目標資料庫執行個體和複寫執行個體的目標 VPC 之間建立 ClassicLink 連線:

    1. 開啟 EC2 主控台,並選擇正在執行代理伺服器的 EC2 Classic 執行個體。

    2. 在「動作」 中選擇 ClassicLink,然後選擇「連結至 VPC」。

    3. 選擇您在此程序中先前使用的安全群組。

    4. 選擇連結至 VPC

  5. 步驟 5:使用上步驟 2:指定來源與目標端點的程序建立 AWS DMS 端點。指定來源端點時,您必須使用代理的內部 EC2 DNS 主機名稱作為伺服器名稱。

  6. 使用中步驟 3:建立任務並遷移資料的程序建立 AWS DMS 任務。

建立複寫子網路群組

作為用於資料庫遷移網路的一部分,您需要指定虛擬私有雲端 (VPC) 中您計劃使用的子網路。此 VPC 必須以 Amazon VPC 服務為基礎。子網路是指定可用區域中您 VPC 內的一個 IP 地址範圍。這些子網路可以分散在 VPC 所在區域的可用區域之間。 AWS

當您在 AWS DMS 主控台中建立複寫執行個體或執行個體設定檔時,可以使用您選擇的子網路。

您可以建立複寫子網路群組來定義要使用的子網路。您必須指定至少兩個可用區域內的子網路。

建立複寫子網路群組
  1. 請登入 AWS Management Console 並開啟 AWS DMS 主控台,網址為 https://console.aws.amazon.com/dms/v2/

    如果您以 IAM 使用者身分登入,請確認您具備適當的許可來存取 AWS DMS。如需資料庫移轉所需許可的詳細資訊,請參閱使用 AWS DMS所需的 IAM 許可

  2. 在導覽窗格中選擇 Subnet groups (子網路群組)

  3. 選擇 Create subnet group (建立子網路群組)。

  4. 建立複寫子網路群組頁面上,指定複寫子網路群組資訊。下表說明相關設定。

    選項 動作

    名稱

    輸入包含 8 到 16 個可列印的 ASCII 字元 (但 /、" 和 @ 除外),作為複寫子網路群組名稱。您所選 AWS 區域的帳戶名稱應該是唯一的。例如,您可以選擇將某些智慧新增至名稱,例如包括 [ AWS 區域] 和 [您正在執行的工作] DMS-default-VPC

    Description

    輸入複寫子網路群組的簡短描述。

    VPC

    選擇您希望用於資料庫遷移的 VPC。請記得,在至少兩個可用區域內,VPC 必須擁有至少一個子網路。

    新增子網路

    選擇您希望包含在複寫子網路群組中的子網路。您必須選擇至少兩個可用區域內的子網路。

  5. 選擇 Create subnet group (建立子網路群組)。

使用 DNS 解析網域端點

通常, AWS DMS 複寫執行個體會在 Amazon EC2 執行個體中使用網域名稱系統 (DNS) 解析器來解析網域端點。如果您需要 DNS 解析,則可以使用 Amazon Route 53 Resolver。如需使用 Route 53 DNS Resolver 的相關資訊,請參閱 Route 53 Resolver 入門

如需如何使用自己的內部部署名稱伺服器,使用 Amazon Route 53 Resolver 解析特定端點的相關資訊,請參閱 使用自己的內部部署名稱伺服器