ECS 的介绍和使用

目录

一、ECS

[二、弹性伸缩 ESS + 与 ALB 联动](#二、弹性伸缩 ESS + 与 ALB 联动)


一、ECS

1、一台生产 ECS 的标准生命周期

规划(VPC/规格/标签)

→ 创建(私网、安全组、密钥)

→ 初始化(数据盘、Agent、基线)

→ 纳管(监控、快照、堡垒机)

→ 服役(发布、扩容、变更)

→ 退役(备份 → 下线 → 释放/归档镜像)

企业里很少"开一台机随便玩",而是按这个闭环管理。


2、实操

1:挂载并使用数据盘(Linux)

目标:业务数据放 /data,和系统盘分开。

1)控制台挂载

  1. ECS 实例 → 块存储 → 挂载云盘
  2. 选同可用区的数据盘
  3. 建议:生产数据盘 不要 轻易勾选"随实例释放"(防误删实例丢数据)

2)初始化(空盘才格式化)

bash 复制代码
# 看盘符(常见 vdb / nvmeXn1)
lsblk

# 分区(示例:整盘一个区,按实际盘符改)
sudo fdisk /dev/vdb

# 格式化
sudo mkfs.ext4 /dev/vdb1

# 挂载
sudo mkdir -p /data
sudo mount /dev/vdb1 /data

3)开机自动挂载

写入 /etc/fstab(建议加 nofail,避免盘异常导致开不了机):

bash 复制代码
sudo cp /etc/fstab /etc/fstab.bak

# 用 UUID 挂载更稳(先 blkid 查 UUID)
echo 'UUID=xxxx-xxxx /data ext4 defaults,nofail 0 2' | sudo tee -a /etc/fstab

sudo mount -a

有数据的盘:禁止再次 mkfs,只挂载即可。

官方:挂载数据盘 · Linux 初始化


2:快照与回滚

自动快照

  1. 快照 → 自动快照策略
  2. 示例:每天 02:00,保留 7
  3. 绑定到系统盘 + 数据盘
  4. 避开业务高峰

手动快照(变更前)

升级、改配置、重装前:先对手动打快照,写清楚备注:2026-07-29 before-nginx-upgrade

回滚注意

  • 回滚云盘通常要停机窗口
  • 回滚会回到快照时间点,之后的数据会丢
  • 先确认快照时间、再操作

3:自定义镜像(黄金镜像)

目的:新机器环境一致,开箱即用。

推荐流程:

  1. 用一台"样板机"装好:
    监控 Agent、安全 Agent、运行时、日志采集、常用工具
  2. 清理临时文件、历史密钥(别把私钥打进镜像)
  3. 实例上 创建自定义镜像(或系统盘快照转镜像)
  4. 以后批量开机器都选这个镜像

检查清单:

  • /etc/fstab 与数据盘情况匹配
  • 云助手在线
  • 主机名/机器码类配置不要写死冲突项
  • 镜像命名:prod-base-alinux3-20260729

官方:从实例创建自定义镜像


4:云助手批量运维

云助手 = 不用 SSH 登录,也能在机器上跑命令/脚本。

企业用途:

  • 批量装包、改配置
  • 应急采集日志
  • 配合 OOS 做标准化变更

使用前确认实例 云助手 Agent 在线。

比"每个人都 SSH 上去改"更可控、可审计。


5:升降配与扩容

需求 做法
CPU/内存不够 实例 升降配(常需停机)
磁盘满了 云盘 扩容 + 系统内扩文件系统
临时流量高 加机器 + SLB,或弹性伸缩
长期稳态降本 换更合适规格 / 付费方式

企业注意:

  • 生产升降配要变更窗口
  • 先看监控:到底是 CPU、内存,还是磁盘 IO/网络瓶颈
  • 升配前打快照

6:监控告警(最少要开)

在 CloudMonitor / ECS 监控里,建议至少:

指标 建议阈值思路
CPU 使用率 持续 > 80% 告警
内存使用率 持续偏高告警
磁盘使用率 > 85% 告警
磁盘 inode 防"空间还在但无法建文件"
网络流量/连接数 异常突增

告警接到:钉钉/短信/电话 + 值班人。

只看监控不够,重要应用还要有日志(SLS)和健康检查(SLB)。


3、日常操作手册(可当 checklist)

A. 新应用上线(2 台起步)

  1. 双可用区各 1 台 ECS(同镜像、同规格)
  2. 加入同一后端服务器组 / SLB
  3. 安全组只放行 SLB 与堡垒机
  4. 绑定自动快照 + 监控告警
  5. 打标签:env=prod app=xxx owner=xxx
  6. 走一次故障演练:停一台,看 SLB 是否切走

B. 变更发布

  1. 打快照 / 确认可回滚
  2. 先改 1 台(或灰度)
  3. 观察监控与日志
  4. 再全量
  5. 记录变更单

C. 磁盘告警处理

  1. 查是哪个分区满
  2. 清日志/扩容云盘
  3. 扩容后 系统内 也要扩文件系统
  4. 复盘是否日志轮转没配好

