故障排除和诊断 - Amazon Elastic Beanstalk
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

故障排除和诊断

尝试使用 Amazon Q 开发者版 CLI 进行人工智能辅助故障排除

Amazon Q 开发者版 CLI 可以帮助您针对环境问题快速进行故障排除。Q CLI 可通过检查环境状态、审核事件、分析日志和询问澄清问题来提供解决方案。有关更多信息和详细演练,请参阅 Amazon 博客中的 Troubleshooting Elastic Beanstalk Environments with Amazon Q Developer CLI

本节提供有关对 IIS 应用程序迁移到 Elastic Beanstalk 期间可能出现的常见问题进行故障排除的指导。

将 EC2 密钥对与环境关联

您可以使用 Amazon EC2 密钥对安全地登录为 Elastic Beanstalk 应用程序预配置的 Amazon Elastic Compute Cloud(Amazon EC2)实例。有关创建密钥对的说明,请参阅《Amazon EC2 用户指南》中的使用 Amazon 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 Amazon EC2 实例的更多信息,请参阅连接到 Windows 实例

访问日志

EB CLI 提供 eb logs 工具,您可以使用该工具从 Elastic Beanstalk 环境中检索日志,而无需登录其 EC2 实例。执行 eb migrate 后,您可以发出 eb logs --zip 命令,该命令会下载日志并将其保存到 .elasticbeanstalk\logs 目录中。

或者,您可以通过 Amazon Elastic 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)和自动扩缩会动态响应运行状况变化,从而确保高可用性和容错能力。高级监控模式(包括增强型运行状况报告)可针对应用程序行为提供精细可见性,从而实现主动故障排除和自动恢复机制。

运行 EB CLI eb health 命令显示环境运行状况。将显示以下信息:

  • 实例运行状况

  • 应用程序响应指标

  • 系统资源利用率

  • 近期部署事件

EC2 性能优化

默认情况下,eb migrate 会选择 c5.2xlarge 实例类型以提供最佳的 Elastic Beanstalk 首次使用体验。您可以用 --instance-type 参数覆盖此行为:

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

  • 针对共享文件系统使用适用于 Windows File Server 的 Amazon FSx

常见问题和解决方案

事件:Missing Web Deploy installation

如果出现关于找不到 Web 部署的错误,请从 Microsoft Web 平台安装程序中安装 Web 部署 3.6 或更高版本。以下示例显示了可能出现的错误消息。

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

如果环境创建超时,请在 Amazon 管理控制台中检查 Amazon CloudFormation 事件以了解具体的资源创建失败。常见原因包括 VPC 配置问题或服务限制。

获取支持

如果遇到无法解决的问题,请收集以下信息,然后联系 Amazon Web Services 支持:

  • 环境 ID (eb status)

  • 应用程序日志 (eb logs --zip)

  • .\migrations\latest\ 中的迁移构件

  • 源 IIS 配置(eb migrate explore --verbose 输出)

  • 详细错误消息

有关 Elastic Beanstalk 故障排除的更多信息,请参阅排查 Elastic Beanstalk 环境的问题