更換ECS執行個體的VPC,是指將ECS執行個體從一個VPC遷移到另一個VPC中,而不改變ECS執行個體所在的地區及可用性區域。隨著業務的發展或安全性原則的變化,原有的網路結構可能不再滿足需求,例如,當您需要隔離不同業務系統之間的流量時,可能需要將某些服務遷移到新的VPC中。
適用情境
前期VPC規劃不合理,隨著業務的逐漸擴大,原來的VPC不能滿足需求,需要通過ECS執行個體更換VPC進行重新規劃。
前期只規劃一個VPC,不同的專案和使用環境共用此VPC,存在資料操作風險。現在希望按專案、使用環境劃分為單獨的VPC,需要通過ECS執行個體更換VPC操作進行專案遷移。
當您通過雲企業網、VPC對等串連等方式實現跨VPC互聯時,通常建議您確保需要互連的網段沒有重疊。如果您需要互連的執行個體存在網路重疊造成地址衝突,您可以通過為其中一端執行個體更換VPC的方式解決。
限制條件
ECS執行個體變更前後的交換器必須在同一可用性區域。
ECS執行個體變更可選擇1~5個目標安全性群組,但目標安全性群組類型必須一致(都是普通安全性群組或都是企業級安全性群組)。
批量更換ECS執行個體的VPC時,單次最多支援20個ECS執行個體。
更換後影響
私網IP:更換ECS執行個體的VPC後,執行個體的主私網IP地址會變為目標交換器網段範圍內的IP地址。如果您的私網IP被其他服務或應用配置使用,需要您修改為更換後的主私網IP地址。
網路互連:更換ECS執行個體的VPC後,此ECS執行個體無法直接和原有VPC內的其他ECS執行個體互連。如果需要實現互連,請參見跨VPC互聯。
存取控制:如果原VPC和目標VPC使用了不同的網路ACL、安全性群組配置,則需要檢查並可能調整以確保應用程式正常運行。詳細資料,請參見VPC存取控制。
路由表配置:新的VPC可能具有與原來不同的路由表配置。對於依賴特定路由規則的應用來說,可能需要重新設定或添加相應的路由條目來保證連通性。詳細資料,請參見路由表。
私網網域名稱解析:如果ECS執行個體啟用了私網網域名稱解析,變更VPC可能導致網域名稱解析失效。您需要確認目標VPC同原VPC一樣啟用了主機名稱功能,保證私網網域名稱解析功能正常可用。詳細資料,請參見VPC啟用/禁用DNS主機名稱功能。
前置檢查
在進行更換VPC之前,您需要對ECS進行以下檢查,保證更換順利進行:
ECS執行個體未通過私網遠端連線。如果ECS執行個體已經通過私網遠端連線(如Workbench)產生私網鏈路,請參見釋放授權連結。
ECS執行個體未加入SLB的後端伺服器組。SLB中如何移除後端伺服器,請參見在預設伺服器組添加和管理後端伺服器。
ECS執行個體不在自訂路由條目中。如果ECS執行個體被配置在自訂路由表中,即使執行個體所在交換器沒有綁定該路由條目所在路由表,也無法更換VPC。請先將ECS執行個體從自訂路由表條目中移除。具體操作,請參見將ECS移除路由表條目。
ECS執行個體未關聯高可用虛擬IP(HaVip)。如果ECS執行個體關聯了HaVip,您可以將ECS執行個體和HaVip解除關聯,具體操作,請參見管理HaVip。
ECS執行個體不能作為後端服務節點被綁定在Global Acceleration執行個體中。如果您通過Global Acceleration為ECS執行個體提供了加速服務,您需要刪除ECS所在的終端節點。詳細資料,請參見添加和管理終端節點群組與終端節點。
ECS執行個體不能在其他雲端服務中被使用。例如,執行個體不能在遷移中、不能在更換VPC中、執行個體內部署的資料庫不能被DTS服務管理等。
已經為ECS執行個體準備好更換的目標VPC、交換器和安全性群組。
具體操作
登入ECS管理主控台。
在左側導覽列,選擇。
在頁面左側頂部,選擇目標資源所在的資源群組和地區。
單個或批量更換ECS執行個體的VPC。
在更換專用網路設定精靈頁面,按照指引更換ECS執行個體的專用網路。
在變更準備階段,查看變更前的網路資訊和注意事項,單擊下一步。

