-
サーバ構築のデージーネットTOP
-
OSS情報
-
OSS比較
-
IoTプラットフォームで使われるOSS「IoT機械学習プラットフォーム」
IoTプラットフォームで使われるOSS「IoT機械学習プラットフォーム」
収集したIoTデータからパターンや特徴を見つけ出すためには、コンピュータがデータを分析・解析を行う機械学習の技術が使われます。IoT機械学習プラットフォームでは、膨大なデータを分散して処理するため、コンテナ型仮想化の技術が注目されています。このページでは、IoT機械学習プラットフォームで利用できるOSSと、それぞれのOSSの特徴について解説します。
IoT機械学習プラットフォーム
IoT機械学習プラットフォームとは、収集したデータを何らかの機械学習アルゴリズムで処理するための基盤です。収集したデータを活用して、機械学習モデルを構築したり、ソフトウェア開発を行うために利用します。この分野では、システム開発を円滑に行うため、コンテナ型仮想化の技術が注目されています。
IoT機械学習プラットフォームで使えるソフトウェア
機械学習では、コンピュータによる膨大な反復処理が行われます。既存のCPUでは性能が不足する場合は、より機械学習の演算に適したGPUが利用されるようになっています。さらに1台のGPUで処理しきれない場合は、機械学習を分散して行うためコンテナの技術が使われています。
機械学習基盤としては、GoogleやAmazonなどのクラウドベンダーが提供しているサービスを利用することもできます。各サービスで学習に必要なGPUのような計算機資源を簡単に利用できる点は、非常に大きなメリットです。また、各社とも単純にコンテナが利用できるだけではなく、機械学習に適したツールを提供しています。一方で、こうした独自の環境に頼ると、モデルの適用をする段階になって同じものが再現できない可能性があります。また、機械学習を利用したシステムは、継続的に利用しつづける可能性を考慮する必要があります。インターネット上のサービスの状態によって、生産ラインが止まるなどの業務への影響が心配な場合は、オンプレミス環境で機械学習基盤を構築する方法がおすすめです。以下では、IoT機械学習プラットフォームで使えるOSSを紹介します。
Docker 〜コンテナ型仮想化のスタンダード〜
Dockerは、コンテナ型仮想化を実現するためのオープンソースソフトウェアです。VMWareやKVMなどで行う仮想化の技術に比べて、少ないリソースでソフトウェアを動作させることができます。機械学習では、様々なモデルを作成し、試行錯誤しながら精度をあげていくような開発スタイルが取られます。Dockerは、このスタイルでの開発を効率よく行うことができる技術として注目されています。
また、Docker-HUB というコンテナレジストリが公開されているのも特徴の1つです。Docker-HUB には様々なアプリケーションのコンテナが用意されており、機械学習で利用するソフトウェアも多く収録されています。これらはDocker-HUB からを入手してすぐ使うことができるため、必要なシステムを迅速に構築することができます。
Kubernetes 〜Dockerコンテナの管理ツール〜
Kubernetesとは、Googleが開発した、Dockerコンテナの統合管理を行うためのオープンソースソフトウェアです。現在は、Google Cloud PlatformやAWSなどのコンテナサービスでもKubernetes互換が提唱されています。
Kubernetesは、Dockerコンテナのデプロイ、スケーリング、アップデートなどをしやすいように設計されています。Docker単独ではノード内での通信しかできませんが、Kubernetesではノード間での通信などもサポートします。また、コンテナに割り当てるリソースの管理なども行うことができます。そのため、機械学習基盤に必要なスケーラビリティや耐障害性などを提供してくれます。また、Kubernetesには、実運用時に必要なコンテナのバージョン管理や、アップデートを支援する機能もあります。Kubernetesを利用することで、コンテナのメリットを最大限に生かした機械学習基盤を構築することができます。
Portainer 〜コンテナ管理GUI〜
Portainerとは、コンテナを管理するGUIツールです。操作方法はシンプルで、マウスで画面のボタンをクリックすることで、コンテナを効率よく管理することができます。視認性に優れ、コマンド入力が必要ないため、知識のない一般的なユーザーでも扱いやすいソフトウェアです。Portainerは、コンテナ型仮想化を実現できるソフトウェアDocker、Kubernetes、Nomadをサポートしており、コンテナを簡単に構成、監視することができます。
Portainerは、小さなコンテナ環境もWebUIで管理することが可能です。Kubernetesでも管理用のダッシュボードが用意されていますが、Kubernetesの場合、最低3~5台のコンテナ実行環境が必要になります。これに対して、1台のサーバしか利用しない小規模のシステムの場合でも、PortainerならばWebUIからコンテナを管理することが可能なため、有効に利用できます。
GitLab 〜コンテナレポジトリと開発支援〜
GitLabは、Git互換のプロジェクト管理ツールです。ソフトウェアをリポジトリで管理をする機能があり、コンテナのレポジトリとして利用することができます。DockerHUBに配置して公開することができないコンテナを保管しておくための、プライベートレポジトリを構築するためには必須のソフトウェアです。
GitLabは、もともとプロジェクト管理ツールですので、IoT開発全体を管理するプラットフォームとして利用できます。
IoTプラットフォームで使われるOSS
- IoTインフラ
- ここでは、FreeRADIUS、OpenXPKIについて紹介します。
- IoTネットワークインフラ
- ここでは、Nginx、HAProxy、Squid、OpenLDAP、389 Directory Serverについて紹介します。
- IoTデータの可視化
- ここでは、Grafana、OpenSearch Dashboards、Kibanaについて紹介します。