AWSIoTCoreの概要を分かりやすく解説!
公開日:2023年05⽉17⽇最終更新日:2023年05⽉17⽇
この記事ではAWSIoTCoreの主な機能、特徴、AWSIoTCoreでできること(メッセージの取り扱い、認証認可、状態管理等の仕組み)について、わかりやすく解説します。これからAWSを学習したい人のためのおすすめ講座もご紹介します。
AWSIoTCoreとは?
AWSIoTCore(以降 IoTCore)はザックリと説明すると 「IoTデバイスとAWS上に構築されたアプリケーション、AWSの各種サービスとの連携を簡単・セキュアに行うマネージドなサービス」 と言うことができるでしょう。
IoTからのメッセージの取り扱いや認証認可、状態管理等の仕組みをAWS上で簡単に手間なく構築することが出来るサービスとなっています。
IoTCoreで提供されている主な機能の分類は下記3つとなります。
- IoTデバイスとAWSとの接続、メッセージ送受信
- IoTデバイスからのデータ収集・処理
- IoTデバイスの運用・管理
以降、上記の主な機能についてもう少し掘り下げてまとめていきたいと思います。
IoTデバイスとAWSとの接続、メッセージ送受信
IoTCoreではデバイスゲートウェイを利用してIoTデバイスとAWS間の接続をフルマネージドで管理します。
デバイスゲートウェイでの通信はMQTT、WebSocket、HTTPS等の通信プロトコルを利用し、デバイスとAWSでの双方向の通信 を低レイテンシで行うことができ、フルマネージドでスケーリングも行われるので数多くのデバイスとの接続管理を手間なく行うことができます。
又、IoTCoreではメッセージブローカーを利用して、IoTデバイスとAWS・アプリケーション間のメッセージのやりとりをトピックを利用したPub/Sub型の疎結合な形でやりとり出来る機能もフルマネージドで提供されています。 トピックを利用して1対1,1対多で必要な対象へメッセージの送受信の管理ができます。
デバイスとアプリ間の接続、メッセージのルーティング等の管理をする基盤を構築・管理することは必要不可欠ですが、自身でそれを構築することがビジネスの価値に直接結びつかない場合、フルマネージドで提供されることはとても魅力的でAWSクラウドサービスらしいと言えるのではないでしょうか。
IoTデバイスからのデータ収集・処理
IoTCoreでは、SQLライクな記述で「対象のトピックから収集したデータで条件に当てはまるデータだけを後続処理を行う」という仕組みを提供するルールエンジンという機能があります。
ルールエンジンではデバイスからのJSON形式のメッセージを「SELECT \<Attribute> FROM \<Topic Filter> WHERE \<Condition> 」のような 記述でフィルタし、後続のアクションとしてS3、DynamoDB、Lambda等の連携がサポートされているAWSサービスや、MQTTやHTTP等のエンドポイントを後続のアクションとして設定できます。
デバイスからの情報を全て送信して、後続のアプリ等で必要な情報だけをフィルタするのと比較してAWS側の仕組みで吸収できるので楽ですよね。
又、AWSのサービスとの連携が簡単に行えるのもAWSが提供するサービスらしい強味と言えると思います。
IoTデバイスの運用・管理
IoTCoreではSigV4、x.509、カスタム認証、AmazonCognito等の認証方法を利用してデバイス認証を管理でき、IoTポリシーでどのアクションが行えるかの認可の管理を行います。
利用するプロトコルによって利用出来る認証、認可方法が異なるので詳しくは公式ドキュメントのAWS IoT Core のデータプレーン API とポリシータイプをご参照下さい。
IoTCoreでは、デバイスの静的な属性をレジストリ、動的な属性をデバイスシャドウで管理します。
レジストリでは、ThingType(モノのタイプ)でどういった種類のデバイスでどういった属性を持つかを定義する機能、 ThingGroup(モノのグループ)でデバイスがどういったグループ(設置場所、デバイスの種類、etc)に所属しているかを定義し、グループに対しIoTポリシーをアタッチできます。
グループは階層構造を持って作成することも出来ます。 デバイスシャドウは、デバイスの状態をJSON形式のデータで管理する機能です。
シャドウデバイスを利用することでデバイスの現在の状態と、実際あるべき状態の差分等に応じての状態変更等の管理が行えます。
また、レジストリ、デバイスシャドウ、接続の状態でデバイスを検索してグルーピングを行い、そのグルーピングしたデバイスに対して一括して処理を行うコマンドを送信するジョブを定義できます。
まとめ
今回は、AWSIoTCoreについて概要をまとめましたがいかがでしたでしょうか。
デバイスとアプリ間の接続、メッセージのルーティング、デバイスの認証認可等の管理をする基盤を構築・管理することは、IoTを利用したシステムに必要不可欠です。
自身でそれを構築することがビジネスの価値に直接結びつかない場合、フルマネージドで一連の仕組みが提供されることはとても魅力的と感じて頂けたと思います。
また、AWSの各種サービスとの連携が簡単に行えるのも魅力的ですよね。
今後は今回紹介した機能を含めハンズオン形式で行える情報等も公開していこうと思いますのでお楽しみに!
ハンズオンといえば、本記事をお読みいただいている方の中には、AWSクラウドの基本的な知識はあるが、実際に設定や構築をしたことはない、という方もいらっしゃるのではないでしょうか。
東京ITスクールでは、ハンズオン形式でAWSの具体的な利用方法を体験できる講座も用意しております。
- 現場でAWSクラウドを扱うことになったが、どこから手を付ければ良いかが分からない
- AWSクラウドの基本的な知識はあるが、実際に設定や構築をしたことはない
- AWS研修はたくさんあるが、どれを受講すればいいのか分からない
という方は是非受講をご検討ください。
最後までお読みいただきありがとうございました。
参考資料
東京ITスクールおすすめの講座
現役エンジニア。AWSスペシャリスト。
AWSの全ての認定を取得し、全国に数百人しかいない【2023 Japan AWS All Certifications Engineers】に選出される。
好きなAWSサービスはS3、SSM。