企业出海已经成为目前最热门的趋势。然而不论你是做跨境电商,还是短剧出海,或处于最热门的AI 赛道,你都需要使用海外的云主机或GPU云服务。海外一线的云服务平台尽管覆盖区域广泛,但是往往费用成本较高。所以降本始终是企业出海关注的重点。
DigitalOcean作为海外上市云服务平台,已服务60万企业用户。DigitalOcean以简单易用、价格实惠、性能稳定,以及一键部署与配置、托管数据库和内置监控等强大功能而受到青睐。这些特点使其成为初创公司、独立开发者和希望将更多精力放在构建而非管理基础设施的成长型团队的理想选择。
所以有许多用户都从一线云服务平台迁移至DigitalOcean,或将DigitalOcean作为多云部署的一部分。甚至有的客户从AWS 迁移至DigitalOcean之后,成功节省了60%的成本。
那么在 AWS EC2 上运行项目如何迁移到 DigitalOcean?
无论你是想降低基础设施成本、简化服务器管理,还是获得对环境的更多控制,本教程都会一步步教会你把一个正在运行中的应用,从 EC2 迁移到 DigitalOcean Droplet 。
本教程确保你能够复刻环境、以安全方式移动文件和数据,并在最小化停机时间的情况下完成迁移。
本教程特别适用于希望优化云基础设施的开发者、创业者和企业。通过从 AWS EC2 迁移到 DigitalOcean Droplet(DigitalOcean的云主机产品),用户可以获得这些好处:
在开始之前,请确保你具备以下条件:
可选但推荐具备以下条件:
另外,如果你需要了解自己的产品应该使用什么配置的DigitalOcean Droplet,可以阅读 DigitalOcean 中国区独家战略合作伙伴卓普云AI Droplet的官方博客《如何选择适合自己的 DigitalOcean Droplet 云服务器配置》。
我们会将迁移过程分为10步,为你提供清晰、可重复的流程,将正在运行中的应用从 AWS 搬到 DigitalOcean。
在此之前,开发者和企业通常使用自定义脚本、供应商特定工具或手动备份来管理迁移,每种方式在复杂度、停机时间和风险上各有利弊。本方法聚焦简洁和可靠,使用 SSH、rsync 和 mysqldump 等广泛支持的工具来优化流程。
由于迁移目标是 DigitalOcean,你将受益于干净、现代的基础设施体验,让你更快、更少阻碍地从部署到扩展。
在进行其他操作之前,先确认你的运行情况:
cat /etc/os-release
systemctl list-units --type=service --state=running
/var/www/html
)来确定应用文件存放位置,或使用
find / -name 'your-app-name'
/etc
或应用目录中检查配置文件。
sudo iptables -L
此步骤有助于在 DigitalOcean 上准确复刻环境。
在 DigitalOcean 控制面板中:
创建完成后,从控制面板记录你的 Droplet IP 地址。
通过以下任一方式访问新 Droplet:
ssh root@your_droplet_ip
ssh -i /path/to/private-key root@your_droplet_ip
ssh root@your_droplet_ip
登录后,安装所需软件包,例如:
sudo apt update && sudo apt install nginx mysql-server php -y
(或根据你的栈安装 Node.js、Docker 等)
请确保复刻 EC2 上的所有系统配置。
使用 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 优势:速度快、安全,并保持文件权限。
如果应用使用数据库,需要将其从 EC2 实例迁移到 Droplet,以确保应用在新环境中正常运行。
1、导出数据库:
mysqldump
pg_dump
mongodump
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 上对应数据库的恢复教程。
作为替代方案,您无需在Droplet上自行托管数据库,而是可以通过DigitalOcean的托管数据库服务将这一责任移交给平台。这些数据库集群专为生产环境设计,完全托管且提供以下功能:
迁移至托管数据库的步骤:
选择适合您的方案:
若您仅进行测试或运行小型项目,在Droplet上托管数据库可能已足够。但对于任何生产环境,托管数据库能带来长期且显著的优势。
专业建议:
托管数据库尤其适合以下场景:计划未来扩展规模、需要更高服务可用性保障,或希望省去备份、补丁更新及性能调优等运维工作。
现在您的应用和数据库已托管在DigitalOcean上,需要更新配置文件以适配新环境。
如果您使用Nginx、Apache或其他Web服务器,请确保服务器块(server block)或虚拟主机配置文件已正确设置。您需要更新路径、服务器名称,以及可能的SSL证书。例如,对于Nginx,可通过以下命令编辑配置文件:
sudo nano /etc/nginx/sites-available/default
进行必要的修改(如更新文档根目录或服务器名称)。修改完成后,务必重新加载或重启Nginx以应用更改:
sudo systemctl restart nginx
更新应用的数据库连接字符串,使其指向DigitalOcean Droplet或托管数据库中的正确主机地址和凭据。这可能需要修改存储数据库连接信息的环境变量或配置文件。
例如,如果之前连接字符串指向EC2实例,现在需将其更改为Droplet的本地地址(localhost
)或托管数据库的IP地址。
如果您的应用依赖环境变量(如API密钥、数据库凭据或其他配置设置),请确保在DigitalOcean Droplet中已正确设置。您可以通过以下方式配置环境变量:
~/.bashrc
、~/.bash_profile
或 /etc/environment
).env
文件中设置
示例:设置MySQL根密码的环境变量
export MYSQL_ROOT_PASSWORD='your_password'
然后加载变量:
source ~/.bashrc
在将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
)或应用自定义的日志路径。
@ A your_droplet_ip
DNS 完全指向 Droplet 后,即可将生产流量切换到 DigitalOcean,期间密切监控:
在本教程中,我们已经带着你一步步将运行中的应用从 AWS EC2 迁移到 DigitalOcean Droplet —— 从评估现有环境、创建和配置 Droplet,到传输文件和数据库、测试和更新 DNS,实现最小化停机时间的平滑切换。
此过程能帮助你降低云成本、简化基础设施管理,并获得更灵活的部署环境。无论是独立项目还是生产级应用,迁移到 DigitalOcean 都能让你享受面向开发者的简洁定价和现代化体验。
每个应用栈各有差异,可能需要根据具体情况添加额外步骤。如需帮助,DigitalOcean 为符合条件的项目提供免费迁移服务,帮助你更快、更自信地完成过渡, 具体详情可直接咨询 DigitalOcean中国区独家战略合作伙伴卓普云AI Droplet。