D. 机器要释放

  1. 确认无唯一数据(或已备份)
  2. 需要时保留自定义镜像/快照
  3. 从 SLB/域名摘流
  4. 再停机释放
  5. 检查是否还有未删快照持续计费

4、常见故障速查

现象 先查什么
连不上 安全组、ACL、是否在私网、堡垒机白名单、实例是否运行中
能连但访问不了网站 进程是否起来、安全组端口、SLB 健康检查、本机防火墙
很卡 CPU/内存/磁盘 IO/带宽,是否被打满
重启后 /data 没了 fstab 未配置自动挂载
突然变慢 是否在打快照、云盘性能水位、邻居干扰少见时看监控
权限调 API 失败 是否绑了实例 RAM 角色、角色策略是否够

5、和 RAM / VPC / 堡垒机再串一次

  • RAM:运维用子账号+MFA 登录控制台
  • VPC:ECS 在私网交换机,无公网 IP
  • NAT:需要时统一出网
  • SLB/ALB:统一入口,双 AZ 后端 ECS
  • 堡垒机:人登录机器的唯一正规入口
  • 快照/镜像:备份与复制标准环境
  • 角色 STS:程序无 AK 访问云产品

小结

ECS 用起来的关键不是"会买",而是:盘分开、快照在、镜像标准、监控告警、双机多 AZ、变更可回滚。

二、弹性伸缩 ESS + 与 ALB 联动

目标:流量变大自动加机器,变小自动减机器;新机器自动进 ALB,下线机器自动从 ALB 摘掉。

官方参考:什么是弹性伸缩 · ESS 为 ALB 自动加减后端


1、解决的问题

固定 2 台 ECS 的问题:

  • 大促时不够用 → 要人手忙脚乱加机器,还要手动挂到 ALB
  • 低谷时太浪费 → 机器空转还在花钱
  • 手动加减容易漏:机器加了但没进 ALB,或缩容了但流量还在打

ESS + ALB 的效果:

用户 → ALB → 后端服务器组(自动增减的 ECS 们)

ESS 伸缩组

(忙了扩容,闲了缩容,并自动登记/摘除 ALB)


2、ESS 核心零件

概念 大白话
伸缩组 一队可扩可缩的机器群,有最小/最大台数
伸缩配置 / 启动模板 "新机器长什么样"的模板(规格、镜像、安全组、交换机...)
伸缩规则 一次加减几台,或调到多少台
报警任务 看监控(如 CPU),到阈值就执行规则
定时任务 到点加减(如每天 9 点扩、22 点缩)

和 ALB 的关系:

伸缩组关联 ALB 服务器组 后:扩容实例自动加入服务器组;缩容实例自动移出。


3、联动全景图

① 创建 ALB + 监听 + 服务器组(开启健康检查)

② 创建伸缩组(多可用区交换机)并关联该服务器组

③ 创建伸缩配置(用你的黄金镜像)

④ 启用伸缩组,设最小/期望/最大实例数

⑤ 配置报警:CPU 高 → 扩容;CPU 低 → 缩容

⑥ 观察:新 ECS 自动出现在 ALB 后端;缩容时自动消失

前提硬条件:

  • 伸缩组与 ALB 服务器组在同一 VPC
  • ALB 监听已配,且服务器组健康检查已开
  • 业务必须支持横向扩展(无状态或状态外置到 Redis/RDS/OSS)

4、企业级落地步骤

步骤 0:业务先"可扩"

不适合硬上 ESS 的情况:

  • 本地磁盘存关键会话/文件
  • 单机定时任务会重复跑多份
  • 强依赖固定 IP

先做到:会话进 Redis,文件进 OSS,配置进配置中心,任务有分布式锁或独立调度。


步骤 1:准备 ALB

  1. 创建 ALB(建议至少 2 个可用区)
  2. 创建 服务器组(类型选 ECS/IP,按实际)
  3. 配置 健康检查(如 HTTP /health,或 TCP 端口)
  4. 创建监听:如 HTTPS:443 → 转发到该服务器组
  5. 安全组:ECS 放行来自 ALB/相应网段的业务端口

健康检查失败的机器,ALB 不会把流量打上去------这是弹性安全网。


步骤 2:创建伸缩组(关联 ALB)

关键配置示例:

建议
类型 ECS
网络 你的生产 VPC
交换机 至少 2 个可用区(库存与容灾)
最小实例数 2(保底高可用)
最大实例数 10(成本天花板)
期望实例数 2(当前目标)
关联 ALB 服务器组 选上一步的组
端口 / 权重 80 / 50(权重 0 = 不接流量)
扩缩容策略 多 AZ 可用 均衡分布(更均匀)或优先级策略

启用后:组内实例会自动登记到 ALB 服务器组。

官方:创建 ECS 伸缩组


步骤 3:创建伸缩配置(机器模板)

