亞馬遜AWS IoT
一.AWS IoT簡介
1.1 AWS IoT平臺的優點
(1)普遍而深刻數據庫
AWS 擁有從邊緣到雲端的普遍而深刻的 IoT 服務。設備軟件、Amazon FreeRTOS 和 AWS IoT Greengrass 提供本地數據收集和分析能力。在雲中,AWS IoT 是惟一一家將數據管理和豐富分析集成在易於使用的服務中的供應商,這些服務專爲繁雜的 IoT 數據而設計。 安全
(2)多層安全性網絡
AWS IoT 提供適用於全部安全層的服務。AWS IoT 包括預防性安全機制,如設備數據的加密和訪問控制。AWS IoT 還提供持續監控和審覈安全配置的服務。您能夠收到警報,以便緩解潛在的安全問題,例如將安全修復程序推送到設備。 架構
(3)卓越的AI集成併發
AWS 將 AI 和 IoT 結合在一塊兒,使設備更爲智能化。您能夠在雲端建立模型,而後將它們部署到運行速度達到其餘產品 2 倍的設備。AWS IoT 將數據發回至雲端,以持續改進模型。與其餘產品相比,AWS IoT 還支持更多的機器學習框架。 框架
(4)大規模獲得驗證機器學習
AWS IoT 構建於可擴展、安全且通過驗證的雲基礎設施之上,可擴展到數十億種不一樣的設備和數萬億條消息。AWS IoT 還與 AWS Lambda、Amazon S3 和 Amazon SageMaker 等服務集成,從而讓您能夠構建完整的解決方案,例如使用 AWS IoT 管理攝像機並使用 Amazon Kinesis 進行機器學習的應用程序。函數
1.2 AWS IoT 解決方案
(1)工業解決方案學習
AWS IoT 客戶正在構建工業 IoT 應用程序,以預測質量和維護,並遠程監控操做加密
(2)家庭解決方案
AWS IoT 客戶正在爲家居自動化、家居安全和監控以及家庭網絡構建互聯家居應用程序。
(3)商業解決方案
AWS IoT 客戶構建用於交通監控、公共安全和健康監控的商業應用程序。
1.3 AWS IoT平臺定位
(1)AWS IoT是一款託管的雲平臺,使互聯設備能夠輕鬆安全地與雲應用程序及其餘設備交互。
(2)AWS IoT可支持數十億臺設備和數萬億條消息,而且能夠對這些消息進行處理並將其安全可靠地路由至 AWS 終端節點和其餘設備。應用程序能夠隨時跟蹤全部設備並與其通訊,即便這些設備未處於鏈接狀態也不例外。
(3)使用AWS Lambda、Amazon Kinesis、Amazon S三、Amazon Machine Learning、Amazon DynamoDB、Amazon CloudWatch、AWS CloudTrail 和內置 Kibana 集成的 Amazon Elasticsearch Service 等AWS服務來構建IoT應用程序,以便收集、處理和分析互連設備生成的數據並對其執行操做,且無需管理任何基礎設施。
二.AWS IoT 架構
2.1 整體架構圖
集成了AWS的功能模塊:
- Amazon DynamoDB—託管NoSQL數據庫
- Amazon Kinesis—大規模流式數據實時處理
- AWS Lambda—EC2雲虛擬機運行代碼響應事件
- Amazon Simple Storage Service(S3)—可擴展雲存儲
- Amazon Simple Notification—推送通知服務
- Amazon Simple Queue Service—消息隊列服務
2.2 設備網關
- AWS IoT 設備網關支持設備安全高效地與 AWS IoT 進行通訊。設備網關可使用發佈/訂閱模式交換消息,從而支持一對一和一對多的通訊。憑藉此一對多的通訊模式,AWS IoT 將支持互連設備向多名給定主題的訂閱者廣播數據。
- 設備網關支持 MQTT、WebSocket 和 HTTP 1.1 協議,也支持私有協議。
- 設備網關可自動擴展,以支持 10 億多臺設備,而無需預配置基礎設施。
2.3 認證受權
- AWS IoT 在全部鏈接點處提供相互身份驗證和加密。AWS IoT 支持 AWS 身份驗證方法(稱爲"SigV4")以及基於身份驗證的 X.509 證書。使用 HTTP 的鏈接可使用任一方法,使用 MQTT 的鏈接可使用基於證書的身份驗證,使用 WebSockets 的鏈接可使用 SigV4。
- 使用 AWS IoT 生成的證書以及由首選證書頒發機構 (CA) 簽署的證書,將所選的角色和/或策略映射到每一個證書,以便授予設備或應用程序訪問權限,或撤消訪問權限。
- 經過控制檯或使用 API 建立、部署並管理設備的證書和策略。這些設備證書能夠預配置、激活和與使用 AWS IAM 配置的相關策略關聯。
- AWS IoT 還支持用戶移動應用使用 Amazon Cognito 進行鏈接,Amazon Cognito 將負責執行必要的操做來爲應用用戶建立惟一標識符並獲取臨時的、權限受限的 AWS 憑證。
2.4 註冊表
- 註冊表將建立設備標識並跟蹤元數據,如設備的屬性和功能。
- 註冊表向格式一致的每臺設備分配惟一的標識,而無論設備的類型和鏈接方式爲什麼。此外,它還支持描述設備功能的元數據,例如傳感器是否報告溫度,以及數據是華氏度仍是攝氏度。
- 註冊表存儲有關設備的元數據,無需支付額外費用;而且須要每隔 7 天至少訪問或更新註冊表條目一次,註冊表中的元數據就不會過時。
以JSON格式存儲的設備註冊表信息
2.5 設備影子
2.5.1 設備影子介紹
- 設備影子保留每臺設備的最後報告狀態和指望的將來狀態,即使設備處於離線狀態。
- 經過 API 或使用規則引擎,獲取設備的最後報告狀態或設置指望的將來狀態。
- 應用程序能夠設置設備的指望將來狀態,而無需說明設備的當前狀態。AWS IoT 將比較指望將來狀態和最後報告狀態之間的差別,並命令設備"彌補差別"。
- 設備 SDK 可以輕鬆地同步其狀態及其影子,並響應經過影子設置的指望的將來狀態。
- 設備影子免費存儲設備狀態多達一年。若是至少每一年更新一次狀態,則設備影子將永久保留狀態;不然狀態將過時。
2.5.2 設備影子的流程
2.5.3 設備影子的格式
2.6 規則引擎
2.6.1 規則引擎介紹
- 規則引擎驗證發佈到 AWS IoT 的入站消息,並根據定義的業務規則轉換這些消息並將它們傳輸到另外一臺設備或雲服務。規則能夠應用至一臺或多臺設備中的數據,而且它能夠並行執行一個或多 個操做。
- 規則引擎還能夠將消息路由到 AWS 終端節點,包括 AWS Lambda、Amazon Kinesis、Amazon S3、Amazon Machine Learning、Amazon DynamoDB、Amazon CloudWatch 和內置 Kibana 集成的 Amazon Elasticsearch Service。外部終端節點可使用 AWS Lambda、Amazon Kinesis 和 Amazon Simple Notification Service (SNS) 進行鏈接。
- 使用相似 SQL 的語句編寫規則。例如:若是溫度讀數超出特定閾值,則它能夠觸發規則以便將數據傳輸到 AWS Lambda;若是此溫度超出其餘 5 臺設備的平均值 15%,則應採起措施。
- 規則引擎將提供數十個可用於轉換數據的可用功能,而且能夠經過 AWS Lambda 建立無限個功能。例如,若是正在處理各類不一樣的數值,則能夠取傳入數字的平均值。規則還會觸發在 AWS Lambda 中執行 Java、Node.js 或 Python 代碼,從而提供最高靈活度以及處理設備數據的能力。
2.6.2 規則引擎的做用
規則引擎驗證發佈至AWS IoT的消息請求,基於業務規則轉換消息請求併發布至其它服務,例如:
(1)富集化或過濾從設備收集的數據
(2)將設備數據寫入一個亞馬遜DynamoDBm數據庫
(3)保存文件至亞馬遜S3
(4)發送一個推送通知到全部亞馬遜SNS用戶
(5)向亞馬遜SQS隊列發佈數據
(6)調用Lambda函數抽取數據
(7)使用亞馬遜Kinesis處理大量的設備消息數據
(8)發送數據至亞馬遜Elasticsearch服務
(9)捕獲一條CloudWatch測量數據
(10)更新一條CloudWatch告警
(11)把一條MQTT消息數據發送至亞馬遜機器學習服務,基於亞馬遜機器學習模型進行預測
2.6.2 實時流式數據處理
N:1 入站的傳感器流式數據(數據降噪)
規則引擎過濾、轉換、彙總傳感器數據後,發送至亞馬遜Kinesis處理實時流式數據
Kinesis流式數據共享至其它業務系統
將流式數據的實時處理結果導入至數據庫、應用或其它亞馬遜服務
2.6.3 推送服務
推送通知
支持蘋果APNS推送通知服務、谷歌GCM雲消息服務、亞馬遜ADM設備消息服務,微軟WNS推送服務
亞馬遜SNS推送通知服務->HTTP協議終端(短信、郵件)
經過亞馬遜SNS推送通知服務,調用第三方HTTP協議終端,支持訂閱和重試
2.7 設備管理
- 支持全球或部分地區的固件升級
- 規則引擎在DynamoDBm數據庫跟蹤升級狀態和進度
- 註冊表存儲設備的固件版本
S3管理固件分發版本
在S3中組織和保障和固件二進制文件
消息代理使用話題模式通知設備分組
通知設備分組固件更新信息,包括S3中的固件二進制文件URL地址