AWS CLB 配置 MQTT 负载均衡

进入 aws ec2 控制台,在左侧菜单找到负载均衡器。点击创建负载均衡器。

看到这个界面,需要将鼠标往下拖,这三个都不选择。需要选择 Classic Load Balancer(经典负载均衡器)。

点击创建。负载均衡名称,按自己想要的填写即可。

比较重要的就是下面的网络映射配置。一定要记得选择 EC2 的网络配置。否则负载均衡器无法访问你 EC2 中的 MQTT。

侦听器,先配置一个 1883 端口。等创建完成后,再去配置 SSL。

运行状况检查,如果是 EMQX,配置 EMQX 的 http 检查端口就可以了。

添加实例。就是将你运行 MQTT 那台 ec2 服务器添加进来。

这样点击保存,基于 clb 的负载均衡器就创建成功了。接着再配置一个 SSL 端口。从负载均衡器列表,点进去刚刚创建的负载均衡器详情里面去,拖到最下面,找到管理侦听器。

点击添加侦听器,创建一个 48883 端口,指向 ec2 1883 端口的 SSL 侦听器。要记得导入证书,笔者使用的是自签名证书,只要将证书私钥、公钥导入进去就可以了。

证书导入

配置完这些,还需要进行安全配置,在安全组中对前面配置的 1883、48883 端进行放行。

回到 clb 详情页面,从底部找到安全性选项卡,点击安全组 ID 进到安全组设置。

编辑入站规则,保存就可以了。

此时 MQTT 1883 端口已经可以正常通过负载均衡器访问了,但是基于 SSL 协议的 MQTTS 还不行,还需要将证书中对应的域名解析到 CLB。

注意,这里显示的是 A 记录。但是 A 记录只能解析 IP 地址,因此在做域名解析的时候,使用 cname 记录就可以了。配置完这些就可以通过 MQTTS 协议访问了。

本博客采用 知识共享署名-禁止演绎 4.0 国际许可协议 进行许可

本文标题:AWS CLB 配置 MQTT 负载均衡

本文地址:https://jizhong.plus/post/2024/11/aws-clb-mqtt.html