Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWSを活用した空調機IoTプラットフォームの開発

 AWSを活用した空調機IoTプラットフォームの開発

AWS IoT@Loft #18

Kenta Nohara

April 16, 2021
Tweet

More Decks by Kenta Nohara

Other Decks in Technology

Transcript

  1. 2 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 自己紹介

    野原 健太 ダイキン工業株式会社所属 • 2008年4月に入社 • 入社以降、組み込みソフト開発(主にC++) • ここ数年、IoTシステム開発に進出 • クラウド歴(=AWS歴) 3年ほど • Daikin Global Platformプロジェクトのクラウド開発チームリーダー
  2. 3 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 今日話したいこと

    1. ダイキン工業のIoTへの取り組み 2. Daikin Global Platformのシステム構成と 設計で工夫(苦労)した点
  3. 5 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. ダイキン工業株式会社とIoT

    会社概要 • 空調事業を主力とする会社 • 150カ国以上に事業を展開 IoTの取り組み(Daikin Global Platform) 全世界の空調機をインターネットにつないで、販売、施工、運用、保守、 更新といったライフサイクルに対するサービスを提供する
  4. 6 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. Daikin

    Global Platform Daikin Global Platform アプリケーション 建物 エッジ 空調設備 機器 空調設備 機器 建物 エッジ 空調設備 機器 空調設備 機器 AWS Cloud
  5. 7 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 大量接続、大量アクセス

    • 想定機器接続台数500万台 (各機器から毎分データ発生) • 想定ユーザー数30万人 (同時アクセス9万人) • 求められる高い処理性能とスケーラビリティ • 無限に発生するデータを扱えるストレージ
  6. 8 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 接続台数に応じたコスト最適化

    • 中規模物件向け空調機サービスの適正価格はシビア • 初期投資を限りなく抑えたい(スモールスタート) • 接続台数とAWS利用料を限りなく正比例にしたい • 階段状で増えるのは嫌、リニアに増えて欲しい 利用料 利用料 接続台数 接続台数 初期投資を 抑えたい 階段を正比例 にしたい
  7. 9 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. AWSサービスのフル活用

    • AWSサービスを徹底活用 • 性能とスケーラビリティの担保をAWSに任せる! • 従量課金サービスの利用によるスモールスタート! 大量接続、大量アクセス AWSサービスのフル活用 接続台数に応じたコスト最適化
  8. 11 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. システム構成(空調機データ収集・蓄積)

    Amazon Simple Storage Service (Amazon S3) Amazon Elastic Container Service (Amazon ECS) AWS Cloud AWS IoT Core Amazon Kinesis Data Streams AWS Lambda Amazon DynamoDB Amazon ElastiCache Amazon Kinesis Data Streams AWS Lambda AWS Lambda エッジ 空調機データ アプリケーション 空調機データ (現在値) 空調機データ (時系列データ) Amazon API Gateway
  9. 12 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. システム構成(空調機データ収集・蓄積)

    ① 通信量&AWS IoT Core利用料の最適化 ② DynamoDB 利用料の最適化 ③ 時系列データ作成に伴う AWS利用料の最適化 Amazon Simple Storage Service (Amazon S3) Amazon Elastic Container Service (Amazon ECS) AWS Cloud AWS IoT Core Amazon Kinesis Data Streams AWS Lambda Amazon DynamoDB Amazon ElastiCache Amazon Kinesis Data Streams AWS Lambda AWS Lambda エッジ 空調機データ アプリケーション 空調機データ (現在値) 空調機データ (時系列データ) Amazon API Gateway
  10. 13 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. ①通信量&AWS

    IoT Core利用料の最適化 AWS Cloud AWS IoT Core Amazon Kinesis Data Streams AWS Lambda エッジ 空調機データ AWS Cloud Amazon Kinesis Data Streams AWS Lambda エッジ 空調機データ 変化データ 全データ • 通信量を削減するため、定常時は値が変化したデータのみ送信される(変化データ) • エッジ起動時、エッジ間通信切断⇒復旧時など、状態同期時に全データが送信される(全データ) 例えば、空調機が「ON/OFF」「設定温度」「室温」の3データを持っているとすると、 • 変化データ:室温変化時に「室温=20℃」を送信、ON/OFF変化時に「ON/OFF=ON」を送信 • 全データ:「ON/OFF=ON」「設定温度=22℃」「室温=20℃」を送信
  11. 14 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. ①通信量&AWS

    IoT Core利用料の最適化 AWS Cloud AWS IoT Core Amazon Kinesis Data Streams AWS Lambda エッジ 空調機データ AWS Cloud Amazon Kinesis Data Streams AWS Lambda エッジ 空調機データ 変化データ 全データ • 最初の設計では、全てKinesisで受信 ⇒ 通信費用がビジネス要件に合わない • Kinesisへデータ送信する度に発生するHTTPS接続確立のためのハンドシェイクが大きな割合を 占める ⇒高頻度・少量のデータ送信である変化データ送信を、AWS IoT Core(MQTT)で受信することで、 大幅に通信量を削減。
  12. 15 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. ①通信量&AWS

    IoT Core利用料の最適化 AWS Cloud AWS IoT Core Amazon Kinesis Data Streams AWS Lambda エッジ 空調機データ AWS Cloud Amazon Kinesis Data Streams AWS Lambda エッジ 空調機データ 変化データ 全データ • 変化データ受信処理には、AWS IoT Coreのルールアクションを利用 • AWS IoT CoreにかかるAWS利用料を最適化するため、Basic Ingestを利用 [Basic Ingest] ・AWS re:Invent 2018で発表 ・メッセージングコストを発生させることなくルールアクションを実行できる
  13. 16 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. ②DynamoDB利用料の最適化

    AWS Cloud AWS Lambda Amazon DynamoDB • 数百万の空調機の遠隔監視を可能とするデータベー スとして、無限のスケーラビリティをサーバーレス で実現するDynamoDBを採用 • DynamoDBのAWS利用料を最適化するために、 DynamoDBの料金体系を考慮した設計を実施 Amazon Kinesis Data Streams 空調機データ 空調機データ (現在値)
  14. 17 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. ②DynamoDB利用料の最適化

    • 料金体系 DynamoDB上のデータを読み書きする際、アイテムの一部だけ読み書 きする場合でも、アイテム全体のサイズに応じたキャパシティが消費 される 書き込みにかかる料金(WCUの料金)は、読み込みにかかる料金 (RCUの料金)の10倍以上 • キー設計 高頻度に送信される空調機データ(変化データ)の書き込みにかかる WCUの消費を最適化するようにキーを設計 AWS Cloud AWS Lambda Amazon DynamoDB Amazon Kinesis Data Streams 空調機データ 空調機データ (現在値)
  15. 18 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. ②DynamoDB利用料の最適化

    • 料金体系 プロビジョニングモード(あらかじめ必要なキャパシティを確保)と オンデマンドモード(消費した分だけ料金発生) プロビジョニングモードにはオートスケーリング機能、リザーブド キャパシティの仕組がある • キャパシティモードの使い分け 常に負荷がかかり続けるDB(=空調機データ用のDB) ⇒プロビジョニングモード ユーザ操作時のみ負荷がかかるDB(マスタデータ用のDBなど。シス テム構成図上は記載を省略)⇒オンデマンドモード AWS Cloud AWS Lambda Amazon DynamoDB Amazon Kinesis Data Streams 空調機データ 空調機データ (現在値)
  16. 19 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. ②DynamoDB利用料の最適化

    • 料金体系 データストレージにかかるコストはS3に比べると高い (Amazon Aurora等、他のデータベースサービスと比べてもやや高い) • ストレージサービスの使い分け 時系列でデータ量が増え続けていくデータはS3に格納 時系列でデータ量が増えないデータはDynamoDBに格納 空調機の遠隔監視に用いる空調機データ(現在値)や、マスタデータ はDynamoDBに格納し、データ見える化等に用いる空調機データ (時系列)はS3に格納する AWS Cloud AWS Lambda Amazon DynamoDB Amazon Kinesis Data Streams 空調機データ 空調機データ (現在値)
  17. 20 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. ③時系列データ作成に伴うAWS利用料の最適化

    AWS Cloud エッジ 空調機データ 空調機データ (時系列データ) 時系列データ作成処理 Amazon Simple Storage Service (Amazon S3) エッジから送信される空調機データ 00:00 ON/OFF=ON、設定温度=22℃、室温=20℃ 00:12 ON/OFF=OFF 00:27 設定温度=23℃ 00:49 室温=24℃ 時系列データ 時刻 ON/OFF 設定温度 室温 00:00 ON 22℃ 20℃ 00:05 ON 22℃ 20℃ 00:10 ON 22℃ 20℃ 00:15 OFF 22℃ 20℃ 00:20 OFF 22℃ 20℃ 00:25 OFF 22℃ 20℃ 00:30 OFF 23℃ 20℃ 00:35 OFF 23℃ 20℃ 00:40 OFF 23℃ 20℃ 00:45 OFF 23℃ 20℃ 00:50 OFF 23℃ 24℃ 00:55 OFF 23℃ 24℃ エッジから送信される空調機データは変化データであるため、 そのデータをもとに時系列データを作成する処理が必要
  18. 21 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. ③時系列データ作成に伴うAWS利用料の最適化

    • 時系列データ作成処理 空調機データ(現在値)DynamoDBのデータから時系列データの作成は困難 (例えば、空調機データ(現在値)を定周期でポーリングして時系列データを 作成する案があるが、ポーリング処理が遅延、停止などが起こると、 即、時系列データの欠損につながるので現実的ではない。) Amazon Simple Storage Service (Amazon S3) Amazon Elastic Container Service (Amazon ECS) AWS Cloud Amazon Kinesis Data Streams AWS Lambda Amazon DynamoDB Amazon ElastiCache Amazon Kinesis Data Streams AWS Lambda 空調機データ (現在値) 空調機データ (時系列データ) 空調機 データ
  19. 22 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. ③時系列データ作成に伴うAWS利用料の最適化

    • 時系列データ作成処理 エッジから送信された空調機データを一時的に ElastiCacheに保持し、 ElastiCacheに保持したデータを元に、ECSでバッチ処理で 時系列データを作成し、S3に格納する Amazon Simple Storage Service (Amazon S3) Amazon Elastic Container Service (Amazon ECS) AWS Cloud Amazon Kinesis Data Streams AWS Lambda Amazon DynamoDB Amazon ElastiCache Amazon Kinesis Data Streams AWS Lambda 空調機データ (現在値) 空調機データ (時系列データ) 空調機 データ 00:00 ON/OFF=ON、設定温度=22℃、室温=20℃ 00:12 ON/OFF=OFF 00:27 設定温度=23℃ 00:49 室温=24℃
  20. 23 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. ③時系列データ作成に伴うAWS利用料の最適化

    • 時系列データ作成処理 Lambda、DynamoDBではAWS利用料が合わず、ECS、ElastiCacheを採用 空調機データ(現在値)と異なり、障害発生が即、ユーザ影響につながるわけではないため、 サーバーレスにこだわりすぎず、AWS利用料削減を優先した (必ずしも、サーバーレス=コストダウンとは限らない) Amazon Simple Storage Service (Amazon S3) Amazon Elastic Container Service (Amazon ECS) AWS Cloud Amazon Kinesis Data Streams AWS Lambda Amazon DynamoDB Amazon ElastiCache Amazon Kinesis Data Streams AWS Lambda 空調機データ (現在値) 空調機データ (時系列データ) 空調機 データ
  21. 24 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. まとめ

    • 通信量まで考慮したAWSサービスの選定 • IoTシステムにおいてはAWS利用料だけでなく通信量も重要 • 通信頻度が高い場合はIoT Core(MQTT)が効果的 • AWSの料金体系を考慮した設計 • 機能実現だけでなく、料金体系まで考慮したAWSの使いこなしが重要 • 特にDynamoDBの書き込みに関わるキー設計は重要 • サーバーレス=コストダウンとは限らない • IoTシステムにおける機器データ処理部は、常時負荷がかかるので要注意 • サーバーレスにこだわりすぎない判断も必要
  22. 25 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved. ご清聴ありがとうございました

    Daikin Global Platformに興味を持っていただいた方! AWSをやりたい方! 一緒にDaikin Global Platformを作りませんか? ご応募、お待ちしております! (採用HP) http://www.daikin.co.jp/recruit/career/