本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
故障排除和诊断
尝试使用 Amazon Q 开发者版 CLI 进行人工智能辅助故障排除
Amazon Q 开发者版 CLI 可以帮助您针对环境问题快速进行故障排除。Q CLI 可通过检查环境状态、审核事件、分析日志和询问澄清问题来提供解决方案。有关更多信息和详细演练,请参阅博客中的使用 Amazon Q Developer CLI 对 Elastic Beanstalk 环境进行故障排除
本节提供有关对 IIS 应用程序迁移到 Elastic Beanstalk 期间可能出现的常见问题进行故障排除的指导。
将 EC2 密钥对与您的环境相关联
您可以使用亚马逊密钥对安全地登录为您的 Elastic Beanstalk 应用程序预配置的亚马逊弹性计算云 (Amazon EC2) 实例。 EC2 有关创建密钥对的说明,请参阅亚马逊 EC2 用户指南 EC2中的使用亚马逊创建密钥对。
将 keyname 指定为 eb migrate 的效果是,将 Elastic Beanstalk 环境与密钥对相关联。出于安全考虑,这不会在您的 EC2 实例安全组上打开端口 3389。您可以关联其他 EC2 安全组,允许端口 3389 上的流量在初始迁eb config移后通过。
PS C:\migrations_workspace>eb migrate ` --keyname "my-keypair" ` --verbose
当您创建密钥对时,Amazon 会 EC2 存储您的公钥副本。如果您不再需要使用它来连接任何环境实例,可以将其从 Amazon 中删除 EC2。有关详情,请参阅 Amazon EC2 用户指南中的删除您的密钥对。
有关连接到 Windows 亚马逊 EC2 实例的更多信息,请参阅连接到 Windows 实例。
访问日志
EB CLI 提供了一种eb logs工具,您无需登录其实例即可使用该工具从 Elastic Beanstalk 环境中检索日志。 EC2 执行 eb migrate 后,您可以发出 eb logs --zip 命令,该命令会下载日志并将其保存到 .elasticbeanstalk\logs 目录中。
或者,您可以通过 E AWS lastic Beanstalk 控制台查看日志。有关更多信息,请参阅 查看您的 Elastic Beanstalk 环境中的 Amazon EC2 实例的日志。
访问客户端构件
eb migrate 命令存储由迁移构件目录内 msdeploy 生成的应用程序和错误日志。
./migrations/
├── latest -> migration_20240308_123456/
└── migration_20240308_123456/
├── application.log
├── error.log
└── upload_target\
监控环境运行状况
Elastic Beanstalk 通过增强型运行状况监控功能,帮助您监控运行状况。这是一个自动的运行状况监控系统,利用诸如 CPU 利用率、延迟、请求计数和响应代码之类的内置指标,持续跟踪应用程序实例的运行状态。
运行状况监控系统利用基于代理的方法来收集实例级数据,并与实时日志和警报集成。ELB (ELB) 和 Auto Scaling 会动态响应运行状况的变化,从而确保高可用性和容错能力。高级监控模式(包括增强型运行状况报告)可针对应用程序行为提供精细可见性,从而实现主动故障排除和自动恢复机制。
运行 EB CLI eb health 命令显示环境运行状况。将显示以下信息:
-
实例运行状况
-
应用程序响应指标
-
系统资源利用率
-
近期部署事件
EC2 性能优化
默认情况下,eb migrate 会选择 c5.2xlarge
PS C:\migrations_workspace>eb migrate ` --instance-type "t3.large"
对于生产环境,请在选择实例类型时考虑以下因素:
-
应用程序的内存要求
-
针对处理工作负载的 CPU 要求
-
网络性能需求
-
成本优化目标
EBS 卷配置
默认情况下,Elastic Beanstalk 将仅为环境创建根块设备卷 (C:\)。您可以通过 --ebs-snapshots 选项传递其他 Amazon Elastic Block Store 快照卷:
PS C:\migrations_workspace>eb migrate ` --ebs-snapshots "snap-123456789abc"
有关如何使用 Elastic Beanstalk 配置块设备映射的示例,请参阅博客文章 Customize Ephemeral and EBS Volumes in Elastic Beanstalk Environments
如果是对存储要求较高的应用程序,请考虑以下选项:
-
使用 EBS 卷存储持久性数据
-
为静态内容实施 Amazon S3
-
将 Amazon f FSx or Windows 文件服务器用于共享文件系统
常见问题和解决方案
事件:Missing Web Deploy installation
如果出现关于找不到 Web 部署的错误,请从 Microsoft Web 平台安装程序
Couldn't find msdeploy.exe. Follow instructions here: https://learn.microsoft.com/en-us/iis/install/installing-publishing-technologies/installing-and-configuring-web-deploy
事件:Permission issues during migration
如果出现关于权限的错误,请确保以管理权限运行 EB CLI。以下示例显示了可能出现的错误消息。
[ERROR] Access to the path 'C:\inetpub\wwwroot\web.config' is denied.
事件:Application pool identity issues
如果应用程序由于应用程序池标识问题而无法启动,请创建自定义脚本来配置应用程序池身份,如自定义应用程序池设置中所示。
事件:SSL certificate configuration errors
如果 HTTPS 绑定无法正常工作,请确保已使用 eb mibrate 选项 --ssl-certificates 参数指定有效的 ACM 证书 ARN。
事件:Environment creation timeout
如果环境创建超时,请在 AWS 管理控制台中检查 CloudFormation 事件以了解特定的资源创建失败。常见原因包括 VPC 配置问题或服务限制。
获取支持
如果您遇到无法解决的问题,请在联系之前 AWS 支持 收集以下信息:
-
环境 ID (
eb status) -
应用程序日志 (
eb logs --zip) -
.\migrations\latest\中的迁移构件 -
源 IIS 配置(
eb migrate explore --verbose输出) -
详细错误消息
有关 Elastic Beanstalk 故障排除的更多信息,请参阅排查 Elastic Beanstalk 环境的问题。