;
当前物联网环境中,设备类型多种多样,连接方式不一而足。为了帮助读者更好的理解并运用 AWS IoT 相关服务,我们提供了一个完整的 IoT 起步指南,包含设备的注册及上线、设备管理、用户身份及权限管理以及成本控制,通过这一系列的起步指南,也可以快速了解到 AWS IoT 服务如何与 Amazon Alexa 语音助手进行集成。AWS IoT 物联网系列共8篇,本篇是该系列的第一篇,其他篇链接请在本文结尾处查看。
在进行物联网设备连接时,每个设备都需要通过消息的形式与 IoT Core 进行数据交互。随着消息交互数量的增加,如果不对整体架构进行优化,很容易造成消息成本的指数增长,甚至是不必要的浪费。本文结合 AWS IoT Core 的相关计费方式,探讨潜在的成本优化模型,从而更好的帮助在有限预算下提升产业能及使用体验。
AWS IoT Core 服务的计费模型主要包括四个部分,每个部分独立计费,使得成本优化的颗粒度更细。以下计费报价参考 AWS 美国东部区域的报价,详细点这里。
设备负责维护 IoT 解决方案中的所有互联设备的会话。AWS IoT 设备支持通过 MQTT、MQTT Over WebSockets 和 HTTP 实现的互联设备与 AWS 平台之间的安全、双向通信。MQTT 和 HTTP 等通信协议使公司能够利用行业标准协议,而不必使用会限制将来的互操作的专属协议。其中连接费用与描述如下:
每个设备以全年每时每刻连接计算共525,600分钟(60分钟*24小时*365天)计算,每个设备的连接一年的总费用为$0.042
物联网设备连接时,设备的状态需要通过消息的形式与 IoT 平台进行数据交互。AWS IoT 消息代理就是这么一项发布/订阅消息的代理服务,可是与 IoT 设备相互发送和接收消息。在与 AWS IoT 通信时,客户端(设备)将经过编址的消息发送到 Sensor/temp/room1 之类的主题。进而,消息代理将消息发送到已注册接收该主题消息的所有客户端。发送消息的操作被称为发布。已注册接收该主题筛选消息的操作被称为订阅。其中消息类型包含:
每条消息以5KB长度计费,多于5KB,等价到多个5KB进行费用收取,例如8KB的消息,按照2条5KB消息收取费用。每条消息长度最大128KB
Device Shadow 服务可以为您连接到 AWS IoT 的每台设备在云中保留一个“影子”。无论该设备是否连接到 Internet,您都可以使用该影子通过 MQTT 或 HTTP 获取和设置设备的状态(调用 AWS IOT API 中的 GetThingShadow 或者 UpdateThingShadow)。每台设备的影子都由相应事物的名称唯一标识。具体请参考“适用于 AWS IoT 的 Device Shadow 服务”
设备注册的过程请参考“在 Registry 中注册设备”,注册过程使用的API收费详情,请参考“注册过程API与收费(REGISTRY一节)”
设备影子与设备注册费用如下:
收到 IoT 设备的消息之后,AWS 将对消息进行数据存储,分析等操作。这个操作由规则引擎来触发。
AWS IoT 规则由 SQL SELECT 语句、主题筛选条件和规则操作组成。设备通过将消息发布到 MQTT 主题来向 AWS IoT 发送信息。利用 SQL SELECT 语句,您可以从传入的 MQTT 消息提取数据。AWS IoT 规则的主题筛选条件用于指定一个或多个 MQTT 主题。当与主题筛选条件匹配的主题收到 MQTT 消息时,规则将被触发。借助规则操作,您可以获取从 MQTT 消息提取的信息并将其发送到其他 AWS 服务做存储与分析等。规则操作是针对 Amazon DynamoDB、AWS Lambda、Amazon SNS 和 Amazon S3 等 AWS 服务定义的。使用 Lambda 规则,您可以调用其他 AWS 服务或第三方 Web 服务。有关规则操作的完整列表,请参阅 AWS IoT 规则操作。规则引擎的触发与执行费用如下:
计费类型
由下图可以看出连接方面的费用比较固定,消息,设备影子,引擎在收费项目中所占比例比较大。那么在使用当中,如何调整这3个项目,来优化费用比较?
下面只是给出一个优化思路,真正优化方案的前提,还是以用户实际需求出发
以此思路优化之后,费用减少近54%(用户请以实际使用为准)如下: