[IoT Core][Kinesis] 确定使用Kinesis还是IoT Core需要考虑输入流量?

0

【以下的问题经过翻译处理】 需要比较Kinesis Firehose和IoT Core用于流数据摄取的首选项。

根据我的观察,

  • IoT Core更适合从许多IoT设备摄取不频繁、双向和网络受限的IoT数据。
  • Kinesis Firehose更适合将恒定和相当大的数据流摄入到AWS云中。

那么我的问题是“有多大”? 例如,如果客户的IoT终端设备正在生成1MB/s或5MB/s(甚至是任意X MB/s)的只读常量传感器数据流,需要将其摄入到AWS Cloud。他们应该考虑使用IoT Core还是Kinesis Firehose/Data-Stream? 假设要发送的数据将被很好地格式化为JSON,并且AWS Cloud将直接将该数据保存到S3中。

在什么阈值X MB/s值下,可以确定使用IoT Core或Kinesis?

谢谢!

profile picture
专家
已提问 5 个月前20 查看次数
1 回答
0

【以下的回答经过翻译处理】 对于大于512 KB/s的容量,我假设您将比较IoT与Firehose的HTTPS API。MQTT/TLS无法处理每个连接超过512 KB/s的数据,这会引入管理多个连接的额外复杂性。

对于小于512 KB/s的容量,使用MQTT/TLS相比使用HTTPS具有较低的开销优势,如果您的连接成本昂贵(客户告诉我,仅由于开销差异,成本的差异约为25%)可能是一个重要因素。

假设数据成本不是问题,在两种情况下都使用HTTPS API 假设要将数据注入到S3。 假设您正在使用IoT凭据提供程序获取STS令牌以调用Firehose

以下是两个设置:

设备->Firehose->S3

设备->IoT Core(基本摄入)->Rule->Firehose操作->Firehose->S3

从成本的角度来看,第一个选项可以至少节省0.30美元/百万事件,但可能需要考虑其他因素:

*您正在注入的记录有多大? IoT核心每个发布的限制为128Kb,Firehose每个记录限制为1000KiB,每个DirectPut调用的限制为4 MiB。 *你需要在将数据发送到Firehose之前过滤数据吗? *您需要根据连接获取的上下文值对数据进行丰富吗? *您需要为发送数据的设备提供强大的身份验证和授权吗?

后者可能是关键因素:直接使用Firehose API意味着您将使用STS令牌进行身份验证和IAM策略进行授权。这种方法的缺点是您可能会失去识别您的来源的能力。您可以为每个设备创建一个角色别名,但有

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则