在選擇專用網路階段,選擇ECS需要切換的目標專用網路、目標交換器和目標安全性群組,單擊下一步。
(可選)在配置主私網IP階段,設定ECS切換後的主私網IP地址。
單擊確定。
查看結果。
切換完成後,您可以單擊ECS執行個體ID,在執行個體詳情頁面的配置資訊地區查看切換後的專用網路和虛擬交換器。
如果您已經在EventBridge、CloudMonitor中設定了事件通知用於擷取更換ECS執行個體的VPC的操作結果資訊,切換完成後,您將會收到交換器變更完成事件通知。
常見報錯
在更換專用網路時如發生以下報錯,請您仔細閱讀前置檢查,並根據實際報錯資訊及對應解決方案進行處理:
錯誤一:InvalidDependence.GrantAccess

報錯原因:更換VPC時,執行個體不能在其它雲端服務中被使用。報錯提示ECS執行個體可能關聯使用了其他產品(如DBS、DTS、DMS、Workbench等)。
解決方案:釋放反向授權連結,將對其它產品的授權刪除後再進行嘗試。
如果您的執行個體通過Workbench私網遠端連線產生私網鏈路,可以參考以下操作,釋放授權連結:
登入Workbench控制台,查看是否存在對應ECS執行個體的反向授權連結,如果存在,請單擊右側的釋放鏈路。
在私網鏈路釋放提示彈窗中,單擊確認釋放,然後再嘗試更換。如果問題還是無法解決,請提交工單,聯絡阿里雲支援人員進行協助處理。
錯誤二:InvalidDependence.NextHopOfCustomRouter

報錯原因:更換VPC時,執行個體不能在自訂路由條目中。即使執行個體所在交換器沒有綁定該路由條目所在路由表,也會報錯。報錯提示ECS執行個體是某個自訂路由表條目中的下一條。
解決方案:刪除執行個體所在的路由條目。具體操作如下所示:
登入路由表控制台。
在頂部狀態列處,選擇ECS所屬原VPC的地區。
在路由表頁面,找到包含要更換VPC的ECS執行個體的路由條目。

點擊刪除,刪除該路由條目後,再次嘗試更換執行個體的VPC。
錯誤三:InvalidDependence.SLB

報錯原因:更換VPC時,ECS執行個體不能關聯Server Load Balancer執行個體。即使ECS沒有被SLB掛載到後端RS,只要加入到ECS的伺服器組中,也會報錯。
解決方案:確認ECS執行個體加入的SLB的後端伺服器組,並在該伺服器組中移除ECS執行個體。具體操作,請參見在預設伺服器組添加和管理後端伺服器。移除後,再次嘗試更換執行個體的VPC。

錯誤四:EnterpriseGroupLimited.MutliGroupType

報錯原因:更換VPC時,選擇目標VPC中的多個安全性群組時(1~5個),安全性群組的類型需要一致(均為普通安全性群組或均為企業層級安全性群組)。報錯提示,您選擇的安全性群組中存在兩種類型。
解決方案:選擇同一類型的安全性群組。
錯誤五:Invalidinstance.AttachedEni

報錯原因:更換VPC時,ECS執行個體不允許綁定輔助網卡。
解決方案:ECS執行個體解除綁定輔助彈性網卡,具體操作,請參見解除綁定彈性網卡。
錯誤六:PrimaryEniHasSubIp

報錯原因:更換VPC時,ECS執行個體不允許有多IP。報錯提示,ECS執行個體的主網卡分配了多個輔助私網IP地址。
解決方案:回收ECS執行個體上已指派的輔助私網IP地址。具體操作,請參見回收輔助私網IP地址。