Amazon Web Services ブログ

AWS IoT Device Client を使用して3時間でProof-of-Concept (PoC) IoT ソリューション を構築する

この記事は Syed Rehan によって投稿された Build a proof-of-concept IoT solution in under 3 hours with the AWS IoT Device Client を翻訳したものです。

はじめに

IoT を始めたばかりの方もいれば、すでに何千ものデバイスと接続されているという方もいます。IoT ビジネスアプリケーションを構築し、それをデバイスへデプロイしたいと考えている方や、IoT デバイスを制御、更新、監視、または保護するための機能を構築する方法を探していらっしゃる方もいます。様々な状況のお客様にそれぞれのニーズがあります。AWSではこれらの方々のニーズにお答えするため、AWS IoT をご体験いただける「Get Started with AWS IoT Workshop」をご用意しました。ワークショップにはこちらからアクセスください。

このハンズオンワークショップでは、AWS IoT Device Client を使用して、 Proof-of-Concept (PoC) IoT プロジェクトを作成するための手順をガイド付きで説明します。3時間で以下のことを学びます。

  • IoT デバイスをインターネットに安全に接続し、AWS IoT Core にオンボードして登録する
  • AWS IoT Device Management を使ったデバイスのリモートコントロール – ジョブを使った簡単な OTA(Over-The-Air)リモート操作、Secure Tunneling を使ったトラブルシューティング用の SSH アクセスのセットアップ
  • 毎日のセキュリティ監査を設定し、AWS IoT Device Defender を使用してデバイスのヘルスメトリクスの「ハートビート」を監視する

AWS IoT Device Client は C++ で書かれており、オープンソースで、GitHub で公開されています。組み込み Linux ベースの IoT デバイスにコンパイルしてインストールすることで、AWS IoT Core、AWS IoT Device Management、AWS IoT Device Defender の利用を開始することができます。

前提条件

このワークショップを行うには、以下の前提条件が必要です。

  • 管理者権限を持つ AWS アカウント、または Event engine にて提供されるアカウント。AWS アカウントの新規作成はこちらで行えます。
  • 最新のブラウザ(Firefox や Chrome など)がインストールされたパソコン
  • Linux の基本的な理解(ディレクトリの作成、ファイルのパーミッション設定など)、プログラミング(コードのコンパイル)の理解

AWS IoT Device Client を使用する利点

ユースケースの例:

AWS IoT Device Client はリファレンス実装であり、IoT のProof-of-Concept(PoC)を作成する最も簡単な方法です。AWS IoT Device Client は、インターネットに複数のデバイスを接続し、AWS に IoT データをルーティングする簡単な方法を提供します。特別な設定無しで、AWS IoT サービスを使用して、複数のデバイスの操作、管理、制御、または脅威からの保護を可能とします。オープンソースであるため、ビジネスニーズに合わせて変更したり、ビジネスアプリケーションを接続して AWS IoT の機能を活用したり、PoC から本番にスケールアップしたいときにリソース利用を最適化したりすることができます。AWS IoT Device Client が解決するユースケースの例をいくつか紹介します。

1. [初回接続とプロビジョニング] 複数のプロダクションデバイスをプロビジョニングし、インターネットに接続したい。

IoT Device Client は、デバイスが自動的に IoT Core に接続することを可能にし、IoT Core Identity サービスから安全な個々の ID のバルク証明書を交換し、IoT Core Device Registry に自身を登録します。

2. IoT ソリューションのためのカスタムビジネスアプリケーションを構築する場合、IoT Device Client は、お客様のアプリケーションのバックボーンとなる機能を提供します。

a. [メッセージング] MQTT 上でアプリとテレメトリ、状態、制御情報のメッセージをやり取りを行いたい。

