执行基本 IIS 迁移 - Amazon Elastic Beanstalk
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

执行基本 IIS 迁移

本节将指导您如何使用 eb migrate 命令将 IIS 应用程序迁移到 Elastic Beanstalk。

浏览 IIS 环境

在进行任何更改之前,您需要了解服务器上存在哪些资源。先通过运行 eb migrate explore 来浏览您的 IIS 站点,如以下示例所示:

PS C:\migrations_workspace> eb migrate explore

此命令会显示您的 IIS 站点。请参阅以下列表:

Default Web Site Intranet API.Internal Reports

要详细查看每个站点的配置(包括绑定、应用程序和虚拟目录),请添加 --verbose 选项,如以下示例所示:

PS C:\migrations_workspace> eb migrate explore --verbose

以下列表显示了该命令提供的与环境有关的全面信息:

1: Default Web Site: - Bindings: - *:80:www.example.com - *:443:www.example.com - Application '/': - Application Pool: DefaultAppPool - Enabled Protocols: http - Virtual Directories: - /: - Physical Path: C:\inetpub\wwwroot - Logon Method: ClearText - Application '/api': - Application Pool: ApiPool - Enabled Protocols: http - Virtual Directories: - /: - Physical Path: C:\websites\api - Logon Method: ClearText 2: Intranet: ... 3. API.Internal: ... 4. Reports: ...

了解发现输出

详细输出为迁移规划提供以下关键信息:

站点

发现输出列出了服务器上的所有 IIS 站点。每个网站都由其名称(例如“Default Web Site”、“Intranet”、“API.Internal”)进行标识,并按顺序编号。当服务器上存在多个站点时,eb migrate 命令可以根据您的迁移策略,单独或一起打包和部署每个站点。

绑定

协议绑定显示您的网站使用哪些协议(HTTP/HTTPS)以及它们在哪些端口上运行。绑定信息包括主机标头要求,其用于定义基于域的路由配置。

应用程序

应用程序路径显示 IIS 配置中的根和嵌套应用程序结构。应用程序池分配表明应用程序如何相互隔离,以确保安全性并便于资源管理。

虚拟目录

物理路径映射表明您的内容在文件系统上的位置。身份验证设置显示迁移后需要维护的特殊访问要求。

准备迁移

了解环境后,请确保您的服务器满足先决条件。首先,使用以下 PowerShell 命令验证 IIS 版本:

PS C:\migrations_workspace> Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\InetStp\" -Name MajorVersion

需要 IIS 7.0 或更高版本。迁移工具使用 Web 部署 3.6 来打包应用程序。使用以下命令验证是否已安装:

PS C:\migrations_workspace> Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\3" -Name InstallPath

如果您的服务器上未安装 Web 部署,可以从 Microsoft Web 平台安装程序下载页面进行下载。

首次迁移

我们从 Default Web Site 的基本迁移开始。以下示例显示了最简单的命令:eb migrate

PS C:\migrations_workspace> eb migrate

此命令会启动一系列自动步骤,如以下示例输出所示:

Identifying VPC configuration of this EC2 instance (i-0123456789abcdef0) id: vpc-1234567890abcdef0 publicip: true elbscheme: public ec2subnets: subnet-123,subnet-456,subnet-789 securitygroups: sg-123,sg-456 elbsubnets: subnet-123,subnet-456,subnet-789 Using .\migrations\latest to contain artifacts for this migration run. Generating source bundle for sites, applications, and virtual directories... Default Web Site/ -> .\migrations\latest\upload_target\DefaultWebSite.zip

迁移工具会创建一个包含部署构件的结构化目录。下方列表显示了目录结构:

C:\migration_workspace\ └── .\migrations\latest\ └── upload_target\ ├── DefaultWebSite.zip ├── aws-windows-deployment-manifest.json └── ebmigrateScripts\ ├── site_installer.ps1 ├── permission_handler.ps1 └── >other helper scripts<

控制迁移

为了更好地控制迁移过程,您可以使用以下命令准确指定要迁移的站点:

PS C:\migrations_workspace> eb migrate --sites "Default Web Site,Intranet"

您还可以自定义环境名称和应用程序名称,如以下示例命令所示:

PS C:\migrations_workspace> eb migrate ` --sites "Default Web Site" ` --application-name "CorporateApp" ` --environment-name "Production"

有关选项的完整列表,请参阅 eb migrate

监控进度

在迁移期间,eb migrate 可提供实时状态更新。请参阅以下输出示例:

... Creating application version Creating environment... This may take a few minutes 2024-03-18 18:12:15 INFO Environment details for: Production Application name: CorporateApp Region: us-west-2 Deployed Version: app-230320_153045 Environment ID: e-abcdef1234 Platform: 64bit Windows Server 2019 v2.7.0 running IIS 10.0 Tier: WebServer-Standard-1.0 CNAME: production.us-west-2.elasticbeanstalk.com Updated: 2024-03-20 15:30:45 2025-03-18 18:12:17 INFO createEnvironment is starting. 2025-03-18 18:12:19 INFO Using elasticbeanstalk-us-east-1-180301529717 as Amazon S3 storage bucket for environment data. 2025-03-18 18:12:40 INFO Created security group named: sg-0fdd4d696a26b086a 2025-03-18 18:12:48 INFO Environment health has transitioned to Pending. Initialization in progress (running for 7 seconds). There are no instances. ... 2025-03-18 18:23:59 INFO Application available at EBMigratedEnv-arrreal3.us-east-1.elasticbeanstalk.com. 2025-03-18 18:24:00 INFO Successfully launched environment: EBMigratedEnv-arrreal3

验证迁移

环境准备就绪后,Elastic Beanstalk 将提供多种方法来验证部署。

访问应用程序

在 Web 浏览器中打开应用程序 URL(CNAME),验证其是否正常运行。

检查环境运行状况

使用 eb health 命令查看环境的运行状况。

PS C:\migrations_workspace> eb health

以下屏幕图像显示了实例运行状况、应用程序响应指标和系统资源利用率。

eb 运行状况命令的输出显示了实例运行状况、应用程序响应指标和系统资源利用率。
使用 eb logs 命令访问日志,从而对所有问题进行故障排除:
PS C:\migrations_workspace> eb logs --zip

eb logs 命令可将日志下载到 .elasticbeanstalk/logs 目录中。有关更多信息,请参阅 将 Elastic Beanstalk 和 Amazon CloudWatch Logs 配合使用

连接到实例

如果您在迁移期间指定了密钥对,则可以使用 RDP 连接到实例进行直接故障排除。

访问 Elastic Beanstalk 控制台

您可以通过该环境的环境管理控制台来查看其运行状况、日志和配置属性。

管理迁移构件

eb migrate 命令可在迁移过程中创建本地构件。这些构件包含敏感信息,并且随着时间的推移,可能会占用大量磁盘空间。使用 cleanup 子命令管理这些构件,如以下示例所示:

PS C:\migrations_workspace> eb migrate cleanup Are you sure you would like to cleanup older artifacts within ./migrations/? (Y/N):

要在不确认的情况下强制清理,请使用 --force 选项:

PS C:\migrations_workspace> eb migrate cleanup --force

清理过程会将最近成功的迁移保留在 ./migrations/latest 目录中,并删除较旧的迁移目录