随着物联网设备的激增,企业需要一种解决方案来收集、存储和分析其设备的数据。Amazon Web Services提供了一些有用的工具,可为IoT设备设计强大的数据管道。
物联网(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仪表板。
通过数据管道路由大数据量
将来自设备主题的传入数据直接消耗到单个服务会阻止系统实现完全的可伸缩性。有时,这种方法会在发生故障和数据泛滥时限制系统的可用性。
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等安全存储中。这种做法可确保不会由于消息泛滥、不需要的异常代码或部署问题而导致数据丢失。
自动化设备配置和升级
随着业务的增长和众多设备连接到IoT生态系统,手动操作(例如设备配置,引导软件,安全配置,规则操作设置和设备OTA升级)是不可行的。在初始化过程和升级过程中最小化人机交互对于节省时间和降低成本非常重要。
在设备内设计内置功能以进行自动配置并利用AWS提供的用于处理设备配置和管理的适当工具,可使系统以最少的人工干预达到所需的运营效率。
AWS IoT提供了一组功能,可用于具有一组可与仪表板和制造流程集成的策略的批量导入,在该仪表板和制造流程中,可以将设备预注册到AWS IoT,并可以在设备上安装证书。之后,设备供应流程可以声明一个设备并将其附加到另一个用户或任何其他实体。AWS提供了触发和跟踪设备OTA升级的功能。
为自定义组件采用可扩展架构
物联网系统连接到外部设备时,范围不会因连接、控制和报告设备而结束。考虑采用诸如数据科学和机器学习之类的最新技术,或将第三方组件集成到IFTTT,Alexa或Google Home等物联网系统中。物联网的架构应确保外部组件可以轻松集成到解决方案中,而不会出现性能瓶颈。
检查离线访问和处理
有时,不必在云中处理所有设备的数据。在许多情况下,没有连续的互联网连接可用。对于这种情况,请在边缘添加AWS Greengrass。Greengrass在边缘上本地处理和过滤数据,并减少了向上游发送所有设备数据的需要。可以捕获所有数据,将其保留有限的时间,然后根据错误事件或按需/请求将其发送到云中。如果需要时序数据,则可以安排一个定期过程,将设备数据发送到云,该数据可用于将来的增强,例如AWS Machine Learning模型和云分析工具。
选择正确的数据存储
物联网系统生成高速,大容量和多种数据。每个物联网设备或设备主题可以具有不同的格式,这些格式可能无法通过单个数据库或类似类型的数据存储来管理。架构师在选择数据库格式和数据存储时应该小心。经常使用的静态数据可以存储在Elastic缓存中,这有助于提高性能。这样的做法有助于实现系统的可伸缩性和可维护性。
在处理之前过滤和转换数据
所有输入物联网系统的数据可能需要处理或转换,然后可以重定向到存储。AWS IoT规则提供将消息重定向到不同AWS服务的操作。架构师应该将所有数据分成不同的形式(即需要处理、忽略/静态数据(如配置)和直接存储)。
AWS IoT服务架构