amazon-web-services - 我应该将哪个域名作为 IoT MQTT 端点加入到我的 IoT 设备中?

标签 amazon-web-services dns mqtt iot aws-iot

情况描述

因此,当我在工厂中构建我的 super 传感器时,它将每 30 秒通过 MQTT 将其指标发送到 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 微 Controller 实现 MQTT 通信时,我的 DNS 解析器被单个域可以解析到的许多 IP 弄糊涂了。目前我不知道我是否能解决这个问题。目前我的解决方案是 - 创建我自己的域名 iot-ingestion.domain-i-own.com并将其指向 IP 地址之一。有更好的选择吗?
  • 把这个烤到我的设备上有多可靠A26PKG2U6WRS2I.iot.eu-west-1.amazonaws.com主机名?如果我想在 2-3 年内切换更改 IoT 堆栈并切换到不同的技术/提供商怎么办?
  • 最佳答案

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

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

    iot-ingestion.domain-i-own.com CNAME A26PKG2U6WRS2I.iot.eu-west-1.amazonaws.com.
    

    甚至可能值得将不同的主机名烘焙到不同的设备固件版本中,因此如果某个主机名出现问题,您可以将其重新指向不同的端点,或者完全切断它,如果它会损坏您的服务。

    我在使用 Route 53(Amazon 的 DNS 服务)方面有很好的经验。这也可能导致您的设备到达最终 IP 地址的 DNS 请求减少。

    关于amazon-web-services - 我应该将哪个域名作为 IoT MQTT 端点加入到我的 IoT 设备中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35771149/

    相关文章:

    amazon-web-services - 为多个 lambda 生成一个 API 网关 - 以自动化方式

    python - 在 Boto3 python 脚本中添加 AWS 标签

    c# - 如何使用 SDK 删除 AWS EC2 中的图像 (AMI)?

    apache - 将根域指向没有 IP 和 CNAME 的 Heroku(Rails)

    iis - 如何使用 IIS7 服务器在亚马逊 EC2 Windows 实例上托管域名

    python - 如何告诉请求模块不进行 DNS 查找?

    mqtt - 如果没有订阅者,MQTT客户端是否必须发布到主题?

    mysql - 参数组更改未反射(reflect)在 Aurora Serverless 数据库集群上

    java - 如何检查MQTT中是否存在主题?

    java - MQTT订阅客户端连接后收不到消息