共计 3293 个字符,预计需要花费 9 分钟才能阅读完成。
背景介绍
在进行物联网设施连贯时,每个设施都须要通过音讯的模式与 Amazon IoT Core 进行数据交互。随着音讯交互数量的减少,如果不对整体架构进行优化,很容易造成音讯老本的指数增长,甚至是不必要的节约。本文联合 Amazon IoT Core 的相干计费形式,探讨潜在的老本优化模型,从而更好的帮忙在无限估算下晋升产业性能及应用体验。
Amazon IoT Core 物联网服务计费模型
Amazon IoT Core 服务的计费模型次要包含四个局部,每个局部独立计费,使得老本优化的颗粒度更细。以下计费报价参考亚马逊云科技美国东部区域的报价。
1. 连接性
设施网关负责保护 Amazon IoT 解决方案中的所有互联设施的会话。Amazon IoT 设施网关反对通过 MQTT、MQTT Over WebSockets 和 HTTP 实现的互联设施与亚马逊云科技平台之间的平安、双向通信。MQTT 和 HTTP 等通信协议使公司可能利用行业标准协议,而不用应用会限度未来的互操作性的专属协定。其中连贯费用与形容如下:
- $0.08 每 1 百万个设施 / 每分钟
每个设施以全年每时每刻连贯计算共 525,600 分钟(60 分钟24 小时365 天)计算,每个设施的连贯一年的总费用为 $0.042 - PING 音讯包含 MQTT PINGREQ,MQTT PING RSP 音讯没有费用。
2. 收发音讯
物联网设施连贯时,设施的状态须要通过音讯的模式与 Amazon IoT 平台进行数据交互。Amazon IoT 音讯代理就是这么一项公布 / 订阅音讯的代理服务,可是与 IoT 设施互相发送和接管音讯。在与 Amazon IoT 通信时,客户端(设施)将通过编址的音讯发送到 Sensor/temp/room1 之类的主题。进而,音讯代理将音讯发送到已注册接管该主题音讯的所有客户端。发送音讯的操作被称为公布。已注册接管该主题筛选音讯的操作被称为订阅。其中音讯类型蕴含:
- 设施发到 Amazon IoT 服务的音讯数量
- Amazon IoT 发到设施的音讯数量
每条音讯以 5KB 长度计费,多于 5KB,等价到多个 5KB 进行费用收取,例如 8KB 的音讯,依照 2 条 5KB 音讯收取费用。每条音讯长度最大 128KB。
3. 设施影子与设施注册
Device Shadow 服务能够为您连贯到 Amazon IoT 的每台设施在云中保留一个“影子”。无论该设施是否连贯到 Internet,您都能够应用该影子通过 MQTT 或 HTTP 获取和设置设施的状态(调用 Amazon IOT API 中的 GetThingShadow 或者 UpdateThingShadow)。每台设施的影子都由相应事物的名称惟一标识。
设施注册的过程请参考“在 Registry 中注册设施 ”,注册过程应用的 API 免费详情,请参考“ 注册过程 API 与免费(REGISTRY 一节)”
设施影子与设施注册费用如下:
- $1.25 每 1 百万个设施影子操作
- $1.25 每 1 百万个设施注册操作
- 数据大小以 1KB 为单位进行免费
4. 规定引擎
收到 Amazon IoT 设施的音讯之后,亚马逊云科技将对音讯进行数据存储,剖析等操作。这个操作由规定引擎来触发。
Amazon IoT 规定由 SQL SELECT 语句、主题筛选条件和规定操作组成。设施通过将音讯公布到 MQTT 主题来向 Amazon IoT 发送信息。利用 SQL SELECT 语句,您能够从传入的 MQTT 音讯提取数据。Amazon IoT 规定的主题筛选条件用于指定一个或多个 MQTT 主题。当与主题筛选条件匹配的主题收到 MQTT 音讯时,规定将被触发。借助规定操作,您能够获取从 MQTT 音讯提取的信息并将其发送到其余亚马逊云科技服务做存储与剖析等。规定操作是针对 Amazon DynamoDB、Amazon Lambda、Amazon SNS 和 Amazon S3 等亚马逊云科技服务定义的。应用 Amazon Lambda 规定,您能够调用其余亚马逊云科技服务或第三方 Web 服务。无关规定操作的残缺列表,请参阅 Amazon IoT 规定操作。规定引擎的触发与执行费用如下:
- $0.15 每 1 百万次布局引擎触发 $0.15 每 1 百万次布局引擎执行每条触发的音讯以 5KB 为单位收取费用,多于 5KB,以多条 5KB 进行计费
费用计算案例
- 如下以 10,000 台设施为例,来计算 Amazon IoT 服务免费,例子中每台设施操作包含:
- 每 5 分钟 Ping 主服务一次,全年放弃沉闷
- 约每 30 分钟发送 1 条音讯,每天共发送 50 条音讯,每条音讯 1KB
- 约每 30 分钟收到 1 条音讯,每天共收到 50 条音讯,每条音讯 1KB
- 每天设施影子 100 次更新,音讯容量 1KB
- 每天触发规定引擎 100 次,执行 100 次
a. 每个设施计算过程如下:
- 连贯时长:
全年放弃沉闷,连接时间共 525,600 分钟(60 分钟24 小时365 天) - 音讯数:
发 50 条,收 50 条,共 100 条,每条 1KB,按 5KB 计算 - 设施影子与设施注册音讯:
每条音讯都更新设施影子,共 100 条,每条 1KB - 音讯引擎触发数:
共触发 100 次,执行 100 次
b. 10,000(1 万)台设施,每台设施每月费用,每年费用,设施总年费用按表格统计如下:
由下图能够看出连贯方面的费用比拟固定,音讯,设施影子,引擎在免费我的项目中所占比例比拟大。那么在应用当中,如何调整这 3 个我的项目,来优化费用比拟?
费用优化
上面只是给出一个优化思路,真正优化计划的前提,还是以用户理论需要登程。
思路 1:调整音讯数据与内容
- 假如设施状态在 30 分钟内扭转非常少,如夜间的家用 Amazon IoT 设施如净水器、扫地机器人等。能够调整(缩小)信息发送距离,聚合信息长度,比方上例中,能够每隔 60 分钟发送一次信息,或者转为终端触发式(启动或者敞开前发送)。缩小发送次数。如在设施启动后与敞开前发送音讯。
- 丰盛发送内容,对于例行音讯,能够在触发式,一起发送到平台,比方过来 3 条聚合在一起,成为 1 条 3KB 信息,发送总数缩小,每条容量 5KB 内不额外收费。如 Amazon IoT 设施净水器在开启时连贯 3 条音讯发送开水工夫,滤芯状态,是否漏水等,能够合并为一条一起发送。
- 因为 Amazon IoT 音讯多与设施相干,有一些与设施利用相干的信息数据,如设施采集的图像与视频等,能够由设施其它通道传入到云端存储进行保留,如文件保留到 Amazon S3,流式数据能够通过 Amazon Kinesis 客户端保留。
思路 2:对于设施影子
- 设施影子的次要目标是不便云端在设施离线时进行治理。所以无关此类状态信息会发给设施影子,相应的,不须要此性能的,能够不发送给影子音讯主题。以节俭费用。比方家用电器接入 WIFI 之后网络畅通场景。能够缩小设施影子应用。
- 举例而言,对 100 条音讯进行分类,以其中 50 条不须要设施影子为例
思路 3:细化规定引擎逻辑,打消音讯引发的规定引擎的反复判断与执行
合并规定引擎执行,比方具备 Amazon IoT 性能的家用电器发消息到 Amazon IoT 规定引擎后,对某个符合条件音讯的规定进行以下动作
- 本条音讯保留到 Amazon S3 对象级存储中
- 本条音讯保留到 Amazon DynamoDB 不便展示
- 本条音讯触 Amazon SNS 进行告诉或者报警
- 本条音讯激活 Amazon Lambda 进行简单逻辑判断,比方是否触发购买揭示等
对于上述动作,能够由最初一条 Amazon Lambda 执行逻辑代码中写入前 4 条逻 辑,由 Amazon Lambda 来实现音讯保留到 Amazon S3,写到 Amazon DynamoDB, 判断是否 Amazon SNS 告诉报警等。这样触发由过来 5 条转为 1 条,节约老本。
以此思路优化之后,费用缩小近 54%(用户请以理论应用为准)如下:
参考文档
- Amazon IoT 费用列表
- Amazon IoT 相干文档
- Amazon IoT 外围准则
本篇作者
张洋
亚马逊云科技中国团队的解决方案架构师
负责基于亚马逊云科技的云计算计划架构征询和设计。同时致力于亚马逊云科技云服务在国内的利用和推广。现专一于 HPC 超算与物联网相干畛域的钻研。在退出亚马逊云科技之前,他曾服务于 EMC, Oracle, Flextronics 等跨国 IT 公司。张洋乐于分享,并且是一名业余游泳教练,酷爱游泳和跑步,曾经实现 6 次马拉松较量。
扫描上方二维码即刻报名