View a markdown version of this page

使用 appcmd.exe 将 IIS-hosted 应用程序迁移到 Amazon EC2 - AWS 规范指引

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 appcmd.exe 将 IIS-hosted 应用程序迁移到 Amazon EC2

Deepak Kumar,Amazon Web Services

Summary

将 Internet Information Services(IIS)托管的应用程序迁移到 Amazon Elastic Compute Cloud(Amazon EC2)实例时,需要解决多项身份验证难题。这些挑战包括重新输入应用程序池标识的域凭证,以及可能需要重新生成机器密钥以确保网站功能正常运行。此模式描述了在 Amazon EC2 实例上,使用 IIS 的备份和还原功能的简洁迁移方法。该方法使用 appcmd.exe 在目标 Amazon EC2 实例上卸载并重新安装 IIS,从而成功迁移 IIS-hosted 网站、应用程序池身份和计算机密钥。

先决条件和限制

先决条件

  • 目标服务器处于活动状态 AWS 账户 。

  • 一个正常运作的源 IIS 服务器,上面托管有网站。

  • 了解 IIS 工作原理,例如管理和配置。

  • 系统管理员可以访问源服务器及目标服务器。

  • 已完成源 IIS 服务器向目标服务器的迁移 AWS 账户。您可以使用迁移工具 AWS Transform MGN,例如基于快照的 Amazon 系统映像 (AMI) 方法或其他迁移工具。

  • 源服务器和目标服务器上均有 Windows Server 2012 R2 或更高版本。

  • 两台服务器上都安装了微软.NET Framework 4.5 或更高版本(aspnet_regiis.exe 密钥容器操作所必需的)

  • 一种将备份文件和导出的关键 XML 文件从源服务器传输到目标服务器的方法,例如亚马逊简单存储服务 (Amazon S3) Service、共享网络驱动器或安全副本。

  • 源和目标 IIS 实例必须运行相同的 IIS 版本(8.5 或 10.0)。

限制

产品版本

  • IIS 8.5 或 IIS 10.0

架构

源技术堆栈

  • 安装了 IIS 8.5 或 IIS 10.0 的 Windows Server

目标技术堆栈

  • 安装了 IIS 8.5 或 IIS 10.0 的 Windows Server

  • AWS Transform MGN

目标架构

下图显示了此模式的工作流和架构组件。

将 IIS-hosted 应用程序迁移到 Amazon EC2 的工作流程。

此解决方案包括以下步骤:

  1. 在公司数据中心的源 IIS 服务器上@@ 安装和配置 AWS 复制代理。此代理启动复制过程并管理向的数据传输。 AWS

  2. AWS 复制代理与 MGN 建立安全连接并开始复制源服务器数据,包括 IIS 配置、网站和应用程序文件。

  3. MGN 使用复制的数据在应用程序子网中启动 Amazon EC2 实例。目标 Amazon EC2 实例运行 IIS,包含迁移的应用程序及其关联的亚马逊弹性区块存储 (Amazon EBS) 卷。初始复制后,MGN 会继续同步更改,直到您准备好切换到新环境为止。

工具

AWS 服务

其他工具

  • 适用于 Windows Server 的 Internet Information Services(IIS)是具备可扩展开放式架构的 Web 服务器,用于在网络上托管内容。IIS 提供了一组管理工具,包括管理和命令行工具(例如 appcmd.exe)、托管代码和脚本 API 以及 Windows PowerShell 支持。

最佳实践

  • 安全导出的密钥文件-成功迁移后,应安全地传输包含导出私钥的 XML 文件(在传输过程中加密),并从源服务器和目标服务器上删除。

  • 在非生产环境中进行测试-在生产环境中运行测试服务器之前,先在测试服务器上执行备份和恢复过程。

  • 记录应用程序池身份-在迁移之前,请记录所有应用程序池身份凭证,因为恢复后必须重新输入密码。

  • 单独备份 SSL 证书 — appcmd.exe 备份不包括 SSL 或 TLS 证书。使用证书 MMC 管理单元单独导出这些证书或 PowerShell

  • 验证 Web 内容文件-IIS 配置备份不包括 Web 应用程序文件(wwwroot 内容)。确保通过服务器映像迁移这些镜像 AWS Transform MGN。

