我应该将哪个域名作为IoT MQTT端点烘焙到我的IoT设备中?

Dim*_*y K 6 dns amazon-web-services mqtt iot aws-iot

情况描述

因此,当我在工厂中构建我的超级传感器时,它将通过MQTT每隔30秒向AWS IoT发送其指标,我必须在设备中烘焙传感器将要连接的DNS域名.

AWS IoT建议在表单中使用端点<random-string>.iot.eu-west-1.amazonaws.com,对我而言A26PKG2U6WRS2I.iot.eu-west-1.amazonaws.com

这是稍微格式化的dig A26PKG2U6WRS2I.iot.eu-west-1.amazonaws.com命令输出,显示在少数重定向后,此域名解析为6个IP地址,这似乎是负载平衡器.

DOMAIN DETAILS: 

A26PKG2U6WRS2I.iot.eu-west-1.amazonaws.com. 290 
POINTS TO CNAME 
iotmoonraker.eu-west-1.prod.iot.eu-west-1.amazonaws.com.


iotmoonraker.eu-west-1.prod.iot.eu-west-1.amazonaws.com. 254 
POINTS TO CNAME 
dualstack.iotmoonraker-e-elb-9q2vvmxp3rir-1271985754.eu-west-1.elb.amazonaws.com.

RESOLVES TO IPs:
dualstack.iotmoonraker-e-elb-9q2vvmxp3rir-1271985754.eu-west-1.elb.amazonaws.com. 50 IN A 54.229.34.249
dualstack.iotmoonraker-e-elb-9q2vvmxp3rir-1271985754.eu-west-1.elb.amazonaws.com. 50 IN A 52.19.106.35
dualstack.iotmoonraker-e-elb-9q2vvmxp3rir-1271985754.eu-west-1.elb.amazonaws.com. 50 IN A 52.18.139.53
dualstack.iotmoonraker-e-elb-9q2vvmxp3rir-1271985754.eu-west-1.elb.amazonaws.com. 50 IN A 52.48.96.41
dualstack.iotmoonraker-e-elb-9q2vvmxp3rir-1271985754.eu-west-1.elb.amazonaws.com. 50 IN A 52.19.155.13
dualstack.iotmoonraker-e-elb-9q2vvmxp3rir-1271985754.eu-west-1.elb.amazonaws.com. 50 IN A 54.76.47.209
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

  • 当我在C中为我的PIC单片机实现MQTT通信时,我的DNS解析器会被单个域可以解析的许多IP混淆.目前我不知道我是否可以解决这个问题.目前我的解决方案是 - 创建自己的域名iot-ingestion.domain-i-own.com 并将其指向其中一个IP地址.有更好的选择吗?

  • A26PKG2U6WRS2I.iot.eu-west-1.amazonaws.com主机名烘焙到我的设备中是多么可靠?如果我想在2 - 3年内切换更改IoT堆栈并切换到不同的技术/提供商,该怎么办?

njh*_*njh 6

是的,我将避免透露“内部” AWS主机名。您还应该避免固定到单个IP地址。在AWS中,IP地址可以快速更改并重新分配给其他客户。

解决方案是确实使用您自己的域名(可以控制),但要使用DNS CNAME记录。

iot-ingestion.domain-i-own.com CNAME A26PKG2U6WRS2I.iot.eu-west-1.amazonaws.com.
Run Code Online (Sandbox Code Playgroud)

甚至值得将不同的主机名烘焙到不同的设备固件版本中,因此,如果一个主机存在问题,则可以将其重新指向其他端点,或者在损坏服务时将其完全切断。

我在使用Route 53,Amazon的DNS服务方面经验丰富。这也可能导致从您的设备到最终IP地址的DNS请求减少。

  • 我对这个答案投了赞成票,因为原则上,我同意,尽管原因与上述原因不同:我认为公开 AWS 名称没有问题,但更愿意让事情在我的控制之下。现在我的投票被锁定,但我必须重新考虑:问题是 CNAME 是不够的......因为 SSL。IoT 提供的证书与客户期望的不符。您将 - 充其量 - 有一个证书不匹配,同样有可能,传入请求中的“主机:”标头与物联网预期不匹配。 (2认同)