亚马逊云科技的Windows系统更新方式主要是就地升级,即使用实例中系统自带的升级程序进行检测、评估、升级。

但上述方式均存在缺陷,如:更新安装周期长。此外,据实际验证,亚马逊云科技不支持将原实例私有IP分离,并使之在同网络环境下使用。(公有IP保留可通过EIP服务实现)

基于上述原因,当我们遇到短时间的更新时长,且要求保留私有IP的情况下,可通过创建满足需求的新EC2实例(使用指定AMI),将该实例的根卷(Windows的系统盘)创建快照和EBS卷。将原实例的根卷替换为新实例的根卷。该方案的优缺点如下:

优点缺点
更新周期短应用或服务需重新部署
可保留私有IP(主网络接口)
可保证使用较新的亚马逊云科技官方工具
可保证使用较新的补丁
如原系统存在漏洞,可随系统全新替换被解决
需要特别注意的是,该方式需保证C盘为系统盘而非数据盘,并做好必要的数据备份工作和验证,防止因系统盘替换导致数据丢失或其他问题,影响服务部署和运行。

本文以Windows 2016升级到Windows 2019为例,详细介绍该升级方式。在文章后续内容中,以待升级实例新系统实例为名称呼,即便升级完成,也以该名称继续撰写,防止行文混论。

1、数据备份

1.1 留存配置信息

  • 使用 bginfo 等工具保存待升级实例的相关信息,并将之转移至数据盘或其他非被替换根卷留存
  • 保存控制台安全组、IP、实例名称等信息
根据实际需求自行选择配置信息留存方式和内容,本文不再赘述

1.2 创建快照

与1.3创建AMI二选一,创建AMI操作默认包含创建快照,创建快照不包含注册AMI

建议关机状态创建快照

  • 为待升级实例创建快照

1701613329949.png

1.3 创建AMI

与1.2创建快照二选一,创建AMI操作默认包含创建快照

建议关机状态创建AMI

  • 为待升级实例创建AMI

1701613247428.png

2、系统升级

2.1 创建新实例

  • 创建符合需求的实例,使用指定的新操作系统官方AMI,相关配置(实例类型、VPC、子网、可用区等)与待升级实例保持一致

1701613496652.png

2.2 获取新实例密码

  • 使用Console上传密钥获取该实例密码,保留该密码信息

1701613625578.png

2.3 实例关机

  • 将待升级实例和新系统实例关机

1701613683595.png

2.4 创建新实例快照

  • 为新实例打快照

1701613732600.png

2.5 创建卷

  • 通过新实例快照创建新系统EBS卷,相关配置(可用区、容量、卷类型、KMS加密等)与待升级实例根卷保持一致

1701614945154.png

2.6 实例卷分离

  • 将待升级实例的根卷(C盘,/dev/sda1)分离

1701615129414.png

2.7 实例卷附加

  • 将新创建的新系统EBS卷,附加到待升级实例上,指定该卷为/dev/sad1

1701615229509.png

2.8 实例开机

  • 将待升级实例开机,使用 2.2 步骤中获取的新系统实例密码登录该待升级实例,查询系统相关信息,确认升级完成

1701617019905.png

1701615481389.png


re:Invent 2023 近日在美国盛大召开,Werner博士在会上做了拫多技术分享与思考,下图是整理好的**云架构俭约之道:企业架构七大黄金法则**,扫码了解更多详情!

reInvent_2.png

Last modification:December 4, 2023
分享是对我最大的赞赏