Amazon Web Services ブログ
IoTの開発を始めよう!AWS IoT初学者向けの勉強方法 6ステップ!
皆さんこんにちは、AWSのソリューションアーキテクトの飯田です。
日本でも様々な企業でハードウェア製品のIoT化やスマートファクトリー化を検討しています。開発される方の中には、製品開発は慣れているがIoTについての知見が無い場合や、逆に、クラウド側の基盤構築は経験があるが、IoTデバイスの管理は初めて、といった方々もいるのではないでしょうか。そのような、これからIoT化にチャレンジされる方から「AWS IoTを学ぶにはどこからスタートすれば良い?」といったご質問が多く寄せられます。そんな方々の質問にお答えするために、ここでは一つの案として、次のような6つのステップに分けて、AWSのIoT関連の勉強の進め方をご紹介したいと思います。
また、記事の最後には、付録として、IoT開発者のためのリンク集を載せています。あわせて参考にして頂ければ幸いです。
Step 1 他社事例をチェック
まずは公開事例をチェック
すでに多くのIoTのプロジェクトをローンチしており、様々な事例が公開されております。その中から、自分の作りたいものに近い事例を確認することで、開発の流れや実際に出来上がるものをイメージしやすくなるかもしれません。主な日本国内のIoTの事例についてはAWS IoT 開発者ポータルで紹介しています。また、スマートファクトリーや製品開発などの製造系のお客様の事例は、日本のお客様向け – AWS の製造業に対する取り組み にも紹介があります。
IoT開発をされたユーザー事例を聞く
また、AWSでは、IoT@Loftというイベントを定期開催しています。製品開発、オートモーティブ、農業、ビルディングなど、各回異なるテーマを設定し、実際の開発に携われたエンジニアの方々に、プロジェクトの紹介をして頂いています。過去に開催されたイベントのレポートがAWSブログに掲載されており、資料や動画をご確認頂けます。また、今後のイベントについては、IoT@Loftのページで確認頂けます。
Step 2 IoTの基礎を学ぶ
AWSにはクラウドコンピューティングをはじめ、ストレージ、データベース、機械学習、IoTなど200を超えるサービスがあります。その中から個々の要件に応じて必要なものをつなぎ合わせることで、クイックな試作や本番への移行が可能となります。開発の基本的な考え方や進め方については、IoT開発を成功させるためのPoCの進め方と実践 の動画をご覧ください。
AWS の様々なサービスの一つとして、AWS IoTがあります。AWS IoTには、デバイスの管理やセキュリティ、接続、デバイスソフトウェアなど、IoT開発に必要な様々なサービスが含まれています。サービスの基本的な説明はAWS IoTのページにあります。また、AWS Black Belt Online Seminarでは、各サービスごとのポイントを詳しく紹介しています。さらに、各IoTのサービスを実際にお試し頂くためのハンズオンがあります。
これから開始する方であれば、まずはIoT開発の要となるAWS IoT Coreを知るところから始めると良いでしょう。AWS IoT Coreを使いこなすことで、デバイスとクラウドのセキュアな接続を実現でき、クラウドとの双方向のデータ送信や他のAWSサービスとの連携が可能になります。 IoT Coreを学ぶのには、まずBlack Beltの動画で実現できる内容を確認頂き、その後でIoT Core初級ハンズオンを実施していただくことをおすすめします。このハンズオンでは、クラウド上にダミーIoTデバイスを作成して、そのデバイスとのセキュアな接続を実現した上で、IoTでよく必要となる、以下の3つの仕組みを構築します。
- アプリケーション向けのDB作成
- Amazon Elasticsearch Serviceによるニアリアルタイムの可視化
- Amazon S3を利用したデータレイクの作成
また、IoT のトピックとプロトコルに関する基礎的な知識を身に付けながら、インタラクティブな演習やデモを通じて、IoT の用語、概念、および AWS IoT Core サービスについて学習していただけるeLearning –IoT Foundation: Telemetry も無料で利用可能です。
Step 3 各ユースケースの実現方法を学ぶ
IoTの開発を進めるために学びたいことは、担当される業務や製品によって様々かと思います。ここではまず、デバイス開発、クラウド開発に分けて、学習に使える動画やハンズオンコンテンツをご紹介します。
デバイスの開発
組み込み機器を開発される方の関心事としては、どのようなマイコンを使えばよいのか、実装に使えるSDKやその使用方法が知りたい、などがあるかと思います。大量生産を前提とした比較的単機能な製品であれば、FreeRTOS の利用が候補となります。FreeRTOS については、Black Beltの動画で概要を掴むことができます。また、ゲートウェイやエッジでのAI推論など、より高機能なエッジコンピューティングシステムにおいては、Greengrass が利用可能です。こちらはBlack Beltの動画と、ハンズオンがあります。2020年12月の re:Invent では、Greengrass v2 が発表されており、大幅なアップデートがありました。こちらは、AWS IoT Deep Dive #2の Greengrass v2のご紹介 の動画をご覧ください。また、比較的低スペックなLinuxマシンでシンプルなアプリケーションを実現したい場合であれば、Device Clientのリポジトリもチェックしてみてください。
ハードウェア構成を選定評価される場合には、Partner Device Catalogで、FreeRTOS や Greengrass がすぐに利用可能な評価ボードやモジュールを確認可能です。
クラウドの開発・運用
IoTシステムのクラウド側の運用を今後担当される方の場合は、大量なデバイスの効率的な管理やセキュリティ対策が関心事になるかと思います。AWS IoTのサービスとしては、デバイス管理を行うためのAWS IoT Device
Managementとセキュリティの監視・監査を行うための AWS IoT Device Defender があります。これらの基本的な内容については、デバイスの運用で使える AWS IoT サービスの紹介の動画をご覧ください。実際に手を動したい方は、Step2で IoT Core を学んで頂いたあとに、AWS IoT Device Managementのハンズオン および AWS IoT Device Defenderのハンズオンを試すことで理解を深めることができると思います。
ユースケースごとの学習
さらに一歩すすんで、特定の用途での使い方を深く学びたい方のために利用可能なコンテンツをリストアップしておきます。作りたいものに近いものがあればぜひお試しください。
- IoTにおけるカメラ・動画の扱い方
- スマートファクトリーのデータ収集・分析
- ロボティクス
- IoT@Loft #16 – AWS RoboMaker チームが考えるこれからのロボット開発
- Autonomous Surveillance Demo
- AWS RoboMaker、AWS IoT、Amazon Kinesis Video Streams を利用した監視システム
Step 4 プロトタイプを作る
Step3までで、AWS IoTのサービスの理解が進んできたら、今度は実際に自分の作りたいものの試作をしてみましょう。builders.flash には、IoTのプロトタイプを作る際の参考にして頂ける「作ってみた」記事が数多く掲載されています。とくに、「日常生活で楽しむクラウドテクノロジー」の記事カテゴリーを見ると、センサーデータの可視化、ECHONET Lite、ドアフォン、見守りカメラ、スマートロック(スマート宝箱)などの記事があります。実際の作り方(レシピ)が掲載されているので、ご自身の作りたいものに近いレシピを試して頂き、それを改造する形でプロトタイピングを始めてみるのも良いかもしれません。また、書籍で詳しい手順を確認しながら実践されたい方には、IoTデバイス×Webアプリでホームネットワーク AWS クラウドサービス開発テクニックという本もございます。
実際にプロトタイプを作っていく中で分からない事があれば、AWSドキュメントを参照し、それでも分からないことは、 Online Ask an Expert で、AWSの技術エキスパートに直接質問することも可能です。
Step 5 プロダクション開発に必要なスキルを学ぶ
Step4で、プロトタイピングを通してAWSを用いたIoTのシステムの作り方についての理解が進んだかと思います。次のステップとしては、実際の製品開発のために必要な要素を習得していきます。
設計フェーズ
設計検討段階においては、IoT開発におけるベストプラクティスをまとめた、 IoTソリューションにおける10のゴールデンルール を確認し、さらにDive Deep するには、IoT版のAWS Well-Architected である IoT レンズ – AWS Well-Architected フレームワーク をご覧ください。
デバイスとクラウドの接続をセキュアに実現するために利用するデバイス証明書を、どのようにデバイス側にプロビジョニングするかは、大きな検討項目となります。AWS IoTでの実現方法については、AWS IoT Deep Dive #1でご紹介したAWS IoTにおけるデバイスへの認証情報のプロビジョニングの動画をご覧ください。
AWS IoTでは、デバイス・クラウド間の双方向の通信にMQTTプロトコルが利用可能ですが、プロダクションではユースケースを考慮したトピック設計が重要です。こちらについてはホワイトペーパーがリリースされています。
特に大量のデバイスが接続するケースでは、想定デバイス数やユーザー数からコストを試算し、最適なアーキテクチャを検討するかと思います。そんなときには、AWS Pricing Calculatorを使って料金シミュレーションをしてみましょう。
実装・デバッグフェーズ
組み込みソフトウェアやクラウド側の実装を進めていくと、接続ができない、メッセージが届かない、などの様々な不具合が発生します。IoTにおけるこういった問題の切り分け方、トラブルシューティングの方法については、AWS IoT Deep Dive #3でご紹介したAWS IoT のデバッグ&トラブルシューティングの動画をご覧ください。
プロダクションで大量なデバイスが接続された際に、システムが正しく動作するかを事前に検証することも重要です。IoT デバイスシミュレーターを使うことでシミュレーション環境を構築し、検証を効率化できる場合があります。IoT デバイスシミュレーターを AWS で容易に開始する方法をご確認ください。
Step 6 最新のアップデートを知る
毎年年末に開催される re:Invent では、IoTに限らず様々なAWSの新サービスや新機能、顧客事例が発表されます。発表された新機能のなかでIoTに関係するものは、AWS IoT Deep Dive などのAWSイベントで随時日本語で紹介しています。2020年末のre:InventのIoT関連のアップデートは、AWS IoT Deep Dive #2の開催ブログをご覧ください。今後も様々なイベントを開催していきますので、ぜひ最新情報をAWS IoT 開発者ポータルでチェックしてみてください。新規イベントの通知を受け取りたい方は、Connpassグループへの参加もご検討ください。
最後に、開発の際に参考になりそうな記事や動画をまとめてリストアップしておきます。(本ブログ記事と重複している部分もありますがご容赦ください。)
付録:IoT開発者のためのリンク集
- 全般
- オンラインハンズオン
- ポータルサイト
- 開催イベント / UG
- 設計・開発
- 運用・監視
- セキュリティ
- IoTにおけるセキュリティ考慮事項とAWSを活用した対策のご紹介
- データ収集・分析
- リアルタイムモニタリング、データレイク
- AWSにおける IoT データの活用 可視化・分析・機械学習
- エッジデバイス
著書について
飯田 起弘
AWS プロトタイピングソリューションアーキテクト
電機メーカーでソフトウェアエンジニアとしてIoT関連の新規事業の立ち上げを経験の後、AWSにてプロトタイピングソリューションアーキテクトとして、IoT関連案件のPoC, 本番導入などの支援に携わる。