$30 off During Our Annual Pro Sale. View Details »

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. AWSを活用した
    空調機IoTプラットフォームの開発
    2021.04.14
    ダイキン工業株式会社 空調生産本部 野原健太
    IoT@Loft #18
    Copyright: ©2019 DAIKIN INDUSTRIES, LTD., All Rights Reserved.

    View Slide

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

    View Slide

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

    View Slide

  4. ダイキン工業のIoTへの取り組み
    4 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved.

    View Slide

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

    View Slide

  6. 6 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved.
    Daikin Global Platform
    Daikin Global Platform
    アプリケーション
    建物
    エッジ
    空調設備
    機器
    空調設備
    機器
    建物
    エッジ
    空調設備
    機器
    空調設備
    機器
    AWS Cloud

    View Slide

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

    View Slide

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

    View Slide

  9. 9 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved.
    AWSサービスのフル活用
    • AWSサービスを徹底活用
    • 性能とスケーラビリティの担保をAWSに任せる!
    • 従量課金サービスの利用によるスモールスタート!
    大量接続、大量アクセス
    AWSサービスのフル活用
    接続台数に応じたコスト最適化

    View Slide

  10. Daikin Global Platformのシステム構成と
    設計で工夫(苦労)した点
    10 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved.

    View Slide

  11. 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

    View Slide

  12. 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

    View Slide

  13. 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℃」を送信

    View Slide

  14. 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)で受信することで、
    大幅に通信量を削減。

    View Slide

  15. 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で発表
    ・メッセージングコストを発生させることなくルールアクションを実行できる

    View Slide

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

    View Slide

  17. 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
    空調機データ
    空調機データ
    (現在値)

    View Slide

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

    View Slide

  19. 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
    空調機データ
    空調機データ
    (現在値)

    View Slide

  20. 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℃
    エッジから送信される空調機データは変化データであるため、
    そのデータをもとに時系列データを作成する処理が必要

    View Slide

  21. 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
    空調機データ
    (現在値)
    空調機データ
    (時系列データ)
    空調機
    データ

    View Slide

  22. 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℃

    View Slide

  23. 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
    空調機データ
    (現在値)
    空調機データ
    (時系列データ)
    空調機
    データ

    View Slide

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

    View Slide

  25. 25 Copyright: ©2021 DAIKIN INDUSTRIES, LTD., All Rights Reserved.
    ご清聴ありがとうございました
    Daikin Global Platformに興味を持っていただいた方!
    AWSをやりたい方!
    一緒にDaikin Global Platformを作りませんか?
    ご応募、お待ちしております!
    (採用HP)
    http://www.daikin.co.jp/recruit/career/

    View Slide