伸缩配置决定"扩出来的机器长啥样":

  • 镜像:自定义黄金镜像(已含应用/Agent)
  • 规格:可填多个规格做库存兜底(如 g/c 相近规格)
  • 安全组:与现网一致
  • 系统盘/数据盘:按模板
  • 登录凭证、标签:env=prod app=xxx managed-by=ess
  • (推荐)实例 RAM 角色

镜像里应用最好开机自启;或用云助手/用户数据脚本拉起服务。

否则机器进了 ALB,健康检查会一直失败。


步骤 4:伸缩规则 + 报警任务(自动加减)

扩容规则示例: 每次增加 1 台(或 2 台)

缩容规则示例: 每次减少 1 台

报警任务示例:

任务 指标条件 动作
扩容 伸缩组 CPU 平均值 ≥ 70%,持续 3~5 分钟 执行扩容规则
缩容 伸缩组 CPU 平均值 ≤ 30%,持续 10~15 分钟 执行缩容规则

也可用 ALB 相关指标(如单机 QPS)做更贴近业务的伸缩。

冷却时间(Cooldown):刚扩完别立刻再缩/再扩,避免来回抖。

企业常见:扩容冷却短一点,缩容更保守(防抖)。


步骤 5:验证联动是否成功

  1. 把期望实例数从 2 改成 3 → 应新建 1 台 ECS
  2. 到 ALB 服务器组看后端:应出现新实例(名称常带 ESS 相关特征)
  3. 等健康检查变健康 → 开始接流量
  4. 压测抬高 CPU → 触发扩容
  5. 降压后 → 触发缩容,实例从服务器组移除并释放/回收

官方案例:使用伸缩组为 ALB 加减后端


5、扩缩容时实际发生了什么

扩容

报警触发 → ESS 按伸缩配置创建 ECS

→ 实例加入伸缩组

→ 自动加入 ALB 服务器组(指定端口/权重)

→ ALB 健康检查通过

→ 开始分发流量

缩容

报警触发 → ESS 选中要移除的实例

→ 从 ALB 服务器组摘除(停止接新流量)

→ (可配)等待连接排空/生命周期钩子做优雅下线

→ 释放或转入停机回收模式

企业进阶:用 生命周期挂钩,缩容前先调接口摘流、落盘、报就绪,再真正删除。


6、企业级注意事项(很重要)

  1. 最小台数 ≥ 2,且跨 AZ:弹性不等于取消高可用保底
  2. 最大台数必须设:防止误配或被打爆后无限扩、费用失控
  3. 缩容要保守:指标要持续一段时间再缩,避免抖动
  4. 健康检查路径要轻量且真实:/health 应代表"能干活"
  5. 新实例要能自举:镜像或启动脚本保证服务自动起来
  6. 无状态优先:有状态组件(DB)不要丢进同一个盲目伸缩组
  7. 成本:ESS 本身通常不单独收服务费,但 ECS/ALB/流量照常计费
  8. 库存:多规格 + 多交换机,降低"要扩却没货"失败率

7、三种触发方式怎么选

方式 适合 例子
报警(动态) 负载不可预测 CPU/QPS 高了加机器
定时 规律高峰 工作日 8:30 扩到 6 台,21:00 缩到 2 台
手动/改期望数 活动保障、演练 大促前先手动扩到 8 台

企业常组合:保底最小数 + 定时抬底座 + 报警做尖峰。


8、和 NLB / CLB 的关系

  • ALB:Web/API,关联的是 ALB 服务器组(重点)
  • NLB:四层高并发,也可关联 NLB 服务器组
  • CLB:传统型,关联 CLB 实例/后端组

新 HTTP 业务优先 ESS + ALB。


小结

ESS 管"机器数量变不变",ALB 管"流量怎么分"。

两者联动后:忙自动加并挂载,闲自动摘并减机------前提是应用无状态、健康检查可靠、多 AZ 保底、最大数控成本。

相关推荐
笨鸟先飞,勤能补拙1 小时前
AI 赋能网络安全领域深度剖析
网络·人工智能·windows·安全·web安全·网络安全·github
姜太小白1 小时前
【Linux】df -h 卡住问题的通用排查与解决方案总结
linux·运维·php
土星云SaturnCloud2 小时前
抽水蓄能设备智慧运营:基于土星云边缘计算实现机组全生命周期预测性维护
服务器·人工智能·ai·边缘计算
fengyehongWorld2 小时前
Linux 终端快捷键
linux·运维
hyf3266333 小时前
泛程序:从零开始搭建稳定程序项目框架
运维·服务器·爬虫·百度·seo
哎呦喂我去去去3 小时前
C#实现屏幕墙:同时监控多个电脑桌面(支持Windows、信创Linux、银河麒麟、统信UOS)
linux·windows·c#
NiceCloud喜云3 小时前
海外云服务器怎么选?适用场景、价格和避坑经验总结
运维·服务器
中微极客4 小时前
多智能体编排实战:CrewAI vs AutoGen(2026版)
大数据·网络·人工智能
小王C语言4 小时前
【3. 基于 Vibe Coding 的 OJ 平台】. 构建仓库、环境准备、需求梳理、安装依赖
网络·c++