1.
简介与目标
本指南面向小团队(1-5人),目标是在华为云(Singapore region)用最小成本实现基本的高可用应用架构:多实例+负载均衡、独立持久化存储、自动扩缩、基础监控与证书管理,尽量使用托管服务减少运维时间。
2.
准备工作(账号、配额与费用估算)
注册华为云账号并实名认证;在控制台选择Region为“Asia Pacific(Singapore)”;检查ECS、ELB、RDS、OBS、Auto-Scaling、DCS配额;用预算表估算月度费用(示例:2台小型ECS + ELB + RDS基础HA + OBS约50-120 USD/月)。
3.
网络与安全组(VPC、子网、路由)
步骤:在VPC服务创建一个VPC(例如vpc-01),创建两个子网(az1、az2)跨AZ以提高可用性;创建路由表并关联子网;在安全组创建规则:允许TCP 22(限管理员IP)、80/443(ELB到ECS)、应用端口(内部)和健康检查端口。示例端口策略:管理机位于单独安全组,仅允许团队IP访问SSH。
4.
生成密钥对与镜像选择
在控制台 > 密钥对 > 创建密钥对并下载私钥;建议选择官方Ubuntu或CentOS镜像(版本稳定且支持cloud-init);为Docker化应用优先选择Ubuntu 22.04或CentOS 7/8。
5.
创建基础ECS实例与初始化脚本
创建一台ECS作为模板(最小2 vCPU、4GB内存可跑小型服务),在“高级配置 > 用户数据”填写cloud-init脚本示例:apt更新、安装Docker、安装docker-compose、拉取镜像并启动。示例cloud-init核心命令:apt update && apt install -y docker.io docker-compose && usermod -aG docker ubuntu。配置好后测试容器启动与健康端点(/health)。
6.
制作镜像与启动配置(用于伸缩)
在模板ECS确认配置无误后制作自定义镜像(镜像管理 > 创建镜像),用于Auto-Scaling的启动配置。备份镜像前清理密钥和临时日志,保留cloud-init以便首次引导执行配置。
7.
部署负载均衡(ELB)并关联后端服务器
在“弹性负载均衡”创建一个ELB(公网或内网根据需求),创建监听器(HTTP 80、HTTPS 443),创建后端服务器组并添加ECS实例(选择健康检查路径/interval)。建议将TLS终止放在ELB:上传证书(可以使用Let's Encrypt在一台ECS生成并导入),或在ELB直接申请托管证书。
8.
数据库与缓存(RDS/DCS)
推荐使用托管RDS(MySQL或PostgreSQL)选择基础HA部署,跨AZ主备可以大幅减低运维成本与复杂度;如果需要缓存,使用DCS(Redis)单节点或主从,选择按需或包年包月视预算。数据库连接通过私网VPC连接,设置RDS安全组只允许来自ECS的私网IP访问。
9.
静态存储与备份(OBS与备份策略)
使用OBS存放用户上传与静态资源,配置生命周期规则(冷/归档)节省费用;定期将数据库备份导出到OBS(RDS可配置自动备份并导到OBS),设置每日快照与7~30天保留策略。
10.
Auto-Scaling 自动伸缩设置
在伸缩服务创建伸缩组:选择已制作好的镜像作为启动配置,设置最小实例1、最大实例3(小团队推荐),定义伸缩策略:CPU>60%持续5分钟则扩容+1,CPU<30%持续10分钟则缩容-1。把ELB后端服务器组与伸缩组关联,确保新实例自动注册到ELB。
11.
部署方式:Docker Compose 实战示例
创建docker-compose.yml示例:包含app、nginx、sidecar(日志或prometheus client)。在cloud-init或镜像中写好docker-compose up -d命令。示例健康检查:nginx代理到app的/health返回200。确保日志写到文件并周期性rotate到OBS(通过cron将日志打包上传到OBS)。
12.
HTTPS 与域名配置(Let's Encrypt + acme.sh)
推荐在ELB做TLS终止。流程:在控制台绑定弹性公网IP到域名的A记录,或使用CNAME到ELB;在一台ECS上用acme.sh申请证书并导入ELB;配置ELB监听器证书并启用HTTP->HTTPS的重定向。证书到期自动更新可以在ECS上用acme.sh脚本并调用华为云API更新ELB证书。
13.
监控与告警(Cloud Eye)
启用Cloud Eye监控ECS、RDS、ELB指标:CPU、内存、网卡、连接数、ELB后端健康数。设置告警策略:服务不可用或主备故障触发邮件/短信/企业微信告警。小团队建议把报警级别区分为P0(立刻通知)与P1(拉取检查)。
14.
流量控制与防DDOS(WAF与Anti-DDoS)
考虑使用华为云WAF或Anti-DDoS基础版保护公网ELB,设置白名单/黑名单与简单的速率限制,防止高请求量导致伸缩延迟与费用突增。按需开启Bot管理规则过滤常见爬虫。
15.
运维与故障演练
建立运维SOP:模拟单节点故障、RDS主备切换、定期恢复OBS备份到临时环境校验;演练时间窗口写入Runbook并分配负责人。确保SSH密钥、API密钥、数据库凭据有安全托管(建议使用华为云的密钥管理服务KMS或第三方Secrets管理)。
16.
成本优化小技巧
使用预留/包年包月实例降低ECS成本;对非高峰资源使用按需或弹性伸缩将实例数量降至最低;OBS生命周期管理和RDS备份保留策略控制存储费用;监控频繁的伸缩导致的额外费用并调整阈值。
17.
常见问题:如何保证单点故障最小化?
问:如何在预算有限的情况下尽量避免单点故障? 答:将重要组件跨AZ冗余(至少2个AZ的ECS和RDS主备),使用ELB做流量分发并配置健康检查,关键数据放RDS/OBS由华为云托管,避免本地磁盘单点;用Auto-Scaling保证实例故障自动替换。
18.
常见问题:如何在小团队中简化运维工作?
问:小团队没有专职运维,如何减少日常运维负担? 答:尽量使用托管服务(RDS、DCS、OBS、ELB),采用容器化镜像与自动化启动脚本(cloud-init),完善监控告警与自动化备份,把复杂运维交给云厂商。
19.
常见问题:首次部署的快速清单
问:我需要一份最小可用的快速清单,步骤是什么? 答:1) 创建VPC+两个子网;2) 创建密钥对;3) 启动一台ECS并配置Docker+应用(制作镜像);4) 创建ELB并接入ECS;5) 启用RDS主备;6) 配置OBS存储和备份;7) 设置Auto-Scaling和Cloud Eye告警;8) 上线域名并配置HTTPS。
来源:小团队如何用华为云新加坡vps实现低成本高可用的应用架构