IoT Device Client は、デバイスが AWS IoT Core Device Gateway に MQTT で接続し、その接続をアプリと共有することを可能にします。デバイスに簡単な設定を行うことで、AWS IoT Core Message Broker 経由でカスタム MQTT トピックを発行/購読することができます。また、Basic Ingest を介してアプリから AWS IoT Core Rules Engine に直接データを発行するオプションもあり、メッセージングコストを削減することができます。

b. [コントロール] デバイスの状態やアプリの設定を読み取り、制御したい。

IoT Device Client は、AWS IoT Core Device Shadow と対話する機能をアプリに提供するので、デバイスの状態やアプリの設定を、長時間オフラインの状態でも取得/設定することができます。

c. [運用とアップデート] アプリの新バージョンを使用するために複数のデバイスを更新したり、ファームウェア/ OS の更新を展開したり、リモートで複数のデバイスを再起動したい。

IoT Device Client を使用すると、AWS IoT Device Management Jobs を直接使用できます。これにより、デバイスが部分的にオフライン環境で動作する場合でも、ターゲットデバイスへの展開、展開速度の制御、および更新状況のトラッキングを行うことができます。

d. [トラブルシューティングとアクセス] デバイスのトラブルシューティング、ログの取得、メンテナンスのための SSH (Secure Shell) アクセスなどを行いたい。

IoT Device Client では、AWS IoT Device Management Secure Tunneling 機能を使ってデバイスを直接 Admin コンソールに接続し、管理者権限で同期的にアクセスすることが可能です。

e. [モニタリングとセキュリティ] 異常なセキュリティ動作を検出するために、オープンされているポートやデータのイン・アウトなど、デバイス側のヘルスメトリクスの「ハートビート」を送信しセキュリティ侵害から保護したい。

IoT Device Client は、デバイスが定期的に AWS IoT Device Defender サービスに MQTT 経由でメトリクスを自動的にパブリッシュすることを可能にします。

AWS IoT Device Client: ハイレベルアーキテクチャー

互換性

AWS IoT Device Client [GitHub] は現在、一般的なマイクロプロセッサ(x86_64、ARM、MIPS-32 アーキテクチャ)、一般的な Linux ソフトウェア環境(Debian、Ubuntu、RHEL)の IoT デバイスで動作しています。また、AWS IoT Device Client の meta-AWS レシピも提供しており、より制約の多い、目的に応じたデバイスのために、Yocto Linux ディストリビューションにビルドすることも可能です。

まとめ

ご興味を持った方は、この Workshop で AWS IoT Device Client を使った AWS IoT を始めてみてください。

AWS IoT Device Client を使用すると、IoT プロジェクトの Proof-of-Concept(PoC)を簡単に作成することができます。複数の IoT デバイスへの接続、管理、保護などに必要な面倒な作業を取り除き、IoT プロジェクトの開始に必要な初期投資を削減します。これにより、お客様は IoT ビジネスロジックとアプリケーションの構築に専念することができます。AWS は、AWS IoT Device Client を生きたツールとして提供します。AWS IoT Device Client は、運用とセキュリティのベストプラクティスが組み込まれたリファレンス実装です。新しい AWS IoT 機能が一般に利用可能になり、IoT のベストプラクティスが確立された場合、我々はそれらを適切にサポートするためにソフトウェアの更新を行います。

ワークショップをすすめる上でご質問等ありましたら、コメント欄にてお知らせください。

執筆者について

Syed Rehan は Amazon Web ServicesのSenior Specialist Solution Architect で、ロンドンを拠点に活動しています。リード IoT ソリューションアーキテクトとして、世界中のお客様をサポートしています。IoTとクラウドに関する深い知識を持ち、スタートアップから企業まで幅広い顧客に対して、AWS エコシステムによるIoTソリューションの構築を支援する役割を担っています。

Shantanu Satheは、AWS IoT の Senior Product Manager – Technicalです。IoT 車両管理・監視ソリューションの構築にフォーカスしています。

この記事は IoT Consultant の小林が翻訳しました。