首页 > 解决方案 > EC2 自动安装更新

问题描述

我最近加入了一家公司,担任 DevOps 工程师,我的职责之一是在 OpsWorks 中配置基础设施(ELB 后面的 EC2 实例与 Aurora 数据库通信)。

我被要求审核有关应用更新的当前解决方案。

在阅读了一些答案后,我感到如果我想自动将安全更新应用于我们的(Centos)EC2 实例那么选项是:

  1. 启动一个新实例(将运行 yum update)的 Lambda 作业,将其附加到 ELB,然后终止“旧”实例
  2. 为每个运行yum update --security的实例(大约有十几个)添加一个 cron 作业,大约每天
  3. 将自定义 JSON 添加到 OpsWorks 层,以便在每次部署后运行 yum 更新

还有许多其他方法可以做到这一点,每一种都有利有弊,所以我想知道关于定期自动更新多个实例的“最佳实践”的共识是什么。

注意:这些实例 24/7 365 全天候运行(即我们从不重新启动它们),代码部署的范围可以从每天到每月不等,具体取决于实例!

标签: amazon-web-servicesamazon-ec2centosaws-lambda

解决方案


好的,这个会有很多意见。

不要自动安装更新,即使是安全更新。有一天你会发现你所有的系统都宕机了,你会争先恐后地找出原因。然后管理层将争先恐后地计算云供应商 XYZ 上的企业系统崩溃的成本。

任何更新,无论大小,安全或应用程序补丁,都不应盲目安装。您应该有安装补丁和更新并验证对系统、应用程序等的影响的测试实例。这些步骤应该记录为 devops 过程。

只有在验证补丁或更新按预期执行后,您才会推出实例更新策略(滚动、蓝/绿等)。

有些人会争辩说,这意味着您将等待太长时间来安装关键的安全补丁。我认为拥有良好的 devops 程序意味着您不断地监控补丁和更新(比如每天早上)。根据错误的严重程度,您将确定是否应该进行紧急更新或让标准 OP(操作实践)继续。


推荐阅读