4、云服务器(ECS/EC2)部署:实例选型、购买、SSH登录、初始化配置、弹性伸缩
好,咱们进入正题。云服务器,说白了就是你在云上租了一台电脑。但这台电脑怎么选、怎么买、怎么连、怎么配,每一步都有讲究。我这些年踩过的坑,今天一次性给你讲透。
4.1 实例选型:别上来就选最大的
很多人第一次买云服务器,习惯性选「最大配置」。其实没必要。我见过太多项目,8核16G的机器跑个静态页面,CPU占用率常年不到5%。这不是浪费钱吗?
选型前,先问自己三个问题:
- 业务类型是什么? 是计算密集(视频转码、科学计算),还是IO密集(数据库、缓存),还是普通Web应用?
- 流量预期多大? 日均PV多少?峰值并发多少?
- 预算多少? 这个最实在,别打肿脸充胖子。
以阿里云ECS为例,常见实例族如下:
| 实例族 | 适用场景 | 特点 |
|---|---|---|
| 通用型(g7) | Web应用、轻量数据库 | CPU与内存配比1:4,均衡型 |
| 计算型(c7) | 视频转码、批处理 | CPU配比高,1:2 |
| 内存型(r7) | Redis、内存数据库 | 内存配比高,1:8 |
| 突发性能型(t6) | 低负载、开发测试 | 有CPU积分限制,长期高负载不适用 |
4.2 购买流程:别忽略这几个细节
买服务器看着简单,填个表单就行。但有几个坑,我当年都踩过。
第一,地域选择。 服务器离用户越近,延迟越低。你的用户主要在国内,就选华东、华北。用户在国外,就选新加坡、美西。别问我为什么有人把服务器买到法兰克福,结果国内用户访问慢成狗。
第二,网络带宽。 这里有个常见误区:很多人只买1Mbps带宽,觉得够用。你想想看,1Mbps换算下来,理论下载速度才128KB/s。一个稍微大点的图片加载都要好几秒。我个人习惯,生产环境至少5Mbps起步。
第三,系统镜像。 选CentOS还是Ubuntu?我个人的偏好:CentOS 7已经停止维护了,现在推荐Ubuntu 22.04 LTS或者Rocky Linux。别选那些冷门发行版,出了问题社区都找不到人问。
4.3 SSH登录:别再用密码了
服务器买好了,怎么连?SSH。但这里我要强调:千万别用密码登录。
为什么?因为互联网上到处都是扫描机器人。你只要开了密码登录,24小时内就会有成千上万次暴力破解尝试。我亲眼见过一台新开的服务器,不到2小时就被攻破了——密码是admin123。
正确的做法是使用密钥对登录。流程如下:
- 在本地生成密钥对:
ssh-keygen -t ed25519 -C "your_email@example.com" - 将公钥上传到服务器:
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@你的服务器IP - 修改SSH配置文件,禁用密码登录
# 编辑 /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin prohibit-password
# 重启SSH服务
systemctl restart sshd
4.4 初始化配置:新服务器到手后的标准操作
新服务器就像毛坯房,得先装修才能住。我有一套标准流程,每次新机器到手都这么干:
第一步:更新系统
apt update && apt upgrade -y # Ubuntu
yum update -y # CentOS
第二步:创建普通用户
别直接用root干活。创建一个普通用户,赋予sudo权限。
useradd -m -s /bin/bash deploy
passwd deploy
usermod -aG sudo deploy
第三步:配置防火墙
只开放必要的端口。Web服务器开80和443,数据库不开公网端口。
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
第四步:配置时区和NTP
服务器时间不准,日志排查会疯掉。
timedatectl set-timezone Asia/Shanghai
apt install chrony -y
systemctl enable --now chronyd
第五步:安装常用工具
curl、wget、git、vim、htop,这些基本工具先装上,省得后面要用的时候手忙脚乱。
4.5 弹性伸缩:自动应对流量洪峰
业务做大了,流量会有波峰波谷。双十一流量暴涨,平时又很平稳。手动扩缩容?不现实。这时候就需要弹性伸缩。
弹性伸缩的核心逻辑很简单:设定一个指标,比如CPU使用率超过70%就加机器,低于30%就减机器。
以阿里云的弹性伸缩为例,配置步骤:
- 创建伸缩组:指定最小实例数(比如2台)、最大实例数(比如10台)、默认实例数(比如2台)
- 配置伸缩规则:比如「CPU使用率 > 70% 持续5分钟,增加1台」
- 关联负载均衡:新加的机器自动加入SLB,流量自动分发
- 设置冷却时间:避免频繁伸缩,一般设置300秒
另外,别忘了设置健康检查。如果某台机器挂了,弹性伸缩会自动把它替换掉。我遇到过的情况:某次后端服务内存泄漏,机器慢慢变慢,但还没完全挂掉。健康检查发现响应超时,自动替换了实例,业务完全没受影响。
最后说一句:弹性伸缩不是一劳永逸的。你得持续观察监控数据,调整伸缩策略。比如,有些业务是凌晨流量低,但凌晨可能有定时任务跑批,CPU会突然飙高。这时候如果触发扩容,反而浪费钱。嗯,这些细节都得根据实际情况来调。
好了,云服务器的选型、购买、登录、初始化、弹性伸缩,这一套流程走下来,你的服务器应该能稳稳当当地跑起来了。下一章,咱们聊聊域名和DNS,让用户能通过域名访问你的服务。