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

サーバーレスアーキテクチャで実現するグローバル空調IoTプラットフォームへの挑戦

 サーバーレスアーキテクチャで実現するグローバル空調IoTプラットフォームへの挑戦

AWS Solution Days Osaka 2018登壇時の資料です。

Takuya Kitamura

October 03, 2018
Tweet

More Decks by Takuya Kitamura

Other Decks in Technology

Transcript

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

    北村 拓也 (Twitter : @chipstar_light) ダイキン工業株式会社所属 2017年6月にキャリア入社 テクノロジー・イノベーションセンターの研究員 Daikin Global Platform構築プロジェクトの開発リーダー コミュニティ活動 京都アジャイル勉強会(#京アジャ)運営のお手伝い 月に1回Open JAMやってますよ! 最近JAWS-UG関連のコミュニティに顔出しはじめました!
  2. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 3 今日話したいこと

    1. ダイキン工業のIoTへの取り組み 2. Daikin Global Platformが抱える技術課題 3. 技術課題へのアプローチ
  3. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 5 ダイキン工業株式会社

    • 創業 1924年(大正13年)10月25日大阪で創業 • 創業者 山田晃 • 会長 井上礼之 • 社長兼CEO 十河政則 • グループ従業員数 67,036名(単独6,891名) • 本社 大阪市 • 売上 2兆2,700億円 • 営業利益 2,500億円
  4. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 6 グローバル展開

    10年の変化 2005年⇒2016年 事業展開 63ヵ国 ⇒ 150カ国 生産拠点 23拠点 ⇒ 90拠点以上 海外事業比率 46% ⇒ 75% • 販売拠点 • 生産拠点
  5. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 空調 89.8%

    化学 7.7% その他 2.5% 売上高(2017/3月期) 20,440億円 半導体用途 自動車用途 撥水撥油剤 (18,354億円) (1,568億円) (518億円) 空調事業 化学事業 その他事業 7
  6. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 8 空調IoTへの取り組み

    Daikin Global Platform • 全世界の空調機をインターネットにつないで、販売、施工、運 用、保守、更新といったライフサイクルに対するサービスを提 供する
  7. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 9 レジデンシャル市場(家庭用)

    コマーシャル市場(業務用) リージョンアプリ(地域別機能とUI) クラウドプラットフォーム RA 一般住宅などの 小規模建物 スマホ ユーザ エコキュート 床暖 エッジ エッジ 大規模住宅(豪邸) などの中規模建物 VRV ユーザ 燃焼/ボイラ アルテルマ QA RA スマホ エコキュート 床暖 VRV QA RA オフィスビルなど 中規模建物 管理パネル オーナー ビル管 テナント RA ショッピングモールなど 大規模建物 アプライド 管理パネル VRV QA オーナー ビル管 テナント 共通部品(API)群 (機器操作等) システム間 連携 分析システム BMS/BEMS その他システム 柔軟性・拡張性 自動最適制御 情報蓄積 基盤(DB) 情報蓄積基盤(DB) マーケ ティング 営業 商品 開発 品質 管理 施工 業者 販売店 BI/分析ツール 各地域開発者 地域別アプリケーション サービスアプリ 顧客管理、 課金管理など 個人情報保護 不正制御など セキュリティ
  8. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 中国リージョン 日本リージョン

    欧州リージョン お客様施設 お客様施設 10 クラウド プラットフォーム クラウド プラットフォーム エッジ 機器 機器 機器 機器 … お客様施設 お客様施設 エッジ 機器 機器 機器 機器 … お客様施設 お客様施設 エッジ 機器 機器 機器 機器 … クラウド プラットフォーム 統合クラウド リージョン アプリ リージョン アプリ リージョン アプリ … リージョン アプリ リージョン アプリ リージョン アプリ … リージョン アプリ リージョン アプリ リージョン アプリ … … インターネット インターネット インターネット インターネット インターネット インターネット 各拠点 機器情報 各拠点 機器情報 各拠点 機器情報 全拠点 機器情報 インターネット
  9. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 12 大量接続、大量アクセス

    • 想定機器接続台数100万台 (100万台が1分間隔で同時発報) • 想定ユーザー数30万人 (同時アクセス9万人) • 求められる高い処理性能とスケーラビリティ • 無限に発生するデータを扱えるストレージ
  10. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 13 •

    フルマネージドサービスを徹底活用 • サーバーレスアーキテクチャにこだわる! • 性能とスケーラビリティの担保をAWSに任せる! • NoSQLの徹底活用 • 断固としてRDBは使わず、全てをNoSQLでまかなえるように! 大量接続、大量アクセス サーバーレスアーキテクチャの採用 ※フルマネージドサービス利用の徹底 NoSQLの徹底活用
  11. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 14 接続台数に応じたコスト最適化

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

    徹底的な従量課金サービスの利用へ • 非機能もできるだけマネージド・サービスでカバー • 可用性やセキュリティ、バックアップといった機能もセルフマネージド サービスを使うことで課金体系が従量制になることを避ける • 運用を自動化し、固定費になる運用の人件費も削減 接続台数に応じたコスト最適化 サーバーレスアーキテクチャの採用 ※フルマネージドサービス利用の徹底 運用の徹底的な自動化
  13. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 16 エッジ-クラウド間通信料の削減

    • AWSの利用料だけでなく、通信回線の利用料も考慮する • データはたくさん集めたい↔通信料を抑えないと利益がでない • 毎分570byte×エッジ接続機器の通信データが発生 • 安いノンセルラーのLPWAは使えない エッジ 機器 機器 機器 クラウド 1分間隔 570byte×30台=17Kbyte 平均30台接続 他通信もあり
  14. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 17 •

    最も効率的な通信方法とIoTブローカーの探求 • シーンに合わせた複数のIoTブローカーの使い分け • 通信料+AWS利用料が最も安い構成へ! エッジ-クラウド間通信料の削減 IoTブローカーの効果的な使い分け
  15. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 18 リアルタイム制御

    • 無限に発生し続ける計測データとイベントデータ • 収集データを評価し、それを元に機器をリアルタイムで自動制御する • 室温に合わせて冷暖モードを自動切り替えする、etc… • 機器から収集されるデータをリアルタイムに分析する • 故障予知、故障診断、etc… • 他システムへのリアルタイムに連携する • 統合クラウド、他分析システム、etc… 業務用空調機 家庭用空調機 データ収集 リアルタイム自動制御 レポート用集計 機器現在状態表示 リアルタイム分析 周辺機器 機器操作 リアルタイムシステム連携
  16. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 19 •

    大量データをバッチ処理ではなく、1件毎に即時処理 • ストリーミングアーキテクチャを中心に置く • 高いパフォーマンスを保ちながら、大規模なスケールでストリー ミングデータを扱う • 今後拡充が想定される新たなリアルタイム処理を追加しやすい アーキテクチャに リアルタイム制御 ストリーミングアーキテクチャの採用
  17. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 20 技術課題まとめ

    大量接続、大量アクセス 接続台数に応じたコスト最適化 エッジ-クラウド間通信料の削減 リアルタイム制御 サーバーレスアーキテクチャの採用 ※フルマネージドサービス利用の徹底 NoSQLの徹底活用 運用の徹底的な自動化 IoTブローカーの効果的な使い分け ストリーミングアーキテクチャの採用
  18. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 21 大量接続、大量アクセス

    接続台数に応じたコスト最適化 エッジ-クラウド間通信料の削減 リアルタイム制御 サーバーレスアーキテクチャの採用 ※フルマネージドサービス利用の徹底 運用の徹底的な自動化 NoSQLの徹底活用 IoTブローカーの効果的な使い分け ストリーミングアーキテクチャの採用 技術課題まとめ
  19. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 24 ストリームをアーキテクチャの中心に置く

    業務用 空調機 レポート用 データ集計 リアルタイム 分析 周辺機器 外部システム 連携 収集データ リアルタイム 自動制御 収集データ エッジ 操作データ 操作データ クラウド 機器現在 状態更新 Kinesis Kinesis リージョン アプリ 統合 クラウド
  20. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 25 データコンシューマをマイクロサービス化

    業務用 空調機 レポート用 データ集計 リアルタイム 分析 周辺機器 外部システム 連携 収集データ リアルタイム 自動制御 収集データ エッジ 操作データ 操作データ クラウド 機器現在 状態更新 Kinesis Kinesis リージョン アプリ 統合 クラウド 機器現在状態管理サービス リアルタイム自動制御サービス リアルタイム分析サービス レポート用データ集計サービス 外部システム連携サービス
  21. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 26 各サービスもストリーミングアーキテクチャに

    業務用 空調機 レポート用 データ集計 リアルタイム 分析 周辺機器 外部システム 連携 収集データ リアルタイム 自動制御 収集データ エッジ 操作データ 操作データ クラウド 機器現在 状態更新 Kinesis Kinesis リージョン アプリ 統合 クラウド 機器現在状態管理サービス リアルタイム分析サービス レポート用データ集計サービス Lambda Lambda リアルタイム自動制御サービス 外部システム連携サービス 機器現在 状態 連携データ Kinesis
  22. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 27 各サービスもストリーミングアーキテクチャに

    業務用 空調機 レポート用 データ集計 リアルタイム 分析 周辺機器 外部システム 連携 収集データ リアルタイム 自動制御 収集データ エッジ 操作データ 操作データ クラウド 機器現在 状態更新 Kinesis Kinesis リージョン アプリ 統合 クラウド 機器現在状態管理サービス リアルタイム分析サービス レポート用データ集計サービス Lambda Lambda リアルタイム自動制御サービス 外部システム連携サービス 機器現在 状態 連携データ Kinesis EMR Spark Streaming EMR Spark Streaming 集計 結果 分析結果 Kinesis
  23. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 28 各サービスもストリーミングアーキテクチャに

    業務用 空調機 レポート用 データ集計 リアルタイム 分析 周辺機器 外部システム 連携 収集データ イベント 検知 収集データ エッジ 操作データ 操作データ クラウド 機器現在 状態更新 Kinesis Kinesis 分析結果 連携データ 集計 結果 リージョン アプリ 統合 クラウド Kinesis Kinesis 機器現在状態管理サービス リアルタイム分析サービス レポート用データ集計サービス リアルタイム 自動制御 イベント データ イベント 通知 通知データ Lambda Lambda EMR Spark Streaming EMR Spark Streaming Kinesis Lambda Kinesis Lambda Lambda リアルタイム自動制御サービス 機器現在 状態 外部システム連携サービス
  24. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. クラウド 30

    IoTブローカーの検討 機器操作 データ収集 エッジ データ収集 機器操作 コストを押さえるために一般的に知 られていたプラクティス • データ収集はKinesis • 機器操作はAWS IoT Kinesis Lambda AWS IoT リアルタイム 自動制御 リージョン アプリ 機器状態
  25. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. クラウド 31

    IoTブローカーの検討 機器操作 データ収集 エッジ データ収集 機器操作 コストを押さえるために一般的に知 られていたプラクティス • データ収集はKinesis • 機器操作はAWS IoT Kinesis Lambda AWS IoT リアルタイム 自動制御 リージョン アプリ プロトタイプの結果、 利用料金が想定コストを超えた コスト 想定コスト 機器状態
  26. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. クラウド 32

    IoTブローカーの検討 機器操作 データ収集 エッジ データ収集 機器操作 コストを押さえるために一般的に知 られていたプラクティス • データ収集はKinesis • 機器操作はAWS IoT Kinesis Lambda AWS IoT リアルタイム 自動制御 リージョン アプリ プロトタイプの結果、 利用料金が想定コストを超えた AWS 利用料金 通信回線 利用料金 想定コスト 通信回線 利用料金 AWS 利用料金 機器状態
  27. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 33 通信内容の分析

    AWS 利用料 通信回線 利用料金 トータル コスト ペイ ロード 想定 コスト ペイ ロード 以外 [分析結果] • Kinesisへデータ送信する度に発生する 接続確立のためのハンドシェイクが 大きな割合を占める • Keep-Aliveを設定しても、 5秒ぐらいしか効いてくれない AWS IoTを利用しての データ収集を再検討
  28. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. クラウド IoTブローカーの再検討

    機器操作 データ収集 エッジ データ収集 機器操作 通信量を抑えるため • 変更データ収集はAWS IoTを使う • 変更があった情報だけを送信する AWS IoT リアルタイム 自動制御 リージョン アプリ AWS IoT Lambda 機器状態
  29. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. クラウド IoTブローカーの再検討

    機器操作 データ収集 エッジ データ収集 機器操作 通信量を抑えるため • 変更データ収集はAWS IoTを使う • 変更があった情報だけを送信する AWS IoT リアルタイム 自動制御 リージョン アプリ AWS IoT Lambda AWS IoTの後続処理呼び出しを失 敗した場合、 データがロストしてしまう可能性 がある! →エッジとクラウドで情報の 不一致が発生してしまう 機器状態
  30. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. クラウド IoTブローカーの再再検討

    機器操作 データ収集 エッジ データ収集 機器操作 AWS IoT リアルタイム 自動制御 リージョン アプリ AWS IoT Lambda 通信量を抑えるため • 変更データ収集はAWS IoTを使う • 変更があった情報だけを送信する • 定期的にエッジから全データを Kinesisに送信しクラウド-エッジ 間の同期を取る AWS 利用料 通信回線 利用料金 トータル コスト 想定コスト AWS 利用料 通信回線 利用料金 全データ 収集 Kinesis Lambda 機器状態
  31. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 38 RDS→DynamoDBのパラダイム・シフト

    • データモデル中心設計からクエリ中心設計へ • 1 application = 1 table
  32. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 39 データモデル中心設計からクエリ中心設計へ

    物件ID 物件名 住所 … 機器ID 物件ID 設置日 機種ID … 機種ID 機種名 … Partition Key Sort Key Attribute 物件ID 機器ID 物件名 住所 機種ID 機種名 設置日 … Build001 Equip001 グランフロント 大阪市 Model A VRV5 2018/01 … Equip002 グランフロント 大阪市 Model A VRV5 2018/01 … Equip003 グランフロント 大阪市 Model B RA3 2018/01 … Build002 Equip004 ダイキン本社 大阪市 Model C QA1 2017/04 … Equip005 ダイキン本社 大阪市 Model A VRV5 2017/04 … 物件テーブル 機種テーブル 機器テーブル 機器テーブル 非正規化 • 正規化されたキレイなテーブル設計を作ってからではなく、 実際に利用するクエリパターンに合わせてた非正規化されたテーブル設計が必要 • Joinが出来ない、複数回のクエリ発行はコスト増 • Partition KeyとSort Key以外の条件指定はフルスキャン SELECT * FROM 機器テーブル WHERE 物件ID=‘Build001’ SELECT * FROM 機器テーブル WHERE 物件ID=‘Build001’ AND 機器ID=‘Equip001’ SELECT * FROM 機器テーブル WHERE 機種ID=‘ModelA’ ︙(その他様々なクエリ)
  33. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 40 1application=1table

    • 複数のテーブルを使用する特定の理由がない限り、 優れた設計のアプリで必要なテーブルは1つのみ (by DynamoDB開発者ガイド) • マスタ情報だけではなく、 運転データやイベントデータなども1つのテーブルで保持する必要がある! Sort Keyに、Composite keyを利用して階層的にデータを表現
  34. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 41 1application=1table

    Partition Key Sort Key Attribute Buil001 METADATA グランフロント 大阪市 Equip001_METADATA Model A VRV5 2018/01 … Equip001_CURRENT OFF 冷房 27℃ 値4 値5 … Equip001_STATE_2018-06-20T12:00:00 ON ドライ 28℃ 値4 値5 … Equip001_STATE_2018-06-20T12:01:00 ON 冷房 28℃ 値4 値5 … Equip001_STATE_2018-06-20T12:02:00 OFF 冷房 27℃ 値4 値5 … Equip001_EVENT_2018-06-20T11:02:00 運転ON/OFF ON Equip001_EVENT_2018-06-20T12:01:00 運転モード切り替え 冷房 Equip002_METADATA Model A VRV5 2018/01 … ︙ Buil002 METADATA ダイキン本社 大阪市 Equip004_MEADATA Model C QA1 2017/04 … [想定されるユースケース] ① ある物件情報を取得 ② 物件に設置している空調機器の各種情報(機器情報、現在状態と過去状態履歴、発生したイベント履歴)を取得 ③ 物件に設置している空調機器の過去状態履歴だけを取得 機器テーブル ユースケースに応じたComposite keyを階層的に構成する
  35. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 42 1application=1table

    Partition Key Sort Key Attribute Build001 METADATA グランフロント 大阪市 Equip001_METADATA Model A VRV5 2018/01 … Equip001_CURRENT OFF 冷房 27℃ 値4 値5 … Equip001_STATE_2018-06-20T12:00:00 ON ドライ 28℃ 値4 値5 … Equip001_STATE_2018-06-20T12:01:00 ON 冷房 28℃ 値4 値5 … Equip001_STATE_2018-06-20T12:02:00 OFF 冷房 27℃ 値4 値5 … Equip001_EVENT_2018-06-20T11:02:00 運転ON/OFF ON Equip001_EVENT_2018-06-20T12:01:00 運転モード切り替え 冷房 Equip002_METADATA Model A VRV5 2018/01 … ︙ Build002 METADATA ダイキン本社 大阪市 Equip004_MEADATA Model C QA1 2017/04 … 機器テーブル ①ある物件情報を取得: SELECT * FROM 機器テーブル WHERE PK=‘Build001’ AND SK=‘METADATA’
  36. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 43 1application=1table

    Partition Key Sort Key Attribute Buil001 METADATA グランフロント 大阪市 Equip001_METADATA Model A VRV5 2018/01 … Equip001_CURRENT OFF 冷房 27℃ 値4 値5 … Equip001_STATE_2018-06-20T12:00:00 ON ドライ 28℃ 値4 値5 … Equip001_STATE_2018-06-20T12:01:00 ON 冷房 28℃ 値4 値5 … Equip001_STATE_2018-06-20T12:02:00 OFF 冷房 27℃ 値4 値5 … Equip001_EVENT_2018-06-20T11:02:00 運転ON/OFF ON Equip001_EVENT_2018-06-20T12:01:00 運転モード切り替え 冷房 Equip002_METADATA Model A VRV5 2018/01 … ︙ Buil002 METADATA ダイキン本社 大阪市 Equip004_MEADATA Model C QA1 2017/04 … 機器テーブル ②物件に設置している空調機器の各種情報(機器情報、現在状態と過去状態履歴、発生したイベント履歴)を取得: SELECT * FROM 機器テーブル WHERE PK=‘Build001’ AND SK BEGINS_WITH ‘Equip001’
  37. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 44 1application=1table

    Partition Key Sort Key Attribute Buil001 METADATA グランフロント 大阪市 Equip001_METADATA Model A VRV5 2018/01 … Equip001_CURRENT OFF 冷房 27℃ 値4 値5 … Equip001_STATE_2018-06-20T12:00:00 ON ドライ 28℃ 値4 値5 … Equip001_STATE_2018-06-20T12:01:00 ON 冷房 28℃ 値4 値5 … Equip001_STATE_2018-06-20T12:02:00 OFF 冷房 27℃ 値4 値5 … Equip001_EVENT_2018-06-20T11:02:00 運転ON/OFF ON Equip001_EVENT_2018-06-20T12:01:00 運転モード切り替え 冷房 Equip002_METADATA Model A VRV5 2018/01 … ︙ Buil002 METADATA ダイキン本社 大阪市 Equip004_MEADATA Model C QA1 2017/04 … 機器テーブル ③物件に設置している空調機器の過去状態履歴だけを取得: SELECT * FROM 機器テーブル WHERE PK=‘Build001’ AND SK BEGINS_WITH ‘Equip001_STATE’
  38. Copyright: ©2018 DAIKIN INDUSTRIES, LTD., All Rights Reserved. 45 まとめ

    • ストリーミングアーキテクチャの採用 • リアルタイム制御のためのIoTシステムの中心にはストリーミングアーキ テクチャを据える • IoTブローカーの効率的な使い分け • AWS利用料だけでなく通信回線料とのバランスをみてIoTブローカーを選 定しよう • NoSQLの徹底活用 • データモデル中心設計からクエリ中心設計へ • 1 application = 1 table