设计实践:AWS IoT解决方案

简介: 随着物联网设备的激增,企业需要一种解决方案来收集、存储和分析其设备的数据。Amazon Web Services提供了一些有用的工具,可为IoT设备设计强大的数据管道。

7.18.19-Design-Practices-AWS-IoT-Solutions.jpg

物联网(IoT)为每个行业提供了无与伦比的机会来应对其业务挑战。随着设备的增加,人们需要一种解决方案来连接、收集、存储和分析设备的数据。Amazon Web Services提供了各种服务,可帮助连接的设备轻松、安全地与云应用程序和其他设备进行交互,以适应各种用户场景。话虽如此,该领域的每个解决方案架构师都知道AWS Cloud的功能和可靠性。在AWS平台上迁移或设计物联网(IoT)解决方案使人们可以专注于核心业务,而无需进行基础架构管理和监控的麻烦。这将确保客户的高可用性。无论设计哪种解决方案,都应该选择最佳平台来保持解决方案的稳定性。AWS正是这样一种平台。


在使用AWS设计IoT解决方案时需要考虑一些实践。如果将正确的AWS服务用于客户需求,则IoT解决方案将能够以更安全、可靠和可扩展的方式交付结果。

可靠地大规模运行的设计

物联网系统必须处理设备和网关捕获的高速、大容量数据。可能由于业务的突然增长或有时由于恶意攻击而导致传入数据的溢出。在这种情况下,云系统架构应可扩展以处理此类数据。

最好的方法是在存储数据之前将数据发送到实时内存数据库中的队列和缓冲区。这有助于实现实时事件并降低数据插入速率,以防止数据库崩溃或防止响应速度变慢。

设备可以将数据发布到AWS Kinesis,或者可以使用AWS IoT规则将数据转发到AWS SQS和Kinesis以将其存储在时间序列存储中,例如AWS S3,Redshift,Data Lake或Elastic搜索数据存储。这些数据存储可用于生成自定义仪表板或AWS Quick Sight仪表板。

1.png

通过数据管道路由大数据量

将来自设备主题的传入数据直接消耗到单个服务会阻止系统实现完全的可伸缩性。有时,这种方法会在发生故障和数据泛滥时限制系统的可用性。

AWS IoT规则引擎旨在以可扩展的方式将终端连接到AWS IoT Core。但是,所有AWS服务都具有不同的数据流属性,各有优缺点。所有服务都不能用作系统的单个入口点。有时,它会导致后续故障而无法恢复。例如,对于大容量数据,请在调用其他服务之前考虑对传入的数据进行缓冲(Elasti Cache)或排队(SQS),这使得能够从后续故障中恢复。

AWS IoT规则引擎允许并行触发多个AWS服务,例如Lambda,S3,Kinesis,SQS或SNS。物联网系统捕获数据后,它将使AWS终端节点(其他AWS服务)能够处理和转换数据。这使您可以将数据同时存储到多个数据存储中。 确保所有数据都得到处理和存储的最安全方法是将所有设备主题数据重定向到SNS,该SNS用于处理数据洪泛处理,以确保传入的数据得到可靠的维护,处理并传递到正确的通道。 为了使其更具扩展性,可以使用针对不同/组AWS设备主题的多个SNS主题,SQS队列和Lambda。在处理数据之前,应考虑将数据存储在队列,Amazon Kinesis,Amazon S3或Amazon Redshift等安全存储中。这种做法可确保不会由于消息泛滥、不需要的异常代码或部署问题而导致数据丢失。

Volansys-AWS-IoT.png

自动化设备配置和升级

随着业务的增长和众多设备连接到IoT生态系统,手动操作(例如设备配置,引导软件,安全配置,规则操作设置和设备OTA升级)是不可行的。在初始化过程和升级过程中最小化人机交互对于节省时间和降低成本非常重要。

在设备内设计内置功能以进行自动配置并利用AWS提供的用于处理设备配置和管理的适当工具,可使系统以最少的人工干预达到所需的运营效率。

AWS IoT提供了一组功能,可用于具有一组可与仪表板和制造流程集成的策略的批量导入,在该仪表板和制造流程中,可以将设备预注册到AWS IoT,并可以在设备上安装证书。之后,设备供应流程可以声明一个设备并将其附加到另一个用户或任何其他实体。AWS提供了触发和跟踪设备OTA升级的功能。

为自定义组件采用可扩展架构

物联网系统连接到外部设备时,范围不会因连接、控制和报告设备而结束。考虑采用诸如数据科学和机器学习之类的最新技术,或将第三方组件集成到IFTTT,Alexa或Google Home等物联网系统中。物联网的架构应确保外部组件可以轻松集成到解决方案中,而不会出现性能瓶颈。

检查离线访问和处理

有时,不必在云中处理所有设备的数据。在许多情况下,没有连续的互联网连接可用。对于这种情况,请在边缘添加AWS Greengrass。Greengrass在边缘上本地处理和过滤数据,并减少了向上游发送所有设备数据的需要。可以捕获所有数据,将其保留有限的时间,然后根据错误事件或按需/请求将其发送到云中。如果需要时序数据,则可以安排一个定期过程,将设备数据发送到云,该数据可用于将来的增强,例如AWS Machine Learning模型和云分析工具。

volansys-AWS-Greengrass.png

选择正确的数据存储

物联网系统生成高速,大容量和多种数据。每个物联网设备或设备主题可以具有不同的格式,这些格式可能无法通过单个数据库或类似类型的数据存储来管理。架构师在选择数据库格式和数据存储时应该小心。经常使用的静态数据可以存储在Elastic缓存中,这有助于提高性能。这样的做法有助于实现系统的可伸缩性和可维护性。

在处理之前过滤和转换数据

