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

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

执行基本的 IIS 迁移

本节将指导你完成使用命令将 IIS 应用程序迁移到 Elastic Bean eb migrate stalk 的过程。

探索您的 IIS 环境

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

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 站点。每个网站都由其名称(例如 “默认网站”、“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 Deploy 3.6 来打包您的应用程序。使用以下命令验证其安装:

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

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

您的第一次迁移

让我们从默认网站的基本迁移开始。以下示例显示了最简单的命令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 health 命令的输出显示了实例运行状况、应用程序响应指标和系统资源利用率。
使用eb logs命令访问日志以解决任何问题:
PS C:\migrations_workspace> eb logs --zip

eb logs命令将日志下载到.elasticbeanstalk/logs目录中。有关更多信息,请参阅 将 Elastic Bean CloudWatch stalk 与亚马逊日志一起使用

Connect 到实例

如果您在迁移期间指定了密钥对,则可以使用 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目录