本文提供一個基於阿里雲CLI的操作樣本,為您示範如何通過阿里雲CLI建立和複製自訂鏡像,實現ECS執行個體的跨地區遷移。該樣本僅供參考使用,實際業務情境中可能需要結合多個API靈活組合,具體方案請根據實際需求設計。
方案概覽
使用阿里雲CLI通過自訂鏡像跨地區遷移ECS執行個體資料,大致可分為以下五個步驟:
建立鏡像:為源ECS執行個體建立自訂鏡像,使用該鏡像建立的新執行個體,會包含您已配置的自訂項,省去您重複自訂執行個體的時間。
複製鏡像:複製鏡像後,您可以在目標地區獲得不同ID的新鏡像,其標籤、資源群組、加密屬性等配置以複製鏡像時的輸入參數為準。
建立執行個體:使用自訂鏡像在目標地區中建立目標ECS執行個體。
檢查執行個體:檢查新建立的目標ECS執行個體的相關資料情況,確保執行個體資料移轉後,業務功能仍可流暢運行。
釋放資源:遷移完成後,結合自身的實際需求,可以選擇釋放或刪除源ECS執行個體的相關資源,避免資源持續產生費用。
注意事項
資料移轉前,請您仔細閱讀以下注意事項。
在建立自訂鏡像期間,系統會對ECS執行個體的各個雲端硬碟自動建立快照,快照將產生一定的費用。有關快照費用的詳細資料,請參見快照計費。
部分包含本地碟的執行個體無法建立快照,此類執行個體不支援通過本文的操作完成執行個體的資料移轉。
源ECS執行個體的網路類型可以是傳統網路或Virtual Private Cloud。
建立目標ECS執行個體時,僅支援建立VPC網路類型的ECS執行個體。
建立目標ECS執行個體時,僅支援選擇當前可用性區域下有庫存的執行個體規格。建議您提前自行做好資源所屬地區和可用性區域的規劃工作。
由於是通過自訂鏡像完成的執行個體資料移轉操作,因此資料移轉後,新建立的目標ECS執行個體中雲端硬碟資料與源ECS執行個體中的雲端硬碟資料保持一致,但新建立的目標ECS執行個體的執行個體中繼資料會重建,與源ECS執行個體中的執行個體中繼資料相比較會發生變化。關於執行個體中繼資料的更多資訊,請參見執行個體中繼資料。
由於執行個體中繼資料會發生變化,在執行個體資料移轉之前,建議您手動排查資源關聯關係,並在資料移轉後及時更新資源的關聯關係。例如:
叢集內部通過私網IP地址互聯互連,在進行執行個體資料移轉後,您需要替換為最新的私網IP地址。
某些應用的許可證(License)與ECS執行個體的MAC地址綁定,在進行執行個體資料移轉後,這些許可證將因為ECS執行個體的MAC地址改變而失效,您需要重新綁定最新的MAC地址。
如果您要保持公網IP地址不變,且源ECS執行個體使用的是固定公網IP,可以先將公網IP轉換為Elastic IP Address(EIP)以保留該公網IP,然後解除綁定EIP,最後綁定到遷移後的ECS執行個體上。具體操作,請參見固定公網IP轉為Elastic IP Address和Elastic IP Address。
說明如果源ECS執行個體使用的是Elastic IP Address(EIP),遷移後,源ECS執行個體先解除綁定EIP,然後綁定到遷移後的ECS執行個體上。具體操作,請參見Elastic IP Address。
本地SSD型執行個體規格不支援建立包含系統硬碟和資料盤的鏡像。更多資訊,請參見本地SSD型執行個體規格類型系列介紹。
操作步驟
步驟一:為源ECS執行個體建立自訂鏡像
通過執行個體建立自訂鏡像前,您需要瞭解相關注意事項。更多資訊,請參見使用執行個體建立自訂鏡像。
為保證資料完整性,建議您停止執行個體後再進行建立鏡像的操作。
執行以下命令,調用CreateImage介面建立源ECS執行個體的自訂鏡像。
aliyun ecs CreateImage \ --RegionId 'cn-hangzhou' \ --ImageName Created_from_hangzhouECS \ --InstanceId 'i-bp1g6zv0ce8oghu7****' \系統返回類似如下結果樣本。
{ "ImageId": "m-bp146shijn7hujku****", "RequestId": "C8B26B44-0189-443E-9816-*******" }執行以下命令,調用DescribeImages介面查詢自訂鏡像建立狀態。確認鏡像狀態變更為
Available後執行下一步驟。aliyun ecs DescribeImages \ --RegionId 'cn-hangzhou' \ --ImageId 'm-bp146shijn7hujku****' \ --Status 'Creating,Available' \ --output cols='ImageId,Status' rows='Images.Image[]' \ --waiter expr='Images.Image[0].Status' to='Available'
步驟二:跨地區複製鏡像
將源ECS執行個體的資料跨地區遷移至新建立的目標ECS執行個體,需要先通過複製鏡像功能將自訂鏡像複製到其他地區。
執行以下命令,調用CopyImage介面從
cn-hangzhou複製源ECS執行個體的自訂鏡像到cn-beijing。aliyun ecs CopyImage \ --RegionId 'cn-hangzhou' \ --DestinationImageName Copy_from_hangzhouImage \ --ImageId 'm-bp146shijn7hujku****' \ --DestinationRegionId 'cn-beijing' \返回結果樣本。
{ "ImageId": "m-bp1h46wfpjsjastd****", "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E" }執行以下命令,調用DescribeImages介面查詢複製鏡像建立狀態。確認鏡像狀態變更為
Available後執行下一步驟。aliyun ecs DescribeImages \ --RegionId 'cn-beijing' \ --ImageId 'm-bp1h46wfpjsjastd****' \ --Status 'Creating,Available' \ --output cols='ImageId,Status' rows='Images.Image[]' \ --waiter expr='Images.Image[0].Status' to='Available'
步驟三:使用自訂鏡像建立目標ECS執行個體
執行以下命令,調用RunInstances介面根據自訂鏡像在目標地區建立ECS執行個體。
說明樣本命令中
PasswordInherit選項設定為true,執行命令建立執行個體時將使用鏡像預設的密碼。使用鏡像預設密碼後,新建立的目標ECS執行個體登入密碼與源ECS執行個體的登入密碼一致。您可根據需求自行選擇符合的執行個體規格,更多參數資訊,請參見自訂購買執行個體。
aliyun ecs RunInstances \ --RegionId 'cn-beijing' \ --SecurityGroupId 'sg-2zea9dbddva****' \ --VSwitchId 'vsw-2zep7vc25mjc1****' \ --ImageId 'm-bp1h46wfpjsjastd****' \ --InstanceType 'ecs.e-c1m1.large' \ --InstanceName Copy_from_hangzhouECS \ --PasswordInherit true \ --InternetChargeType PayByTraffic \ --SystemDisk.Size 40 \ --SystemDisk.Category cloud_essd \ --InstanceChargeType PostPaid \ --InternetMaxBandwidthOut 10返回結果樣本:
{ "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****", "InstanceIdSets": { "InstanceIdSet": [ "i-bp67acfmxazb4pd2****" ] } }
步驟四:檢查目標ECS執行個體內資料
目標ECS執行個體建立後,您需要檢查執行個體內部相關資料情況,以確保執行個體資料移轉後,業務功能仍可流暢運行。例如:
檢查雲端硬碟資料:遠端連線新建立的目標ECS執行個體,檢查系統硬碟資料是否與源ECS執行個體一致,例如比較檔案和目錄結構是否一致。如果源ECS執行個體存在資料盤並在目標ECS執行個體上掛載了相應的雲端硬碟,您可以檢查資料盤上的資料是否與源ECS執行個體一致。
運行應用程式或服務:如果您的源ECS執行個體上運行了特定的應用程式或服務,您可以嘗試在目標ECS執行個體上運行相同的應用程式或服務,並驗證其功能和資料操作是否與源ECS執行個體一致。
對比資源資訊變化:
您可以執行以下命令,調用DescribeInstances,對比源ECS執行個體與新建立的目標ECS執行個體相關的資源資訊變化,例如鏡像資訊、網路設定等。
aliyun ecs DescribeInstances --RegionId 'cn-beijing' --InstanceIds '["i-bp67acfmxazb4pd2****"]'
更新資源的關聯關係:新建立的目標ECS執行個體的執行個體中繼資料會重建,與源ECS執行個體中的執行個體中繼資料相比會發生變化。您需要在資料移轉後及時更新資源的關聯關係。更多資訊,請參見執行個體中繼資料。
步驟五:釋放或刪除源ECS執行個體及相關資源
在您仔細檢查新建立的目標ECS執行個體與源ECS執行個體資料沒有差異,且完成了資源關聯關係的更新,確保新建立的目標ECS執行個體內業務可以流暢運行後,結合自身的實際需求,可以選擇釋放或刪除源ECS執行個體的相關資源,避免資源持續產生費用。相關操作說明如下:
釋放執行個體、刪除鏡像以及刪除快照的操作為單向操作,一旦操作完成,資源內的資料不可恢複。請確保您已完成所有業務資料的遷移再執行釋放或刪除資源的操作。
您可執行以下命令,調用DeleteInstance介面釋放源ECS執行個體。更多資訊,請參見釋放執行個體。
aliyun ecs DeleteInstance --InstanceId i-bp67acfmxazb4pd2****您可執行以下命令,調用DeleteImage介面刪除建立的自訂鏡像。更多資訊,請參見刪除自訂鏡像。
重要刪除自訂鏡像後,使用該鏡像建立的ECS執行個體將無法初始化系統硬碟。如果您的自訂鏡像為免費鏡像,且您需要保留該鏡像以供後續使用,建議無需刪除該自訂鏡像。有關鏡像計費的詳細資料,請參見鏡像計費。
aliyun ecs DeleteImage --RegionId 'cn-hangzhou' --ImageId 'm-bp146shijn7hujku****'您可執行以下命令,調用DeleteInstance介面刪除指定的快照。更多資訊,請參見刪除快照。
aliyun ecs DeleteSnapshot --SnapshotId 's-bp1c0doj0taqyzzl****'
指令碼樣本
阿里雲CLI可在命令列指令碼中使用,以下簡單樣本供您參考,您可以在此基礎上自行實現異常處理、資源清理等進階功能。
運行Bash指令碼樣本需自行安裝jq工具。
相關文檔
您可在控制台中實現同地區或者跨地區下的ECS執行個體間的遷移。具體操作,請參見通過自訂鏡像跨地區複製ECS執行個體。