将 Amazon MQ 或 AWS IoT 用于自我管理的 IoT 设备

Using Amazon MQ or AWS IoT for self managed IoT Devices

我今天试用了 Amazon MQ,发现它的设置非常简单,我们可以在物联网设备端快速集成 pub/sub 功能。但不幸的是,当我检查 Amazon MQ 的限制时,一个实例的最大连接数仅为 1000。

从 Amazon MQ Docs 截取的 ff 截图:

这太低了。我没有看到增加配额的选项。另外,每个区域最多只能有 20 个代理,所以基本上最多只能有 20k 台设备。而创建 20 个代理,与我自己在 8Gb 内存和 2CPU 的 EC2 实例中设置 MQTT 代理相比,成本太高了,我最多可以处理 50k 连接。

然后我看到了另一个选择,就是使用AWS IoT 进行设备管理。它最多支持 500k 设备。但缺点是我必须将所有设备注册为 "Thing",并且我必须为每台设备获取证书。但我真的不需要亚马逊来管理我的设备并跟踪设备的状态,我们已经完成了。此外,我们必须熟悉如何使用 AWS IoT 设备管理控制台管理设备。因此,使用 AWS IoT 服务作为消息代理比使用 Amazon MQ 更耗时。

那么,我的问题是,Amazon MQ 真的不是为物联网设备设计的吗?有没有办法只使用 AWS IoT 设备管理的 MQTT 代理服务而不使用它的管理功能(我认为这是不可能的)?

Amazon MQ 是 Apache ActiveMQ 的云托管服务。其目标之一是使用 ActiveMQ 支持的协议轻松地将现有产品迁移到云托管解决方案。

So, my question is, is Amazon MQ really not designed for IoT devices?

你的问题假设有一个非黑即白的答案。 Amazon MQ 可能完全适合需要托管云代理的现有产品。对于具有不同要求的其他产品,它可能不适合。

Is there anyway to use just the MQTT broker service alone of AWS IoT device management without using its management features(I don't think this is possible)?

是的,可以在不使用 'thing' 管理功能的情况下使用 AWS IoT 代理。来自 https://docs.aws.amazon.com/iot/latest/developerguide/iot-thing-management.html

You do not need to create a thing in the registry to connect a device to AWS IoT.

您可以仅使用证书将客户端设备连接到 AWS IoT MQTT 代理,而无需创建任何东西。虽然通常每个设备都有自己的证书,而事物注册表是管理设备和证书之间关系的一种方式。

clients to authenticate.

还有其他方法

截至目前,Amazon 提出托管 RabbitMQ,其中对连接数没有固定限制(仅取决于您机器的大小):

编辑:他们目前不支持 mqtt 插件,所以这适用于 AMQP,但不适用于 MQTT。