执行自动升级
您可以使用 AWS Systems Manager SSM 文档在 AWS 上具有 Windows Server 2008 R2 和 SQL Server 2008 R2 Service Pack 3 的实例上执行自动升级。
Systems Manager Automation 文档提供了两个升级途径:
-
使用名为 AWSEC2-CloneInstanceAndUpgradeWindows 的 SSM Automation 文档将 Windows Server 2008 R2 升级到 Windows Server 2012 R2
-
使用名为 AWSEC2-CloneInstanceAndUpgradeSQLServer 的 SSM Automation 文档将 Windows Server 2012 R2 上的 SQL Server 2008 R2 升级到 SQL Server 2016
相关服务
将在自动升级过程中使用以下 AWS 服务:
-
AWS Systems Manager。AWS Systems Manager 是一个功能强大的统一界面,可以集中管理您的 AWS 资源。有关更多信息,请参阅 AWS Systems Manager 用户指南。
-
AWS Systems Manager 代理 (SSM 代理) 是一个 Amazon 软件,可以在 Amazon EC2 实例、本地服务器或虚拟机 (VM) 上安装和配置。SSM 代理让 Systems Manager 可以更新、管理和配置这些资源。代理在 AWS 云中处理 Systems Manager 服务的请求,然后按照请求中的指定运行它们。有关更多信息,请参阅 AWS Systems Manager 用户指南 中的使用 SSM 代理。
-
AWS Systems Manager SSM 文档。SSM 文档定义 Systems Manager 对您的托管实例执行的操作。SSM 文档使用 JavaScript Object Notation (JSON) 或 YAML,并包括您指定的步骤和参数。本主题使用两个 Systems Manager SSM Automation 文档。有关更多信息,请参阅 AWS Systems Manager 用户指南 中的 AWS Systems Manager 文档。
先决条件
要使用 AWS Systems Manager SSM 文档自动完成升级,您必须执行以下任务:
-
使用指定的 IAM 策略创建 IAM 角色,以允许 Systems Manager 在 Amazon EC2 实例上执行自动化任务,并验证您是否满足使用 Systems Manager 的先决条件。
-
选择您希望如何执行自动化的选项。执行选项包括简单执行、速率控制、多账户和区域以及手动执行。
使用指定的权限创建 IAM 角色
有关如何创建 IAM 角色以允许 AWS Systems Manager 代表您访问资源的步骤,请参阅创建角色以向 AWS 服务委派权限。本主题还包含有关如何验证您的账户是否满足使用 Systems Manager 的先决条件的信息。
选择执行选项
在 Systems Manager 控制台上选择自动化时,请选择执行。在选择 SSM 文档后,将提示您选择自动化执行选项。您可以从以下选项中进行选择。在本主题后面提供的途径步骤中,我们使用简单执行选项。
简单执行
如果要更新单个实例,但不希望执行每个自动化步骤以审核结果,请选择该选项。在下面的升级步骤中更详细地介绍了该选项。
速率控制
如果要将升级应用于多个实例,请选择该选项。您可以定义以下设置。
-
参数
该设置(也会在“多账户和区域”设置中设置)定义了如何完成自动化。
-
目标
选择要将自动化应用到的目标。也会在“多账户和区域”设置中设置该设置。
-
参数值
使用自动化文档参数中定义的值。
-
资源组
在 AWS 中,资源是您可以使用的实体。示例包括 Amazon EC2 实例、AWS CloudFormation 堆栈或 Amazon S3 存储桶。如果您使用多个资源,将它们作为一个组进行管理可能是非常有用的,而不是在每个任务中将其从一个 AWS 服务移动到另一个 AWS 服务。在某些情况下,您可能希望管理大量相关的资源,例如,构成应用程序层的 EC2 实例。在这种情况下,您可能需要同时对这些资源执行批量操作。
-
标签
标签帮助您按不同的方式对 AWS 资源进行分类,例如,按用途、所有者或环境进行分类。如果您具有很多相同类型的资源,这种分类是非常有用的。您可以使用分配的标签快速识别特定的资源。
-
速率控制
也会在“多账户和区域”设置中设置速率控制。在设置速率控制参数时,您可以按目标数或队列百分比定义要将自动化应用到的队列数量。
多账户和区域
除了在“速率控制”中指定的参数(也会在“多账户和区域”设置中使用)以外,还具有两个其他设置:
-
账户和组织单位 (OU)
指定要在其中运行自动化的多个账户。
-
AWS 区域
指定要在其中运行自动化的多个 AWS 区域。
手动执行
该选项类似于简单执行,但允许您逐个执行每个自动化步骤并审核结果。
升级途径
共有两种升级途径,它们使用两个不同的 AWS Systems Manager Automation 文档。
-
AWSEC2-CloneInstanceAndUpgradeWindows
。该脚本从您的账户的 Windows Server 2008 R2 实例中创建 Amazon 系统映像 (AMI),并将该 AMI 升级到 Windows Server 2012 R2。该多步骤过程最多可能需要两小时才能完成。在该工作流程中,自动化从实例中创建一个 AMI,然后在您提供的 VPC 和子网中启动新的 AMI。自动化工作流程执行从 Windows Server 2008 R2 到 Windows Server 2012 R2 的就地升级。该工作流程还会更新或安装升级的实例所需的 AWS 驱动程序。在升级完成后,该工作流程创建新的 AMI 并终止升级的实例。
-
AWSEC2-CloneInstanceAndUpgradeSQLServer
。该脚本从您账户的运行 SQL Server 2008 R2 SP3 的 Amazon EC2 实例中创建一个 AMI,然后将该 AMI 升级到 SQL Server 2016 SP2。该多步骤过程最多可能需要两小时才能完成。在该工作流程中,自动化从实例中创建一个 AMI,然后在您提供的子网中启动新的 AMI。接下来,自动化执行 SQL Server 2008 R2 到 SQL Server 2016 SP2 的就地升级。在升级完成后,自动化创建新的 AMI,然后再终止升级的实例。
在自动升级过程中包含两个 AMI:
-
当前运行的实例。第一个 AMI 是当前运行的实例,不会升级该实例。该 AMI 用于启动另一个实例以运行就地升级。在该过程完成后,将从您的账户中删除该 AMI,除非您明确要求保留原始实例。该设置是由
KeepPreUpgradeImageBackUp
参数处理的(默认值为false
,这表示默认删除该 AMI)。 -
升级的 AMI。该 AMI 是自动化过程的结果。第二个 AMI 包含 SQL Server 2016 SP2 而不是 SQL Server 2008 R2。
最终结果是一个 AMI,它是升级的 AMI 实例。
在升级完成后,您可以在 VPC 中启动新的 AMI 以测试应用程序功能。在测试后,在执行另一个升级之前,请计划应用程序停机,然后再完全切换到升级的实例。
-
执行自动升级的步骤
将 Windows 2008 R2 升级到 2012 R2
该升级途径需要满足额外的先决条件才能成功完成。可以在 AWS Systems Manager 用户指南 的 AWSEC2-CloneInstanceAndUpgradeWindows 自动化文档详细信息中找到这些先决条件。
在验证额外的必需任务后,请按照以下步骤使用 AWS Systems Manager 上的自动化文档将 Windows 2008 R2 实例升级到 Windows 2012 R2。
-
从 AWS 管理控制台 打开 Systems Manager。
-
从左侧导航窗格中,选择自动化。
-
选择执行自动化。
-
搜索名为
AWSEC2-CloneInstanceAndUpgradeWindows
的自动化文档。 -
在显示该文档名称时,选择该文档。在选择该文档时,将显示文档详细信息。
-
选择下一步以输入该文档的参数。在页面顶部选择简单执行。
-
根据以下准则输入请求的参数。
-
InstanceID
类型:字符串
(必需)运行 Windows Server 2012 R2 的实例。
-
InstanceProfile
。类型:字符串
(必需)IAM 实例配置文件。这是用于针对 Amazon EC2 实例和 AWS AMI 执行 Systems Manager 自动化的 IAM 角色。有关更多信息,请参阅 AWS Systems Manager 用户指南 中的为 Systems Manager 创建 IAM 实例配置文件。
-
SubnetId
类型:字符串
(必需)这是执行升级过程的子网以及源 EC2 实例所在的位置。验证子网是否具有到 AWS 服务(包括 Amazon S3)和 Microsoft 的出站连接(以下载补丁)。
-
KeepPreUpgradedBackUp
类型:字符串
(可选)如果该参数设置为
true
,自动化将保留从实例中创建的映像。默认设置为false
. -
RebootInstanceBeforeTakingImage
类型:字符串
(可选)默认值为
false
(无重新引导)。如果该参数设置为true
,Systems Manager 将在创建升级 AMI 之前重新引导实例。
-
-
在输入参数后,选择执行。在自动化开始时,您可以监控执行进度。
-
在自动化完成时,您将看到 AMI ID。您可以启动 AMI 以验证是否升级了 Windows 操作系统。
注意
自动化不需要运行所有步骤。根据自动化和实例行为,可以有条件地执行这些步骤。Systems Manager 可能会跳过一些不需要的步骤。
此外,一些步骤可能会超时。Systems Manager 尝试升级并安装所有最新的补丁。不过,根据给定步骤的可定义超时设置,补丁有时会超时。在发生这种情况时,Systems Manager 自动化继续执行下一步,以确保将内部操作系统升级到 Windows Server 2012 R2。
-
在自动化完成后,您可以使用 AMI ID 启动 Amazon EC2 实例以检查升级。有关如何从 AWS AMI 中创建 Amazon EC2 实例的更多信息,请参阅如何从自定义 Amazon 系统映像 (AMI) 中启动 EC2 实例?。
将 SQL Server 2008 R2 升级到 SQL Server 2016
该升级途径需要满足额外的先决条件才能成功完成。可以在 AWS Systems Manager 用户指南 的 AWSEC2-CloneInstanceAndUpgradeSQLServer 自动化文档详细信息中找到这些先决条件。
在验证额外的必需任务后,请按照以下步骤使用 AWS Systems Manager 上的自动化文档将 SQL Server 2008 R2 数据库引擎升级到 SQL Server 2016。
-
如果尚未挂载,请下载 SQL Server 2016 .iso 文件并将其挂载到源服务器中。
-
在挂载该 .iso 文件后,复制所有组件文件,并将其放在所选的任何卷上。
-
拍摄该卷的 EBS 快照,并将快照 ID 复制到剪贴板以供以后使用。有关创建 EBS 快照的更多信息,请参阅 Amazon Elastic Compute Cloud 用户指南 中的创建 EBS 快照。
-
将实例配置文件附加到 EC2 源实例。这允许 Systems Manager 与 EC2 实例通信,并在将其添加到 AWS Systems Manager 服务后在其中运行命令。对于该示例,我们将角色命名为
SSM-EC2-Profile-Role
并将AmazonSSMManagedInstanceCore
策略附加到该角色。请参阅 AWS Systems Manager 用户指南 中的为 Systems Manager 创建 IAM 实例配置文件。 -
在 AWS Systems Manager 控制台的左侧导航窗格中,选择托管实例。验证您的 EC2 实例是否位于托管实例列表中。如果在几分钟后没有看到您的实例,请参阅 AWS Systems Manager 用户指南 中的我的实例在哪里?。
-
在左侧导航窗格中,选择自动化。
-
选择执行自动化。
-
选择
AWSEC2-CloneInstanceAndUpgradeSQLServer
SSM 文档旁边的按钮,然后选择下一步。 -
确保选择了简单执行选项。
-
根据以下准则输入请求的参数。
-
InstanceId
类型:字符串
(必需)运行 SQL Server 2008 R2(或更高版本)的实例。
-
IamInstanceProfile
类型:字符串
(必需)IAM 实例配置文件。
-
SnapshotId
类型:字符串
(必需)SQL Server 2016 安装介质的快照 ID。
-
SubnetId
类型:字符串
(必需)这是执行升级过程的子网以及源 EC2 实例所在的位置。验证子网是否具有到 AWS 服务(包括 Amazon S3)和 Microsoft 的出站连接(以下载补丁)。
-
KeepPreUpgradedBackUp
类型:字符串
(可选)如果该参数设置为
true
,自动化将保留从实例中创建的映像。默认设置为false
. -
RebootInstanceBeforeTakingImage
类型:字符串
(可选)默认值为
false
(无重新引导)。如果该参数设置为true
,Systems Manager 将在创建升级 AMI 之前重新引导实例。
-
-
在输入这些参数后,选择执行。在自动化开始时,您可以监控执行进度。
-
在执行状态显示成功时,展开输出以查看 AMI 信息。您可以使用 AMI ID 为所选的 VPC 启动 SQL Server 2016 实例。
-
打开 EC2 控制台。在左侧导航窗格中,选择 AMI。将会看到新的 AMI。
-
要验证是否成功安装了 SQL Server 2016,请选择新的 AMI,然后选择启动。
-
为该 AMI 选择所需的实例类型、要部署到的 VPC 和子网以及要使用的存储。由于您从 AMI 中启动新的实例,因此,将以选项形式向您提供这些卷以包含在启动的新 EC2 实例中。您可以删除其中的任何卷,也可以添加卷。
-
添加标签以帮助您识别实例。
-
将一个或多个安全组添加到实例中。
-
选择 Launch Instance。
-
选择实例的标签名称,然后在操作下拉列表中选择连接。
-
验证 SQL Server 2016 是否为新实例上的新数据库引擎。