You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS ALB访问后端EC2返回502错误(CloudFormation部署)原因排查

ALB返回502错误的根因分析

核心问题1:EC2实例无公网IP导致软件安装失败

你的EC2实例部署在公有子网,但CloudFormation模板中EC2资源未配置AssociatePublicIpAddress: true:

  • 如果你的公有子网未开启「自动分配公有IPv4地址」的默认设置,EC2实例创建后不会分配公网IP
  • UserData脚本中需要执行sudo yum update和sudo yum install -y httpd,这两个操作需要访问公网的yum源,无公网IP的情况下请求会超时失败,导致httpd根本没有安装、更无法启动
  • 目标组健康检查访问EC2的80端口无响应,所有后端被标记为不健康,ALB无可用后端就会返回502错误

其他可能的问题

  • 本地防火墙未放行端口:如果你使用的AMI默认开启了firewalld/iptables服务,即使安全组放行了80端口,EC2本地防火墙也会拦截ALB的访问请求
  • httpd未配置开机自启:UserData中仅执行了service httpd start,未配置开机自启,如果EC2实例发生重启,httpd不会自动启动,导致端口无响应
  • 健康检查尚未达标:你的目标组配置的健康检查阈值为3次成功,间隔30秒,首次部署完成后需要等待至少90秒才会将EC2标记为健康,刚部署完立即访问会出现502

修复方案

  1. 在EC2资源的Properties中添加AssociatePublicIpAddress: true,确保实例分配公网IP可以访问公网yum源
  2. 在UserData中新增防火墙放行规则和httpd开机自启配置,示例:
#!/bin/bash -xe
cd /tmp
sudo yum update -y
sudo yum install -y httpd
# 放行本地防火墙80端口(适用于带firewalld的系统)
sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --reload
echo "Welcome from the instance 1" > /var/www/html/index.html
sudo systemctl enable --now httpd
  1. 部署完成后等待2-3分钟再测试ALB访问,确保健康检查已通过

内容的提问来源于stack exchange,提问作者DrkStr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 16:36:05