IoTシステムでAWS Lambdaをどうテストすべきか? Vol.1

IoTシステムにおいてAWS Lambda関数の品質保証で採用すべきテストのベストプラクティスをご紹介する記事です。

はじめに

IoTシステムの品質保証で採用すべきテストのベストプラクティスは何なのか?ここでは、AWSを利用したIoTシステムでLambda関数、IoT機器、スマホアプリをテストする際の課題と、APIテスト自動化/サービス仮想化ツール「SOAtest/Virtualize」を用いたソリューションについて記事をお届けします。

次のような方におすすめです。
  • API連携のテストに実機を用意しなくともテストが可能になる方法を探している方
  • これからIoTシステムの構築でAPI開発やAPIを利用するアプリ開発に関わる方
  • 既にIoTシステム構築に着手しているが、現状のテスト手法に課題を感じている方

IoTの概要

IoTの概要についてご紹介します。IoT(Internet of Things)とは、インターネットで機器と通信してデータ連携するシステムを意味します。特定の機器同士でしか通信しない従来の閉じたシステムとは異なり、IoTシステムではあらゆるシステムが機器とインターネット経由で接続できます。その結果、機器から収集したデータを可視化・分析したり、スマートフォンなどの端末から機器を制御することも可能となります。IoTシステムでは、データを活用することで新たな価値を生み出すことができます。

以下では、IoTを活用したユースケースの一例をご紹介します。

スマート家電の管理

たとえば、従来であればエアコンの情報(運転モード、設定温度、風量など)はリモコンにしか表示されず、リモコンからしかエアコンを操作することは出来ませんでした。一方で、スマート家電ではインターネットでスマートフォンと接続することが可能なため、スマートフォンからエアコンの情報を確認することができます。さらに、そのほかの家電もまとめてスマートフォンで一元管理したり、日々の家電の使用状況をレポートし電気代を削減するためのアドバイスを提供するようなサービスも登場しています。

また、リモコンを使用したりや機器を直接操作する場合とは異なり、インターネットに接続可能な環境であればスマートフォンでどこからでもエアコンを操作することができます。そのため、例えば外出時にエアコンを操作し、帰宅したタイミングでちょうど部屋が適温となるように運転させるような使い方も可能です。

工場の見える化

工場の設備から収集されたデータを可視化することで、工場システムが抱える課題を客観的に分析することが可能となります。 たとえば、製品の製造においてどの工程がボトルネックとなっているかを把握したり、工場の稼働状況を分析して電力の供給を効率的行う場合などに利用されます。従来の閉じたシステムでは把握しきれなかった課題を浮き彫りにし、それを改善する活動に役立てることができます。

また、設備の状態を常時モニタリングし、異常が発生した場合はアラートを送信する仕組みを構築することで、問題に対して迅速に対応することができます。工場設備の運用・管理を改善したい場合も、工場の見える化は欠かせない要素であると言えます。

クラウドを利用したIoTシステムのメリット

近年では、クラウドサービスを利用したIoTシステムが主流となっています。各社クラウド上に用意されたさまざまなサービスを組み合わせて利用することで、システムのベースを容易に構築し効率的に開発を進めることが可能です。

たとえばAWSでは、IoTシステムに必須の機器と通信してデータを収集する機能(AWS IoT Core)や、収集したデータを可視化・分析する機能(AWS IoT Analytics)は、共通のサービスとして利用することができます。既存のサービスを可能な限り活用し、独自の機能だけをLambdaに実装することで、一から開発が必要な機能は最小限で済みます。

また、クラウドサービスを利用することでサーバーレスなアーキテクチャも実現できます。例えば、AWS Lambdaで独自の機能を実装する場合であってもサーバーはAWS側で管理されますので、システムを運用するためのサーバーを別で用意したり、プロビジョニングや管理にコストを費やす必要がなくなります。さらに、AWS Lambdaは実行されたリクエストと時間分を支払う従量課金制を採用しているため、物理的にサーバーを用意する場合と比べて初期コストを抑える効果も期待できます。

AWSサービスを利用したIoTシステムのアーキテクチャ例

AWSを利用したIoTシステムのアーキテクチャの一例をご紹介します。この例では、スマートフォンからエアコンを操作するIoTシステムにおいて、活用されるAWSサービスについて取り扱います。
この例では以下の3種類のユースケースをご紹介します。

エアコンの状態を取得

エアコンの状態を AWS IoT Coreで取得し、その情報をデータベースに格納します。

スマートフォンから現在のエアコンの状態を参照

スマートフォンのアプリケーションからAWS Lambdaに実装されたAPIを呼び出し、データベースに格納されたエアコンの情報を参照します。スマートフォンからCognito認証を実施した後、API Gatewayを介してREST APIを呼び出すことができます。

スマートフォンからエアコンの設定を変更

スマートフォンのアプリケーションからAWS Lambdaに実装されたAPIを呼び出し、IoT Coreを介してエアコンの設定を変更します。スマートフォンからCognito 認証を実施した後、API Gatewayを介してREST APIを呼び出すことができます。
今回ご紹介したシステムにおいて、クラウド上で開発が必要となるのはスマートフォンから呼び出されるLambdaのみです。そのほかの機能はすべてAWSのサービスを活用・設定することで実現できます。このように、IoTシステムはクラウドサービスを活用することで効率的に構築することができます。

まとめ

本記事ではAWSを利用したIoTシステムの概要についてご紹介しました。次の記事では、AWSを利用したIoTシステムでテストする際の課題とソリューションについてご紹介します。

APIのテスト自動化とサービス仮想化を1ツールで SOAtest/Virtualizeに
関するお問い合わせ

  • テクマトリックス株式会社
    東京本社

    ソフトウェアエンジニアリング事業部

    03-4405-7853

メールでのお問い合わせ
parasoft-info@techmatrix.co.jp

お問い合わせ

製品についてやテクマトリックスについてなど、
こちらよりお気軽にお問い合わせいただけます。