所有输入物联网系统的数据可能需要处理或转换,然后可以重定向到存储。AWS IoT规则提供将消息重定向到不同AWS服务的操作。架构师应该将所有数据分成不同的形式(即需要处理、忽略/静态数据(如配置)和直接存储)。

AWS IoT服务架构

Volansys-AWS-IoT-Put-all-data-together.png
原文链接

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
1月前
|
存储 JSON 运维
智能物联网平台:Azure IoT Hub在设备管理中的实践
【10月更文挑战第26天】随着物联网技术的发展,Azure IoT Hub成为企业管理和连接数百万台设备的强大平台。本文介绍Azure IoT Hub的设备管理功能,包括设备注册、设备孪生、直接方法和监控诊断,并通过示例代码展示其应用。
62 4
|
2月前
|
Rust 资源调度 安全
为什么使用 Rust over C++ 进行 IoT 解决方案开发
为什么使用 Rust over C++ 进行 IoT 解决方案开发
90 7
|
4月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
当今社会,物联网技术的发展带来了许多繁琐的挑战,尤其是在数据库管理系统领域,比如实时整合海量数据、处理流中的事件以及处理数据的安全性。例如,应用于智能城市的基于物联网的交通传感器可以实时生成大量的交通数据。据估计,未来5年,物联网设备的数量将达数万亿。物联网产生大量的数据,包括流数据、时间序列数据、RFID数据、传感数据等。要有效地管理这些数据,就需要使用数据库。数据库在充分处理物联网数据方面扮演着非常重要的角色。因此,适当的数据库与适当的平台同等重要。由于物联网在世界上不同的环境中运行,选择合适的数据库变得非常重要。 原创文字,IoTDB 社区可进行使用与传播 一、什么是IoTDB 我
188 9
Apache IoTDB进行IoT相关开发实践
|
4月前
|
存储 安全 物联网
物联网(IoT)安全:挑战与解决方案
【8月更文挑战第5天】物联网(IoT)深刻改变着我们的生活,但随之而来的安全挑战不容忽视。面对设备身份验证复杂、数据隐私泄露、软件漏洞及资源受限等问题,本文提出加强身份验证、加密保护、定期更新、安全开发生命周期、多层次防御、安全培训及标准化合作等解决方案,旨在构建一个更加安全可靠的物联网环境。
|
5月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
IoTDB是专为物联网(IoT)设计的开源时间序列数据库,提供数据收集、存储、管理和分析。它支持高效的数据写入、查询,适用于处理大规模物联网数据,包括流数据、时间序列等。IoTDB采用轻量级架构,可与Hadoop和Spark集成,支持多种存储策略,确保数据安全和高可用性。此外,它还具有InfluxDB协议适配器,允许无缝迁移和兼容InfluxDB的API和查询语法,简化物联网项目的数据管理。随着物联网设备数量的快速增长,选择适合的数据库如IoTDB对于数据管理和分析至关重要。
256 12
|
5月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
The article introduces IoTDB, an open-source time-series database designed for efficient management of IoT-generated data. It addresses challenges like real-time integration of massive datasets and security. IoTDB supports high-performance storage,
150 0
Apache IoTDB进行IoT相关开发实践
|
5月前
|
分布式计算 NoSQL 物联网
麻省理工IOT教授撰写的1058页Python程序设计人工智能实践手册!
Python是世界上最流行的语言之一,也是编程语言中使用人数增长最快的一种。 开发者经常会很快地发现自己喜欢Python。他们会欣赏Python的表达力、可读性、简洁性和交互性,也会喜欢开源软件开发环境,这个开源环境正在为广泛的应用领域提供快速增长的可重用软件基础。 几十年来,一些趋势已经强有力地显现出来。计算机硬件已经迅速变得更快、更便宜、更小;互联网带宽已经迅速变得越来越大,同时也越来越便宜;优质的计算机软件已经变得越来越丰富,并且通过“开源”方式免费或几乎免费;很快,“物联网”将连接数以百亿计的各种可想象的设备。这将导致以快速增长的速度和数量生成大量数据。 在今天的计算技术中,最新的创新
|
5月前
|
分布式计算 NoSQL 物联网
麻省理工IOT教授撰写的1058页Python程序设计人工智能实践手册!
Python是世界上最流行的语言之一,也是编程语言中使用人数增长最快的一种。 开发者经常会很快地发现自己喜欢Python。他们会欣赏Python的表达力、可读性、简洁性和交互性,也会喜欢开源软件开发环境,这个开源环境正在为广泛的应用领域提供快速增长的可重用软件基础。
|
6月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
IoTDB是面向物联网的时序数据库,专注于时间序列数据管理,提供高效的数据处理、集成Hadoop和Spark生态、支持多目录存储策略。它还具有InfluxDB协议适配器,允许无缝迁移原本使用InfluxDB的业务。文章讨论了IoTDB的体系结构,包括数据文件、系统文件和预写日志文件的存储策略,并介绍了如何配置数据存储目录。此外,还提及了InfluxDB版本和查询语法的支持情况。IoTDB在物联网数据管理和分析中扮演关键角色,尤其适合处理大规模实时数据。
110 5
|
6月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
物联网技术带来数据库管理挑战,特别是实时数据整合与安全性。IoTDB是一个专为时间序列数据设计的数据库,提供数据收集、存储和分析服务,适用于海量物联网数据。其架构包括数据文件、系统文件和预写日志文件的管理,并支持多目录存储策略。此外,IoTDB还开发了InfluxDB协议适配器,使得用户能无缝迁移原有InfluxDB业务。此适配器基于IoTDB的Java服务接口,转换InfluxDB的元数据格式,实现与IoTDB的数据交互。目前,适配器支持InfluxDB 1.x版本及部分查询语法。
199 5
下一篇
DataWorks