AWS使用ALB负载均衡遇到的问题

文章原文

问题描述

ALB 负载均衡 RGC-Dev-ALB.xxx.cn-north-1.elb.amazonaws.com.cn 解析到2个IP 54.223.xxx.xx52.81.xxx.xx, 发现每2次请求会失败一次,在进一步测试抓包发现没有收到52.81.xxx.xxx的返回信息。

问题分析

随后检查ALB建立在两个子网(subnet-a1xxxxxsubnet-f3xxxxx
其中54.223.xxx.xxsubnet-f32xxxx中,子网路由表rtb-49xxxx中0.0.0.0/0 指向IGW,因此客户端可以主动访问到54.223.xxx.xx
52.81.xxx.xxsubnet-a1xxx中,子网路由表rtb-24xxx中0.0.0.0/0指向了nat gateway(nat-0axxxxxxxxxx), 这将导致客户端无法连接到52.81.xxx.xx, 因此也不会收到52.81.xxx.xx的回包。
请知晓,对于面向公网的ALB,需要将ALB部署在公有子网中, 即子网路由表0.0.0.0/0需要指向IGW。

解决办法

目前有2个解决办法

1) 修改子网路由表rtb-24xxx, 将0.0.0.0/0指向igw, 请知晓, 这个修改将影响所有关联了rtb-24xxx这个路由表的子网,
如果对应子网中的资源没有公网地址,修改完成后将失去访问公网的能力,此外对于子网中有公网地址的资源,将直接从公网路由可达。
2) 修改ALB的子网,可以在EC2的控制台找到“负载均衡” ,选择对应的ALB, 在“描述” > “基本配置” >"可用区" > 点击“编辑子网”, 将subnet-a1xxx 修改为同AZ的公有子网(即路由表0.0.0.0/0指向igw的子网)
文章原文

posted @ 2021-06-01 10:26  SRE运维博客  阅读(1409)  评论(0编辑  收藏  举报