AWS IoT Core(エーダブリューエス アイオーティー コア)は、Amazon.comがAmazon Web Services(AWS)の一部として提供する、IoT機器とクラウドの間のメッセージのやり取りを仲介するサービスである。旧称はAWS IoT。対象となる機器はセンサーや家電、産業機器などインターネットに接続された機器(AWSはこれらを「モノ」と呼ぶ)で、機器とクラウド上のアプリケーションの間、および機器同士の通信を中継する。2015年10月8日にベータ版として発表され、同年12月18日に一般提供が始まった。
概要 IoTの仕組みを構築する際には、多数の機器をインターネット経由で受け付ける窓口や、機器を識別するための認証の仕組み、受け取ったデータを保存・処理する経路を用意する必要がある。AWS IoT Coreは、これらを利用者がサーバーを用意・運用せずに使えるマネージドサービス(AWSが基盤の運用を代行するサービス)として提供する。AWSは、数十億台規模の機器と数兆件規模のメッセージを扱えるとしている。
機器との通信には、IoTのデータ送受信で広く使われるMQTT(少ない通信量で動く軽量なメッセージ送受信の規約)に加え、WebSocket(WSS)上のMQTTとHTTPSが使える。低消費電力で長距離に届く無線規格であるLoRaWANの機器も、AWS IoT Core for LoRaWANという機能を通じて接続できる。
日本での利用例として、バンダイが2023年に発売した通信機能付きの「たまごっちユニ」の基盤にAWS IoT Coreなどが用いられたことが報じられている。
料金は従量制で、接続時間、メッセージ数、デバイスシャドウ(機器の状態の保存)の操作、レジストリ(機器情報の保存)の操作、ルールエンジン(メッセージの変換と転送)の実行が別々に課金される。AWSは最低利用料金や必須の基本料金はないとしている。2025年7月15日以降にAWSの利用を開始した顧客には、AWS IoT Coreを含む対象サービスに適用できる最大200米ドルの無料利用枠クレジットが付与される(2026年9月時点)。
主な構成要素 デバイスゲートウェイとメッセージブローカー 機器がクラウドに接続する入口と、メッセージを配る仕組みである。パブリッシュ/サブスクライブ型(送信側が「トピック」と呼ばれる宛先にメッセージを出し、そのトピックを購読している側が受け取る方式)で動き、1台の機器の状態を多数の相手に同時に伝えられる。 ルールエンジン 受け取ったメッセージをSQLに似た文で選び出し、内容に応じて他のサービスへ送る。FROM句にMQTTのトピックを、WHERE句にメッセージ内のJSONの項目を書く。送り先にはAWS Lambda、Amazon DynamoDB、Amazon S3、Amazon Kinesisなどを指定できる。 デバイスシャドウ 機器の状態をクラウド側にJSONの文書として保持する仕組みである。機器が最後に報告した状態(reported)と、アプリケーションが望む状態(desired)を別々に持ち、両者の差分を通知するため、通信が途切れている間の指示を機器が再接続後に受け取れる。 レジストリ 「モノ」に一意の識別子を割り当て、属性などのメタデータを登録しておく台帳である。 認証と接続用のソフトウェア 機器はX.509の証明書またはAmazon Cognitoの識別情報を用いて自身を示し、暗号化された通信でメッセージブローカーとやり取りする。AWSは機器側に組み込むためのDevice SDKを提供しており、当初はC言語、JavaScript、Arduino Yún向けが公開された。
接続や認証の成否、メッセージの送受信件数、ルールの実行回数、デバイスシャドウの操作といった動作状況は、Amazon CloudWatchのメトリクスとして1分ごとに記録される。DatadogやNew Relicなどのサードパーティーのオブザーバビリティサービス(システムの状態を外部から観測・把握するための監視サービス)も、AWS IoT Coreのメトリクスを取り込むインテグレーションを提供している。
関連するサービス AWSは、AWS IoT CoreとAWS IoT Greengrassを土台として複数のIoT向けサービスを提供している。AWS IoT Greengrassは機器側で動くソフトウェアで、機器上での処理やクラウドとの連携を担う。機器側で動くものとしてはほかに、マイクロコントローラなど資源の限られた機器向けのリアルタイムオペレーティングシステムであるFreeRTOSがある。クラウド側では、多数の機器の登録・整理や遠隔でのソフトウェア更新を担うAWS IoT Device Management、機器群の設定や動作を点検するAWS IoT Device Defender、産業機器のデータを収集して監視するAWS IoT SiteWiseなどが用意されている。
歴史 2015年10月8日、AWSは年次イベントre:Inventの基調講演で「AWS IoT」を発表し、ベータ版として提供を始めた。発表時点でデバイスゲートウェイ、ルールエンジン、レジストリ、デバイスの状態を保持する仕組みが備わり、AWS LambdaやAmazon Kinesis、Amazon S3、Amazon DynamoDBと連携できるとされた。同年12月18日に一般提供へ移行し、デバイスゲートウェイが同一のエンドポイントでIPv4とIPv6の双方を扱えるようになった。
2017年11月、AWSは新たなサービスとしてAWS IoT Device Managementを追加した。この追加を伝えるAWS公式ブログでは、機器との接続を担う中核部分が「AWS IoT Core」の名称で表記されている。
2020年12月15日には、LoRaWANの機器とゲートウェイを接続するAWS IoT Core for LoRaWANが追加された。これにより、利用者はLoRaWAN Network Server(LoRaWANの機器とゲートウェイの接続を管理するサーバー)を自ら開発・運用せずに、独自のLoRaWANネットワークを構成できるようになった。2022年11月27日には、メッセージブローカーがMQTTのバージョン5に対応した。
関連項目 Amazon Web Services AWS IoT Greengrass モノのインターネット MQTT エッジコンピューティング 出版-購読型モデル
脚注
外部リンク AWS IoT Core(日本語) AWS IoT Core(英語) AWS IoT Core開発者ガイド(日本語)