因此,当我在工厂中构建我的超级传感器时,它将通过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
我有两个问题:
当我在C单片机中为我的PIC单片机实现MQTT通信时,我的DNS解析器会被单个域可以解析的许多IP混淆。目前我不知道我是否可以解决这个问题。目前我的解决方案是 - 创建我自己的域名iot-ingestion.domain-i-own.com
并将其指向其中一个IP地址。还有更好的选择吗?
将A26PKG2U6WRS2I.iot.eu-west-1.amazonaws.com
主机名烘焙到我的设备中有多可靠?如果我想在2 - 3年内切换更改IoT堆栈并切换到不同的技术/提供商,该怎么办?
答案 0 :(得分:3)
是的,我会避免泄露'内部'AWS主机名。 您还应该避免修复到单个IP地址。在AWS中,IP地址可以快速更改并重新分配给其他客户。
解决方案确实使用您自己控制的域名,但要使用DNS CNAME记录。
iot-ingestion.domain-i-own.com CNAME A26PKG2U6WRS2I.iot.eu-west-1.amazonaws.com.
甚至可能值得将不同的主机名烘焙到不同的设备固件版本中,因此如果存在问题,您可以将其重新指向不同的端点,或者如果它损坏您的服务则完全切断它。 / p>
我使用Route 53,亚马逊的DNS服务有很好的经验。这也可能导致您的设备更少的DNS请求到达最终IP地址。
答案 1 :(得分:1)
我相信这篇文章是相关的。截至2019年6月,IOT端点似乎尚未正式支持自定义域,但仍在规划中。这是我们客户的常见问题。
This link提供了进一步的说明。