操作说明

Task说明所需技能

创建 IIS-hosted 网站、配置密钥和WAS密钥的备份。

要为 IIS-hosted 网站、配置密钥 (iisConfigurationKey) 和密WAS钥 (iisWasKey) 创建备份,请在源服务器上使用 appcmd.exe。使用以下步骤:

  1. 以管理员身份打开命令提示符。

  2. 运行以下命令:cd c:\windows\system32\inetsrv

  3. 运行以下命令,将 <backupname> 替换为您的值:appcmd.exe add backup "<backupname>

要导出配置密钥和 WAS 密钥,请执行以下操作:

  1. 创建导出目录:mkdir C:\temp

  2. 运行以下命令:cd c:\windows\Microsoft.NET\Framework64\v4.0.30319

  3. 运行以下命令:aspnet_regiis.exe -px "iisConfigurationKey" C:\temp\iisConfKey.xml -pri

  4. 运行以下命令:aspnet_regiis.exe -px "iisWasKey" C:\temp\iisWasKey.xml -pri

ISS 管理员
Task说明所需技能

在目标服务器上卸载 IIS

要在目标服务器上卸载 IIS,请执行以下步骤:

  1. 使用管理员权限登录服务器。

  2. 前往服务器管理器

  3. 依次选择管理移除角色和功能下一步下一步

  4. 清除 “Web 服务器 (IIS)” 复选框,然后选择 “下一步” 和 “下一步”。

  5. 选中自动重启目标服务器复选框。卸载过程完成后,系统将重新启动。

  6. 前往 C:\Windows\System32\inetsrv 并确认此文件夹为空,以验证是否成功卸载 IIS。

ISS 管理员

在目标服务器上安装 IIS。

要在目标服务器上安装 IIS,请执行以下步骤:

  1. 使用管理员权限登录服务器。

  2. 前往服务器管理器

  3. 依次选择添加角色和功能下一步下一步下一步下一步

  4. 选中 Web 服务器 IIS 复选框。出现提示时,选择添加功能

  5. 选择 “应用程序开发”、“添加功能” 和 “选择所有功能” 中显示的所有复选框。可以更细致地选择功能,再进行确认。

  6. 选择安装

ISS 管理员
Task说明所需技能

恢复 IIS 网站和配置。

要在目标服务器上恢复从源服务器创建的 IIS 备份,请执行以下步骤:

  1. 在文件夹backup中创建一个名为C:\windows\system32\inetsrv的文件夹,然后将源备份文件夹放入其中。

  2. 以管理员身份打开命令提示符并运行。

  3. 运行以下命令:cd C:\windows\system32\inetsrv

  4. 运行以下命令:C:\windows\system32\inetsrv\appcmd.exe list backup

  5. 运行以下命令:C:\windows\system32\inetsrv\appcmd.exe restore backup <sourcebackup>

  6. 运行以下命令:cd c:\windows\Microsoft.NET\Framework64\v4.0.30319

  7. 运行以下命令:aspnet_regiis.exe -pi "iisConfigurationKey" C:\temp\iisConfKey.xml -exp

  8. 运行以下命令:aspnet_regiis.exe -pi "iisWasKey" C:\temp\iisWasKey.xml -exp

  9. 重置 IIS,然后前往应用程序池标识和网站高级设置重新输入密码。

  10. 打开 IIS 管理器并确认所有网站、应用程序池和虚拟目录均已恢复。

  11. 浏览每个网站以确认其提供的内容是否正确。

  12. 确认恢复成功后,从C:\temp以下位置删除导出的密钥文件:

    del C:\temp\iisConfKey.xml

    del C:\temp\iisWasKey.xml

ISS 管理员

相关资源

AWS 文档

AWS 规范性指导

Microsoft 资源

附加信息

  • appcmd.exe 备份包括:应用程序池、站点、全局配置和 IIS 架构。它不包括 Web 内容文件、SSL 证书或共享配置文件。

  • 对于大规模 IIS 场迁移,请考虑使用该 PowerShell Web-Administration 模块进行脚本化备份和还原操作。