-IoTシステム構築におけるAWS活用の勘所-(佐藤瞬) クラウドを活用したIoTシステム設計 1/2

sato-ec

IoT(Internet of Things)ビジネスへの注目度が高まっている。どのようにIoTビジネスをデザインするかと同様に、どのようにIoTシステムをデザインするかも重要である。本稿では、IoTシステムの設計思想とクラウドサービスの活用について考察する。
Webインテグレーション事業部 副主任システムエンジニア 佐藤瞬

500億もの「モノ」とつながるIoTシステム

IoTは「モノのインターネット」などと呼ばれ、情報通信機器に限らず、さまざまな「モノ」(例えば家の冷蔵庫や自動車など)がインターネットにつながる状態、またはその仕組みを指し、これにより私たちの生活やビジネスにおいて利便性の向上やコスト削減が期待されている。

ITU(国際電気通信連合)によると、世界のインターネット人口は30億人を超えたと言われている。それに対してIoTは近年の発展により、2020年には500億のデバイス(モノ)がネットワークに接続されると予測されている(米国Cisco Systems社より。http://www.cisco.com/web/about/ac79/docs/innov/IoT_IBSG_0411FINAL.pdf)。そして、IoT システムが対象とするのはこの500億のモノであり、人が見たり、操作したりすることを前提に作られたWebシステムと同じ設計思想で対応することは難しい。モノ向けには、それに適したシステムの設計思想がある。本稿では、IoTシステムの最適な設計はどうあるべきかを考察する。

IoTシステムの全体像

IoTの対象となる分野は、ヘルスケアから家電、自動車、産業機械など多岐にわたる。その多くはセンサーを利用して何らかの情報を収集し、インターネットを通じてサーバーサイド(インターネット上にあるWebサーバー)にデータを蓄積するものである。本稿では、このようなセンサーデータの収集・蓄積を行うIoTシステムのサーバーサイドを対象として話を進めたい。

IoTシステムに求められる機能は、大きく分けて「収集」「蓄積」「分析」の3つだ。つまり、モノのセンサーからのデータを受け取る「収集」、受け取ったデータをデータストアに保存する「蓄積」、保存・蓄積されたデータにさまざまな手法で行う「分析」である。もう少し詳細に見ていこう。

まずは「収集」だ。1つのIoTシステムに接続されるモノのセンサーの数は数万~数百万ともなり、それぞれが収集したデータを1秒や1分といった間隔で定期的に送信するケースが多い。

通常のWeb サイトであれば、サーバーサイドで行う処理はほとんどがデータの参照である。しかし、IoTシステムの場合は、1つ1つのデータ量自体は非常に小さいが、それらのデータを全て保存しなければならない。これは大量の書き込み処理を、短時間で行う必要があるということだ。加えて、通常のWebサイトであれば、ピーク時と平常時である程度アクセスに波があるが、IoT システムの場合は、モノの数だけ24 時間365 日、常に同じ量のアクセスがある。これは、見方を変えれば常に最大量のアクセスをさばき続けなければならないということになる。従って、サーバーサイドでは大量の書き込み処理を継続的に行える処理能力と安定性が求められる。

次にデータストアでの「蓄積」だ。収集したデータは、さまざまな分析を行うため、リアルタイムから年単位の過去データまで、柔軟にアクセスできる必要がある。さらに、データの内容だが、モノは1 種類とは限らない。1つのシステムの中で数種類のモノが使われるのであれば、収集されるデータの種類やデータ構造も異なってくる。そのため、サーバーサイドのデータストアでは、データに柔軟にアクセスができるとともに、さまざまなデータ構造に対応できることも求められる。

そして、「分析」だ。分析にはリアルタイム性の高いものと、数ヶ月~数年単位の期間をまとめてバッチで行うものがある。さらに、目的に応じたアドホック(特定条件)分析が求められる場合もある。分析手法に関しては、アプリケーションの設計やどのようなツールを使うかの問題であるため、IoTシステムの構造に大きく依存することはないが、どのような期間で分析を行いたいかは考慮する必要があるだろう。

RDBの限界とクラウドの活用

(1) IoTとリレーショナルデータベースの相性

データストアの選択は、IoT システムを考える上で非常に重要性が高い。Oracle Database を始めとするリレーショナルデータベース(以下RDB)は、高い対応力と信頼性を持つため、IoTシステムにおいても、まずは従来通りRDBを中心に考えるのが一般的だろう。しかし、RDBはデータの整合性を保つことを目的としており、大量かつ頻繁にデータを更新する処理には向いていない。さらに、IoTシステムでモノが収集するデータはほとんどが時系列で蓄積されるが、RDBはこのような履歴データの扱いは苦手としている。また、IoTシステムに求められる要件は実に多様であり、RDBに向いていない多くの処理を行う必要があるため、大量のコンピュータリソースと繊細な設計が必要になる。

RDBにこだわり過ぎると、RDBがボトルネックとなり、システム全体の柔軟性が失われる。IoTシステム構築を考える上では、RDBにとらわれずに柔軟にデータストアを選択し、設計していくことが肝要である。

(2) クラウドサービスの活用

ここで選択肢となるのが、Amazon WebServices( 米国Amazon.com社により提供されているクラウドサービス。以下AWS)をはじめとするクラウドサービスの活用だ。クラウドサービスでは、さまざまな技術が提供されており、これらを利用することで、多くの選択肢の中から最適なシステム構築が可能となる。具体的な例を見てみよう。

お問い合わせ

当社のサービス・製品に関するご相談やご質問、お見積りのご依頼など、こちらからお問い合わせください。