故障排除和诊断 - AWS Elastic Beanstalk

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

故障排除和诊断

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

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

本节提供有关对 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 实例类型以提供最佳的 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

  • 将 Amazon f FSx or Windows 文件服务器用于共享文件系统

常见问题和解决方案

事件: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

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

获取支持

如果您遇到无法解决的问题,请在联系之前 AWS 支持 收集以下信息:

  • 环境 ID (eb status)

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

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

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

  • 详细错误消息

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