如何解决当我的 EC2 实例无法与 Elastic Beanstalk 通信时收到的错误?
上次更新日期:2023 年 1 月 18 日
当我尝试创建 AWS Elastic Beanstalk 环境时,我收到错误:"The EC2 instances failed to communicate with AWS Elastic Beanstalk, either because of configuration problems with the VPC or a failed EC2 instance.Check your VPC configuration and try launching the environment again.”
简短描述
Amazon Elastic Compute Cloud(Amazon EC2)实例必须配置为启动 Elastic Beanstalk 和其他服务端点的出站连接。为避免“无法通信”错误,您的 EC2 实例必须配置为通过以下方法之一启动出站连接:
解决方法
- 验证与您的子网相关联的网络 ACL 是否允许到互联网的出站连接。例如:0.0.0.0/0。
- 如果您在创建 Elastic Beanstalk 环境时选择自定义 Amazon Virtual Private Cloud(Amazon VPC),则请选择相应的子网。子网必须允许实例和负载均衡器可见性。
- 如果您的 EC2 实例在公有子网中,请验证路由表是否有通过互联网网关到互联网的路由。例如:0.0.0.0/0。
- 确认公有子网已在 VPC 子网控制台中开启 "auto-assign public IPv4 address"(自动分配公有 IPv4 地址)。VPC 子网控制台必须显示 Auto-assign public IPv4 address: Yes(自动分配公有 IPv4 地址:是)。
- 如果您的 EC2 实例在私有子网中,请验证与 NAT 网关或 NAT 实例相关联的路由表是否有到互联网的路由。例如:0.0.0.0/0。
注意:您的 NAT 网关或 NAT 实例必须在公有子网中创建,这样才能与互联网通信。 - 验证是否在启动了环境的 VPC 中开启了 VPC 属性 enableDnsHostnames 和 enableDnsSupport。
- 如果您的 Elastic Beanstalk 环境正在使用 VPC 端点,则请设置以下端点以正确启动环境:
Amazon Simple Queue Service (Amazon SQS)
AWS CloudFormation
Elastic Beanstalk (elasticbeanstalk.region.amazonaws.com)
Elastic Beanstalk 运行状况(elasticbeanstalk-health.region.amazonaws.com)
Amazon Simple Storage Service(Amazon S3)网关端点
注意:如果您的环境必须与其他 AWS 服务进行交互,则请为这些服务创建适当的 VPC 端点。 - 如果您使用的是自定义 AMI 而非 Elastic Beanstalk 提供的 AMI,则请确保创建 AMI,以便 EC2 实例可以访问互联网。