-
サーバ構築のデージーネットTOP
-
OSS情報
-
OSS比較
-
IoTプラットフォームで使われるOSS「IoTデータ収集プラットフォーム」
IoTプラットフォームで使われるOSS「IoTデータ収集プラットフォーム」
IoTデータ収集プラットフォームは、IoTエンドポイントから収集したデータを蓄積し管理するための設備です。IoTデータ収集プラットフォームで使えるソフトウェアは、収集するデータ量の規模によって異なります。このページでは、IoTデータ収集プラットフォームで利用できるOSSと、それぞれのOSSの特徴について解説します。
IoTデータ収集プラットフォーム
IoTデータ収集プラットフォームは、IoTエンドポイントから収集したデータを保管するための設備です。データ量がそれほど多くない場合には、汎用的なストレージやオブジェクトストレージをそのまま利用することができます。一方、データ量が多い場合には、NoSQLデータベース、負荷分散型のデータベース、高速な全文検索エンジンなどが使われます。
IoTデータ収集プラットフォームで使えるソフトウェア
IoTデータ収集プラットフォームでは、IoTエンドポイントから収集した膨大な量のデータを保管します。それらの大量のデータを把握・分析するために、効率よく処理するためのデータベースが必要となります。
なお、データ量に関わらず、IoTデータ収集プラットフォームでは、以下のような理由からリレーショナルデータベースはあまり利用されません。
- 収集したデータには相関関係(リレーション)がない
- リレーショナルデータベースは、スケーラビリティに問題がある
- リレーショナルデータベースは、コンテナ型仮想化などでは使いにくい
その代わり、IoTデータ収集プラットフォームでは、NoSQL型のデータベースやKVS(key Value Store)などのデータベースが利用されます。こうしたデータベースには、コンテナ環境でデータの冗長性を確保するための仕組みや、負荷分散を行うための仕組みも実装されています。以下では、IoTデータ収集プラットフォームで使える、ストレージやデータベースのOSSを紹介します。
Ceph 〜大容量で拡張性の高いストレージ〜
Cephとは、可用性の高いストレージシステムを構築するためのオープンソースソフトウェアです。オブジェクトストレージとしても利用することができます。動的な拡張、ワークロードの変化への対応、ペタバイトスケールのストレージを目指して開発されています。非常に拡張性が高く、高い信頼性を提供します。
Cephでは、複数のストレージを結合し、1つの大きなストレージ空間を作成することができます。複数のストレージ上にデータを分割して分散配置します。このストレージ空間は、次の3つの用途で使うことができます。
- Amazon S3互換のオブジェクトストレージ
- ブロックデバイス
- ファイルストレージ(Ceph FS)
Cephを構成するには、最低でも3台のノードが必要です。
DRBD-SDS 〜Software Defined Storageを実現〜
DRBD-SDSは、Linbitが開発しているSDS(Software Defined Storage)のオープンソースソフトウェアです。LinSTORという管理ソフトウェアで、ストレージを定義することができます。複数のストレージを一括して管理し、冗長性と性能を担保しながら、ストレージ領域を切り出して利用することができます。切り出したストレージは、ブロックデバイスとして利用することができます。また、LVMなどのLinuxの標準的なストレージ機能と統合することで、ストレージサイズの動的変更などにも対応することができます。ブロックデバイスとして使う場合には、Cephよりも高速に動作します。また、2台からシステムを構成することができます。
OpenSearch〜高速な全文検索エンジン〜
OpenSearchとは、高速検索が可能な全文検索・分析エンジンのオープンソースソフトウェアです。同じく全文検索エンジンのElasticsearchが、ライセンス変更によってオープンソースソフトウェアでなくなったことを受け、そのElasticsearchをベースにして開発されました。OpenSearchは、検索速度や分析柔軟性に優れており、わかりやすく検索機能を利用できます。またデータ蓄積や分析環境を簡単に構築することができます。そのため、ビックデータを利用する場合等の大規模なシステムに向いています。
Graylog 〜高速にデータを取り込み、データ解析、可視化までサポート〜
Graylogは、GUIからログサーバの管理やログの参照、検査、可視化などを行うことができる統合ログ管理のオープンソースソフトウェアです。IoTデバイスから収集されたテキスト型のデータを構造化してOpenSearchに保管してくれます。全体として非常に高パフォーマンスで、秒数万のデータでも保管することができます。
Graylogでは、収集したデータを元に、閾値監視をすることができます。そのため、IoTデバイスの監視の用途でも利用することができます。また、データをグラフや表などに可視化して表示することができます。つまり、データ解析プラットフォームとしても利用することができます。
MongoDB 〜NoSQLデータベースのスタンダード〜
MongoDBは、いわゆるNoSQL型データベースのオープンソースソフトウェアです。高速にデータを管理することができます。NoSQL型ではありますが、ドキュメントと呼ばれる構造型のデータを使って、データを管理することができます。データの追加、更新、削除、クエリの機能を備えているため、SQLに近い感覚で利用することができます。データの複製(レプリケーション)や水平スケーリング(シャーディング)に対応しているため、データの冗長性を保ちながら、スケーラブルにシステムを拡張していくことができます。
非常に高い性能が要求される場合には、MongoDBはオンメモリデータベースとして利用することができます。ただし、これは商用版の機能となっています。
GridDB 〜IoT向けNoSQLデータベース〜
GridDBも、いわゆるNoSQL型のデータベースです。MongoDBと同様に、データの冗長性を保ちながら、スケーラブルにシステムを拡張していくことができます。電力などのインフラ系のIoT環境で発達してきたソフトウェアです。
GridDBもMongoDBと同様に、商用版とコミュニティ版がありますが、まったく逆の戦略を取っています。オープンソースソフトウェアとして公開されているコミュニティ版は、オンメモリデータベースとして利用できます。ただし、キーバリューストアとしての動作だけをサポートします。一方で、商用版ではSQLに対応しています。
IoTプラットフォームで使われるOSS
- IoTインフラ
- ここでは、FreeRADIUS、OpenXPKIについて紹介します。
- IoTネットワークインフラ
- ここでは、Nginx、HAProxy、Squid、OpenLDAP、389 Directory Serverについて紹介します。
- IoTデータの可視化
- ここでは、Grafana、OpenSearch Dashboards、Kibanaについて紹介します。