企業出海已經成為目前最熱門的趨勢。然而不論你是做跨境電商,還是短劇出海,或處于最熱門的AI 賽道,你都需要使用海外的云主機或GPU云服務。海外一線的云服務平臺盡管覆蓋區域廣泛,但是往往費用成本較高。所以降本始終是企業出海關注的重點。
DigitalOcean作為海外上市云服務平臺,已服務60萬企業用戶。DigitalOcean以簡單易用、價格實惠、性能穩定,以及一鍵部署與配置、托管數據庫和內置監控等強大功能而受到青睞。這些特點使其成為初創公司、獨立開發者和希望將更多精力放在構建而非管理基礎設施的成長型團隊的理想選擇。
所以有許多用戶都從一線云服務平臺遷移至DigitalOcean,或將DigitalOcean作為多云部署的一部分。甚至有的客戶從AWS 遷移至DigitalOcean之后,成功節省了60%的成本。
那么在 AWS EC2 上運行項目如何遷移到 DigitalOcean?
無論你是想降低基礎設施成本、簡化服務器管理,還是獲得對環境的更多控制,本教程都會一步步教會你把一個正在運行中的應用,從 EC2 遷移到 DigitalOcean Droplet 。
本教程確保你能夠復刻環境、以安全方式移動文件和數據,并在最小化停機時間的情況下完成遷移。
本教程特別適用于希望優化云基礎設施的開發者、創業者和企業。通過從 AWS EC2 遷移到 DigitalOcean Droplet(DigitalOcean的云主機產品),用戶可以獲得這些好處:
- 高性價比:與 AWS 相比,DigitalOcean 提供可預測且更低的定價,可顯著降低基礎設施成本。
- 簡潔易用:DigitalOcean 的用戶友好的 UI 和簡明的設置流程,讓開發者無需具備豐富的云知識即可管理環境。
- 對開發者友好的功能:一鍵部署與配置、托管數據庫和內置監控等功能,簡化了開發和部署流程。
- 可擴展性:DigitalOcean 的基礎設施可隨需求擴展,讓你能在應用流量激增時輕松調整資源。
- 社區和支持:龐大的開發者社區和完善的文檔,可以幫助你排查問題并優化設置。
- 專注開發:減少基礎設施管理的復雜性,讓你有更多時間專注于構建和改進應用。
前期準備
在開始之前,請確保你具備以下條件:
- 可訪問你的 AWS EC2 實例(SSH 密鑰或憑證)
- 一個已完成注冊的 DigitalOcean 賬戶(綁定信用卡或支付寶均可)
- 了解基本的 Linux 服務器管理知識(命令行、SSH 等)
- 熟悉你的應用技術棧(如 LAMP、Node.js、Docker)
- 域名管理門戶登錄信息(如果需要更新 DNS 記錄)
可選但推薦具備以下條件:
- 用于測試遷移的預發布環境
- 兩臺服務器上都已安裝 rsync(大多數系統已預裝)
另外,如果你需要了解自己的產品應該使用什么配置的DigitalOcean Droplet,可以閱讀 DigitalOcean 中國區獨家戰略合作伙伴卓普云AI Droplet的官方博客《如何選擇適合自己的 DigitalOcean Droplet 云服務器配置》。
如何從 AWS EC2 遷移到 Droplet
我們會將遷移過程分為10步,為你提供清晰、可重復的流程,將正在運行中的應用從 AWS 搬到 DigitalOcean。
在此之前,開發者和企業通常使用自定義腳本、供應商特定工具或手動備份來管理遷移,每種方式在復雜度、停機時間和風險上各有利弊。本方法聚焦簡潔和可靠,使用 SSH、rsync 和 mysqldump 等廣泛支持的工具來優化流程。
由于遷移目標是 DigitalOcean,你將受益于干凈、現代的基礎設施體驗,讓你更快、更少阻礙地從部署到擴展。
步驟 1:評估你的 AWS EC2 環境
在進行其他操作之前,先確認你的運行情況:
- 檢查已安裝操作系統:通過 SSH 連接 EC2 實例,運行
cat /etc/os-release
- 以顯示操作系統詳情。
- 驗證活動服務:運行
systemctl list-units --type=service --state=running
- 列出所有活動服務,查找 Apache、MySQL 或 Node.js 等服務。
- 定位應用文件和配置:檢查常見目錄(如
/var/www/html
)來確定應用文件存放位置,或使用
find / -name 'your-app-name'
- 定位特定文件或目錄;在
/etc
或應用目錄中檢查配置文件。 - 檢查防火墻和安全組設置:在 AWS 管理控制臺的 EC2 儀表板中,選中你的實例,在“安全”選項卡下查看關聯的安全組,檢查入站和出站規則;在實例內運行
sudo iptables -L
- 查看本地防火墻規則。
此步驟有助于在 DigitalOcean 上準確復刻環境。
步驟 2:創建你的 DigitalOcean Droplet
在 DigitalOcean 控制面板中:
- 點擊 Create > Droplets。
- 選擇所需的操作系統鏡像。
- 選擇與你的 EC2 實例規模相匹配的方案。
- 選擇靠近用戶的機房區域。
- 添加登錄方式 —— 推薦使用 SSH 密鑰,也可設置強密碼。
- 設置 Droplet 主機名,添加標簽(如需),并選擇監控或卷等可選功能,然后創建 Droplet。
創建完成后,從控制面板記錄你的 Droplet IP 地址。
步驟 3:配置 Droplet
通過以下任一方式訪問新 Droplet:
- 使用 SSH 密鑰(推薦):
ssh root@your_droplet_ip
- 如果密鑰不在默認位置,指定路徑:
ssh -i /path/to/private-key root@your_droplet_ip
- 使用 root 密碼:如果之前設置了密碼認證,運行:
ssh root@your_droplet_ip
登錄后,安裝所需軟件包,例如:
sudo apt update && sudo apt install nginx mysql-server php -y
(或根據你的棧安裝 Node.js、Docker 等)
請確保復刻 EC2 上的所有系統配置。
步驟 4:傳輸應用文件
使用 rsync 從 EC2 拷貝文件到 Droplet:
rsync -avz -e "ssh -i /path/to/aws-key.pem" ubuntu@your_ec2_ip:/var/www/html/ root@your_droplet_ip:/var/www/html/
rsync 優勢:速度快、安全,并保持文件權限。
步驟 5:導出并導入數據庫(如適用)
如果應用使用數據庫,需要將其從 EC2 實例遷移到 Droplet,以確保應用在新環境中正常運行。
選項 1:在 Droplet 上運行數據庫
1、導出數據庫:
- MySQL/MariaDB:使用
mysqldump
- PostgreSQL:使用
pg_dump
- MongoDB:使用
mongodump
- Redis:使用
redis-cli
生成快照
2、傳輸導出文件:
rsync -avz -e "ssh -i /path/to/aws-key.pem" ubuntu@your_ec2_ip:/path/to/backup.sql root@your_droplet_ip:/root/
3、在 Droplet 上導入:參照 DigitalOcean 上對應數據庫的恢復教程。
選項2:使用DigitalOcean托管數據庫(生產環境推薦)
作為替代方案,您無需在Droplet上自行托管數據庫,而是可以通過DigitalOcean的托管數據庫服務將這一責任移交給平臺。這些數據庫集群專為生產環境設計,完全托管且提供以下功能:
- 免費每日備份與特定時間點恢復
- 自動故障轉移的高可用性
- 端到端安全防護
- 零停機時間擴展
- 性能監控與指標分析
遷移至托管數據庫的步驟:
- 創建托管數據庫:在DigitalOcean控制面板中,啟動一個新的托管數據庫實例。
- 導出并導入數據:使用與上述相同的備份流程導出數據,然后通過提供的憑據將數據導入新的托管數據庫。
- 更新應用配置:將應用程序的數據庫連接字符串更改為托管數據庫集群提供的連接詳情。
選擇適合您的方案:
若您僅進行測試或運行小型項目,在Droplet上托管數據庫可能已足夠。但對于任何生產環境,托管數據庫能帶來長期且顯著的優勢。
專業建議:
托管數據庫尤其適合以下場景:計劃未來擴展規模、需要更高服務可用性保障,或希望省去備份、補丁更新及性能調優等運維工作。
步驟6 :更新配置文件
現在您的應用和數據庫已托管在DigitalOcean上,需要更新配置文件以適配新環境。
1. Web服務器配置
如果您使用Nginx、Apache或其他Web服務器,請確保服務器塊(server block)或虛擬主機配置文件已正確設置。您需要更新路徑、服務器名稱,以及可能的SSL證書。例如,對于Nginx,可通過以下命令編輯配置文件:
sudo nano /etc/nginx/sites-available/default
進行必要的修改(如更新文檔根目錄或服務器名稱)。修改完成后,務必重新加載或重啟Nginx以應用更改:
sudo systemctl restart nginx
2. 數據庫連接字符串
更新應用的數據庫連接字符串,使其指向DigitalOcean Droplet或托管數據庫中的正確主機地址和憑據。這可能需要修改存儲數據庫連接信息的環境變量或配置文件。
例如,如果之前連接字符串指向EC2實例,現在需將其更改為Droplet的本地地址(localhost
)或托管數據庫的IP地址。
3. 環境變量
如果您的應用依賴環境變量(如API密鑰、數據庫憑據或其他配置設置),請確保在DigitalOcean Droplet中已正確設置。您可以通過以下方式配置環境變量:
- 直接在Shell配置文件中設置(如
~/.bashrc
、~/.bash_profile
或/etc/environment
) - 或在應用使用的
.env
文件中設置
示例:設置MySQL根密碼的環境變量
export MYSQL_ROOT_PASSWORD='your_password'
然后加載變量:
source ~/.bashrc
步驟7 :在Droplet上測試應用
在將Droplet正式上線前,務必徹底測試應用,確保其在新環境中正常運行。以下是測試步驟:
1、檢查文件完整性
確認所有應用文件已成功傳輸到Droplet,并確保文件權限正確且傳輸過程中未損壞。
2、測試數據庫連接
驗證應用能否連接到新數據庫。若使用Web框架,可通過檢查應用日志或直接在命令行執行數據庫查詢來排查連接錯誤。
3、執行功能測試
測試應用的各個方面(前端、后端、API等)。您可以手動測試,或使用自動化測試工具(如 Selenium、Postman 或 cURL)驗證功能是否正常。
4、查看日志
檢查系統和應用日志以發現潛在錯誤:
sudo journalctl -xe
檢查對應日志文件(如 Nginx 錯誤日志 /var/log/nginx/error.log
、MySQL 日志 /var/log/mysql/error.log
)或應用自定義的日志路徑。
步驟 8:更新 DNS 設置
- 登錄域名管理控制面板。
- 將 A 記錄指向你的 Droplet IP,例如:
@ A your_droplet_ip
- 將 TTL 設置為較低值(如 300 秒),以加快生效。
- 等待 DNS 傳播,通常幾分鐘至 24 小時,大多數情況下一小時內即可看到流量切換。
步驟 9:切換生產流量
DNS 完全指向 Droplet 后,即可將生產流量切換到 DigitalOcean,期間密切監控:
- 流量監控:尤其在變更后頭幾小時。
- 性能檢查:確認在實際負載下表現正常。
- 性能優化:根據需要調整 Droplet 配置,添加備份等。
步驟 10:最終清理
- 終止 EC2 實例:若不再使用,關閉或刪除以避免額外費用。
- 復核安全設置:確保只開放必要端口(如 22、80、443)。
- 備份數據:設置自動備份或手動快照,可使用 SnapShooter 等服務。
- 規劃擴展:根據應用增長,考慮垂直或水平擴展,如調整 Droplet 大小或添加負載均衡器。
常見問題
- 為什么要從 AWS EC2 遷移到 DigitalOcean Droplet? DigitalOcean 以高性價比而受到眾多創業公司歡迎,其透明且可預測的定價可顯著降低云服務成本;其簡潔的界面和開發者友好的工具可優化部署流程,讓你專注開發而非管理基礎設施或花費大量時間學習云平臺的使用。
- 更新 DNS 后,DNS 傳播需要多長時間? 傳播時間通常為幾分鐘至 24 小時,取決于 DNS 記錄的 TTL 設置和各 ISP 的緩存策略。大多數情況下,一小時內即可開始看到流量切換。
- 遷移過程中遇到問題該怎么辦? 首先檢查系統和應用日志以定位錯誤;若自行無法解決,可聯系 DigitalOcean 支持或使用其免費遷移服務以確保平滑過渡。
- 如何確保應用在 DigitalOcean 上表現良好? 使用 DigitalOcean 內置監控工具跟蹤資源使用情況,識別瓶頸;根據需求調整 Droplet 大小、添加備份或負載均衡器,以保持高性能。
- 在 DigitalOcean 上如何備份數據? 可設置自動每周或每日備份,也可手動快照 Droplet。對于更全面的解決方案,可使用 SnapShooter 等第三方服務。
寫在最后
在本教程中,我們已經帶著你一步步將運行中的應用從 AWS EC2 遷移到 DigitalOcean Droplet —— 從評估現有環境、創建和配置 Droplet,到傳輸文件和數據庫、測試和更新 DNS,實現最小化停機時間的平滑切換。
此過程能幫助你降低云成本、簡化基礎設施管理,并獲得更靈活的部署環境。無論是獨立項目還是生產級應用,遷移到 DigitalOcean 都能讓你享受面向開發者的簡潔定價和現代化體驗。
每個應用棧各有差異,可能需要根據具體情況添加額外步驟。如需幫助,DigitalOcean 為符合條件的項目提供免費遷移服務,幫助你更快、更自信地完成過渡,? 具體詳情可直接咨詢 DigitalOcean中國區獨家戰略合作伙伴卓普云AI Droplet。 ?