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

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

故障排除和诊断

本节为解决将 IIS 应用程序迁移到 Elastic Beanstalk 期间可能出现的常见问题提供了指导。

将 EC2 密钥对与您的环境相关联

您可以使用亚马逊密钥对安全地登录为您的 Elastic Beanstalk 应用程序预配置的亚马逊弹性计算云 (Amazon EC2) 实例。 EC2 有关创建密钥对的说明,请参阅亚马逊 EC2 用户指南 EC2中的使用亚马逊创建密钥对

将密钥名指定为可以将您的 El eb migrate astic 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 Amazon lastic Beanstalk 控制台查看日志。有关更多信息,请参阅 在 Elastic Beanstalk 环境中查看来自亚马逊 EC2 实例的日志

访问客户端工件

eb migrate命令存储由迁移工件目录msdeploy内部生成的应用程序和错误日志。

./migrations/ ├── latest -> migration_20240308_123456/ └── migration_20240308_123456/ ├── application.log ├── error.log └── upload_target\

监控环境运行状况

Elastic Beanstalk 通过增强的运行状况监控功能帮助您监控运行状况。它是一个自动运行状况监控系统,利用诸如 CPU 利用率、延迟、请求计数和响应代码之类的内置指标,持续跟踪应用程序实例的运行状态。

运行状况监控系统利用基于代理的方法来收集实例级数据,并与实时日志和警报集成。Elastic Load Balancing (ELB) 和 Auto Scaling 会动态响应运行状况的变化,从而确保高可用性和容错能力。高级监控模式(包括增强型运行状况报告)可提供对应用程序行为的精细可见性,从而实现主动故障排除和自动恢复机制。

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

  • 实例运行状况

  • 应用程序响应指标

  • 系统资源利用率

  • 最近的部署事件

EC2 性能优化

默认情况下,eb migrate选择 c5.2xl arge 实例类型以提供最佳的首次使用 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 配置区块设备映射的示例,请参阅博客文章在 Elastic Beanstalk 环境中自定义临时卷和 EBS 卷。

对于存储要求高的应用程序,请考虑以下选项:

  • 使用 EBS 卷存储永久数据

  • 为静态内容实施 Amazon S3

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

常见问题和解决方案

事件:缺少 Web 部署安装

如果你遇到与找不到 Web 部署相关的错误,请从微软 Web 平台安装程序中安装 Web Deploy 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

事件:迁移期间的权限问题

如果您遇到与权限相关的错误,请确保以管理权限运行 EB CLI。以下示例显示了一条可能的错误消息。

[ERROR] Access to the path 'C:\inetpub\wwwroot\web.config' is denied.

事件:应用程序池身份问题

如果您的应用程序由于应用程序池标识问题而无法启动,请创建一个自定义脚本来配置应用程序池身份,如中所示自定义应用程序池设置

事件:SSL 证书配置错误

如果 HTTPS 绑定无法正常工作,请确保使用选项参数指定了有效的 ACM 证书 ARN。eb mibrate --ssl-certificates

事件:环境创建超时

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

获取支持

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

  • 环境 ID (eb status)

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

  • 来自的迁移工件 .\migrations\latest\

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

  • 详细的错误消息

有关 Elastic Beanstalk 疑难解答的更多信息,请参阅。排查 Elastic Beanstalk 环境的问题