使用 AWS Systems Manager 进行舰队管理 - 补丁应用、清单与 Run Command 的自动化
使用 Patch Manager 自动化补丁应用,使用 Run Command 提高远程操作的效率。此外还介绍基于 Session Manager 的无需 SSH 的 Shell 访问。
Systems Manager 的主要功能
Systems Manager 是一项统一 EC2 实例和本地服务器运维管理的服务。它将安装了 SSM Agent 的实例作为托管节点进行管理,并提供补丁应用、命令执行、会话连接、清单收集、参数管理等功能。SSM Agent 预装在 Amazon Linux 2、Amazon Linux 2023、Ubuntu、Windows Server 的 AMI 中。Systems Manager 本身的使用费用为免费,只产生 EC2 实例的费用。
使用 Patch Manager 进行补丁管理
Patch Manager 自动执行操作系统和应用程序的补丁应用。在补丁基线中定义要应用的补丁的分类(安全、错误修复、功能增强)和严重性(Critical、Important、Medium、Low)。同时设置批准规则(例如发布后 7 天自动批准)。在维护窗口中定义补丁应用的计划(例如每周日 2:00 AM),在工作时间以外自动执行。通过补丁合规性仪表板可以以列表形式查看整个舰队的补丁应用状况,并识别未应用补丁的实例。还可以设置在应用补丁前自动创建快照,在应用补丁后出现问题时能够回滚。
Run Command 与 Session Manager
Run Command 是在托管节点上远程执行 SSM 文档(预定义的命令集)的功能。使用 AWS-RunShellScript 执行 Shell 命令,使用 AWS-RunPowerShellScript 执行 PowerShell 命令。目标可以通过标签、资源组、手动选择来指定,并且可以同时向数千台实例发送命令。Session Manager 提供基于浏览器的 Shell 访问,无需管理 SSH 密钥,也无需在安全组中开放 SSH 端口。会话日志会自动记录到 S3 或 CloudWatch Logs,可以审计谁在何时执行了哪条命令。
Systems Manager 的费用
Systems Manager 的主要功能(Patch Manager、Run Command、Session Manager、Inventory)可以免费使用。安装和运行 SSM Agent 也不会产生额外费用。产生费用的只是高级功能,例如 Advanced 参数(Parameter Store 中超过 8 KB 的参数,每个参数每月约 0.05 美元)(截至 2026 年 8 月)。OpsCenter 的 OpsItem(每 1,000 个约 2.97 美元)也属于此类(截至 2026 年 8 月)。Change Manager 的变更请求(每 1,000 个约 0.326 美元)等同样属于此类(截至 2026 年 8 月)。在所有运行 EC2 的环境中,没有理由不启用免费的基本功能。
使用 State Manager 和 Automation 进行自动化
Run Command 用于单次执行命令,而 State Manager 是让节点持续保持“应有状态”的功能。如果预先定义代理的配置和软件的安装状态,即使配置发生变化,它也会定期将节点恢复到期望的状态。Automation 按照称为运行手册的操作手册,自动执行 AMI 的创建、实例的重启以及跨越多个步骤的运维工作。由于可以插入批准步骤,因此能够在生产环境的操作中加入人工检查,同时将例行任务交给机器执行。
清单与合规性
Inventory 从托管节点收集已安装的软件、操作系统的配置、网络设置、正在运行的服务等信息。收集的数据汇总到 S3,通过 Athena 查询或使用 Amazon Quick Sight(原 Amazon QuickSight)进行可视化。这样可以横向掌握整个舰队的配置。合规性功能汇总补丁应用状况和 State Manager 关联的结果,并列出不符合标准的节点。由此可以持续跟踪哪些服务器偏离了要求,并判断修正的优先顺序。
混合环境与本地环境的管理
Systems Manager 不仅可以统一管理 AWS 上的 EC2,还可以统一管理本地及其他环境中的服务器。如果使用混合激活所颁发的注册信息安装 SSM Agent,这些服务器也可以作为托管节点进行处理。由于补丁应用、命令执行、会话连接等功能在云端和本地都可以按照相同的操作体系使用,因此可以降低迁移期间和混合环境中的运维负担。能够从一个控制台管理跨越多个站点的服务器是一大优势。
引入的最佳实践与安全
如果使用 Session Manager,可以取消 SSH 端口和堡垒服务器,在关闭所有入站端口的状态下安全地连接 Shell。连接权限通过 IAM 控制,并将会话日志记录到 CloudWatch Logs 或 S3 以审计操作。为实例授予最小权限的实例配置文件,只允许必要的 API。对于不对互联网开放的私有子网中的节点,通过 VPC 端点访问 Systems Manager 的配置是安全的。组合这些措施后,会形成攻击面最小化的运维基础。
总结
Systems Manager 是一项统一并自动化 EC2 舰队运维管理的服务。Patch Manager 自动化补丁应用,Run Command 提高远程操作的效率,Session Manager 提供安全的 Shell 访问。它可以免费使用,推荐在所有运行 EC2 的环境中引入。
参考资料(AWS 官方)
本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。
如本页内容与官方文档不一致,请以官方文档为准。