1) 选择区域:根据用户分布、合规和延迟选择美东(us-east-1)、美西(us-west-1)或中部。测试方法:从本地运行 ping/traceroute 及使用 cloud provider 的 network testing 工具。
2) 实例类型:按 CPU/内存/磁盘 IOPS 选型(例如 AWS 的 t3/t3a、m5、c5)。对 IO 敏感应用优先选择高 IOPS 或 NVMe 本地盘。
3) 成本考虑:建立预算表,启用按小时计费或预留实例、savings plan 比较。
1) 控制台创建/CLI 创建:在控制台选择镜像(Ubuntu 22.04 LTS)、实例类型、密钥对(或上传公钥)。CLI 示例(AWS):aws ec2 run-instances --image-id ami-xxx --instance-type t3.medium --key-name mykey --security-group-ids sg-xxx。
2) 安全组规则:只开放必要端口(SSH 22,HTTP 80,HTTPS 443,应用端口)。限制 SSH 来源为开发团队 IP 或使用跳板机。
3) 网络与子网:将实例放入私有子网并用负载均衡器/弹性 IP 做外部访问,开启自动分配公有 IP 视业务需要。
1) SSH 登录:本地生成密钥 ssh-keygen -t ed25519 -C "dev@team";chmod 600;ssh -i mykey.pem ubuntu@<公网IP>。
2) 系统更新:sudo apt update && sudo apt upgrade -y;设置时区 timedatectl set-timezone "America/New_York"。
3) 用户与 sudo:添加用户 sudo adduser deploy;usermod -aG sudo deploy;禁用 root 登录(编辑 /etc/ssh/sshd_config,PermitRootLogin no),重启 SSH 服务 systemctl restart ssh。
1) 查看新盘:lsblk 找到未分区磁盘(例如 /dev/xvdf)。
2) 格式化并挂载:sudo mkfs -t ext4 /dev/xvdf;sudo mkdir /data;sudo mount /dev/xvdf /data。
3) 配置 /etc/fstab:获取 UUID sudo blkid /dev/xvdf,添加 UUID=xxxx /data ext4 defaults,nofail 0 2,测试 sudo mount -a。
4) 快照与恢复:使用控制台或 CLI 创建快照以备份关键数据。
1) 安装 Docker:sudo apt install -y ca-certificates curl gnupg lsb-release;curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg;然后添加 repo 并安装 docker-ce 与 docker-compose-plugin。
2) 准备 Docker Compose:在 /home/deploy/app 创建 docker-compose.yml,示例服务 nginx + app。启动:sudo docker compose up -d。
3) 配置反向代理与 SSL:安装 certbot,sudo apt install certbot python3-certbot-nginx;配置 nginx 站点并运行 sudo certbot --nginx -d example.com,测试自动续期 sudo certbot renew --dry-run。
4) CI/CD:在 GitLab/GitHub Actions 中配置 SSH 部署,用私钥添加到 runner 或使用 cloud provider 的部署服务(CodeDeploy、Cloud Build)。
1) 日志与告警:安装 Prometheus + Grafana 或使用云监控(CloudWatch/Stackdriver),配置 CPU、内存、磁盘、网络阈值告警并绑定 Slack/邮件。
2) 性能测试:使用 ab/hey 或 wrk 做 HTTP 压力测试,使用 iperf3 测试网络带宽。记录 baseline 并根据瓶颈调整实例类型。
3) 安全性强化:安装 ufw,sudo ufw allow OpenSSH; sudo ufw allow 'Nginx Full'; sudo ufw enable;启用 fail2ban;定期更新与自动补丁(unattended-upgrades)。
4) 备份与恢复:数据库使用定时逻辑备份(mysqldump/pg_dump)并上传到对象存储(S3),配置生命周期与跨区复制;对关键实例做 AMI/快照备份。
问:开发团队常问——“美国云服务器延迟会不会影响国内用户体验?”
答:会有影响,延迟取决于用户地域和网络路径。解决办法:部署 CDN(加速静态资源),对重要用户群体做多区域部署(美东+亚太),或使用边缘服务。先用 ping/traceroute/浏览器端 RTT 测试,再决定是否需要迁移或多区域负载均衡。
问:开发团队关心——“成本控制有哪些实操措施?”
答:使用按需与预留实例混合,设置预算告警与成本中心标签;使用弹性伸缩避免长时间超配;定期审查闲置资源(未用的卷、快照、IP);使用自动化脚本在非工作时段关闭开发环境。
问:开发团队疑问——“遇到部署失败如何快速定位?”
答:按优先级排查:1) 检查安全组/防火墙是否阻断端口;2) 查看实例系统日志 /var/log/syslog、docker logs 或 journalctl;3) 确认磁盘是否已满 df -h;4) 用 curl 本机端口确认服务是否启动;5) 若是网络问题,用 traceroute/ss/tcpdump 协助定位。记录复盘步骤与恢复脚本以便下次快速处理。