AWS IoT Core は、AWS サービスや他のデバイスへの接続、データインタラクションの保護、デバイスデータの処理と実行を支援します。
主な特徴
AWS IoT デバイス SDK
AWS IoT デバイス SDK を使用すれば、ハードウェアデバイスまたはモバイルアプリケーションをより簡単に、よりすばやく AWS IoT Core に接続できます。AWS IoT デバイス SDK を使用すれば、AWS IoT Core との間で MQTT、HTTP、または WebSockets プロトコルを介した接続、認証、メッセージ交換が可能になります。AWS IoT デバイス SDK では C、JavaScript および Arduino がサポートされており、クライアントライブラリ、開発者ガイドおよびメーカー向けのガイドが付属しています。オープンソースの SDK を使用することや、独自に SDK を作成することも可能です。
詳細については、AWS IoT Device SDK のドキュメントをお読みください。SDK をダウンロードしてすぐに開始することもできます。
Device Advisor
Device Advisor は、開発中に IoT デバイスを検証するための完全マネージド型のクラウドベースのテスト機能です。デベロッパーが AWS IoT Core との信頼性の高い安全な接続について IoT デバイスを検証できるよう、ビルド済みのテストを提供します。Device Advisor を使用することで、デベロッパーは IoT デバイスが AWS IoT Core と確実に相互運用できるかどうかをテストし、セキュリティのベストプラクティスを実行することができます。デベロッパーは、デバイスを本番環境にデプロイする前に、開発中に最も一般的なデバイスソフトウェアの問題を特定して解決することができます。また、Device Advisor からは署名付きの認定レポートも提供されます。このレポートは、ハードウェアパートナーが、独自のデバイスを AWS Partner Device Catalog に登録しようとする際に使用できます。詳細を確認し、使用を開始するには、Device Advisor の概要ページ、技術ドキュメント、およびブログを参照してください。
デバイスゲートウェイ
デバイスゲートウェイは IoT デバイスが AWS に接続する入口の役割を果たします。デバイスゲートウェイはすべてのアクティブなデバイスの接続を管理し、複数のプロトコルに対するセマンティックスを実装して、デバイスが AWS IoT Core と安全で効率的に通信できることを確認します。現在、デバイスゲートウェイでは MQTT、WebSocket、HTTPS プロトコルがサポートされています。MQTT または WebSockets で接続するデバイスでは、デバイスゲートウェイは長時間の双方向性接続を維持して、これらのデバイスが低レイテンシーでいつでもメッセージを送受信できるようにします。デバイスゲートウェイは完全マネージド型で、自動的にスケーリングするため、ユーザーがインフラストラクチャの管理をしなくても 10 億以上のデバイスがサポートされます。AWS IoT に移行する場合、デバイスゲートウェイは既存のアーキテクチャと IoT デバイスへの影響を最小限に抑えて移行する機能を提供します。構成エンドポイントの詳細については、こちらのドキュメントをお読みください。
詳細については、AWS IoT Core ユーザーガイドのプロトコルのセクションを参照してください。
メッセージブローカー
メッセージブローカーは、MQTT Version 5.0 Message Standard に基づき、高スループットの Pub/Sub メッセージエージェントで、お客様のすべての IoT デバイスとアプリケーションと低レイテンシーで安全にメッセージを送受信します。メッセージブローカーのトピック構造は柔軟性があるため、多数のデバイスにメッセージを送信したり、メッセージを受信したりすることができます。1 対 1 のコマンドとコントロールメッセージから、1 対 100 万 (またはこれ以上も!) ものブロードキャスト通知システムまでのメッセージパターンをサポートします。また、きめ細かいアクセス制御を設定することで、トピックレベルで個々の接続の許可を管理することができます。これにより、デバイスとアプリケーションは、必要なデータのみを送受信することができます。メッセージブローカーは完全マネージド型のサービスですので、どのような使い方をしても、お客様がインフラを実行しなくても、そのメッセージ量を自動的にスケーリングします。
詳しくは、AWS IoT Core ユーザーガイドのデバイス通信プロトコルのセクションを参照してください。
CoAP Protocol
Constrained Application Protocol (CoAP) は、バッテリー駆動の IoT センサーなどの制約のあるデバイス向けに設計された特殊なインターネットアプリケーション層プロトコルです。CoAP は、使い慣れた HTTP スタイルの要求/応答メッセージングを軽量の User Datagram Protocol (UDP) プロトコルで提供するため、デバイスがクラウドと通信する頻度が低く、ほとんどの時間を低電力状態でオフラインで過ごす IoT ユースケースに適したプロトコルです。AWS IoT Core は、AWS で構築されたパートナーが開発した IoT プラットフォームを通じて、Narrowband IoT (NB-IoT) 技術を使用するセルラーデバイスなどの CoAP/UDP サポートを提供します。1NCE、Aeris、Telefornia などのパートナーは、AWS IoT Core で CoAP プロトコルをサポートする専用サービスを構築しています。これにより、お客様は独自のブローカーを構築したり、専用のクラウドリソースを管理したりすることなく、デバイスをクラウドに直接接続できます。
CoAP による LPWAN IoT ソリューションの実装の詳細をご覧ください。
認証と認可
AWS IoT Core では、接続するすべてのポイントでの相互認証と暗号化が提供されており、デバイスと AWS IoT Core 間では身元が証明されたデータのみが交換されます。AWS IoT Core では、AWS の認証方法 (SigV4 と呼ばれる)、X.509 証明書ベースの認証、お客様が作成したトークンベースの認証 (カスタムオーソライザーを使用) がサポートされています。 HTTP による接続ではこれらの方法のいずれかを使用できます。MQTT による接続では証明書ベースの認証、WebSockets による接続では SigV4 またはカスタムオーソライザーを使用できます。AWS IoT Core では、AWS IoT Core によって生成された証明書、および推奨される認証機関 (CA) によって署名された証明書を使用できます。各証明書に選択したポリシーをマッピングすることで、デバイスやアプリケーションにアクセスを与えたり、デバイスに触れることなくアクセスを取り消したりすることができます。
デバイスについての証明書やポリシーの作成、デプロイおよび管理は、コンソールから、または API を使用して実行できます。これらのデバイス証明書のプロビジョニング、アクティベーションおよび関連付けは、AWS IoT Core を使用して設定された関連する IoT ポリシーによって行うことができます。これは、お客様がそうすることを選択した場合、デバイスへのアクセスを即座に取り消すのに役立ちます。AWS IoT Core では、Amazon Cognito を使用して、ユーザーのモバイルアプリケーションからの接続もサポートしています。アプリケーションのユーザーに一意の ID を作成し、権限が限定された一時的な AWS 認証情報を取得するために必要なすべてのステップは Amazon Cognito によって処理されます。デバイスで X.509 証明書による認証が行われると、AWS IoT Core では一時的な AWS 認証情報の提供が行われます。これにより、デバイスは DynamoDB や S3 のようなその他の AWS のサービスに簡単にアクセスできるようになります。
AWS IoT Core のフリートプロビジョニングにより、大規模のクラウドにより簡単に任意の数の製造されたデバイスをオンボードすることができます。デバイスに一意のデジタル ID を設定し、完全なマネージドデバイスオンボーディングエクスペリエンスを提供します。また、各デバイスが AWS IoT Core に初めて接続したときに、AWS IoT に接続して操作するために必要なデバイス側とクラウド側の設定を自動的に実行します。フリートプロビジョニングは、顧客に追加請求なしで提供されます。フリートプロビジョニングの詳細についてはこちらをご覧ください。
詳細については、AWS IoT Core ユーザーガイドのセキュリティと認証のセクションを参照してください。
レジストリ
レジストリによって、デバイスの ID が確定され、デバイスの属性や機能といったメタデータが追跡されます。各デバイスには、デバイスのタイプや接続方法にかかわらず、一貫した形式の ID がレジストリによって割り当てられます。また、デバイスの能力を記述するメタデータ (センサーが温度を報告するかどうか、および温度データが華氏か摂氏か、など) もサポートされています。
レジストリは、追加料金なしでデバイスのメタデータを保存するのに役立ちます。レジストリのメタデータは、少なくとも 7 年に 1 回レジストリエントリにアクセスまたは更新すれば、有効期限が切れることはありません。
詳細については、AWS IoT Core ユーザーガイドのレジストリセクションを参照してください。
デバイスシャドウ
AWS IoT Core を使用すると、各デバイスの永続的な仮想バージョン、またはデバイスシャドウを作成することができます。これにはデバイスの最新の状態が含まれるため、アプリケーションや他のデバイスはメッセージを読み込んでデバイスを操作することができます。デバイスシャドウには、デバイスがオフライン状態のときでも、各デバイスについて最後に報告された状態と、希望する今後の状態が保持されます。最後に報告された時点の状態の取得や、希望する今後の状態の設定は、API を介して、またはルールエンジンを使用して実行できます。
デバイスシャドウでは、REST API 操作が常時利用できるため、デバイスと協働するアプリケーションの構築が容易になります。また、アプリケーションではデバイスの現在の状態を取得することなく、希望する今後の状態を設定できます。希望する状態と最後に報告された時点の状態との相違は AWS IoT Core によって比較され、相違を補うようデバイスに対してコマンドが送られます。
AWS IoT デバイス SDK によって、簡単にデバイスの実際の状態とデバイスシャドウを同期させ、デバイスシャドウを使用して設定された希望する今後の状態に対応させることができます。
デバイスシャドウを使えば、デバイスの状態を最大 1 年間無料で保存できます。デバイスシャドウを少なくとも 1 年に 1 回更新すれば、永遠に持続しますが、そうでない場合は失効します。
詳細については、AWS IoT Core ユーザーガイドのデバイスシャドウのセクションを参照してください。
ルールエンジン
ルールエンジンによって、インフラストラクチャの管理を一切必要とせずに、接続されたデバイスによって生成されるデータを収集、処理、分析、データに基づいたアクションを実行するアプリケーションを構築することができます。ルールエンジンでは、お客様が定義したビジネスルールに基づいて、AWS IoT Core で発行された入力メッセージが評価、変換され、別のデバイスやクラウドサービスへと配信されます。1 つのデバイスからのデータにも、多数のデバイスからのデータにも同じルールを適用でき、アクションを単独で実行することも、多数のアクションを並行して実行することも可能です。
Rules Engine は、AWS IoT Analytics、AWS IoT Events、AWS Lambda、Amazon Kinesis、Amazon S3、Amazon DynamoDB、Amazon CloudWatch、Amazon Simple Notification Service (SNS)、Amazon Simple Queue Service (SQS)、Amazon Elasticsearch Service、AWS Step Functions、Amazon Location Service などの AWS エンドポイントへメッセージをルートすることもできます。AWS Lambda、Amazon Kinesis、Amazon SNS、Rules Engine のネイティブ HTTP アクションを使用して、外部エンドポイントへ到達できます。
ルールは、AWS マネジメントコンソール内で作成するか、または SQL に似た構文を使用して作成します。メッセージの内容に応じて異なる動作をするようにルールを作成できます。例えば、温度の読み取り値が一定のしきい値を越えたときに、AWS Lambda にデータを送信するルールを開始させることができます。他のデバイスからのデータなど、クラウド内の他のデータを組み合わせるようにルールを記述することも可能です。例えば、温度が他の 5 つのデバイスの平均より 15% 以上高かった場合にアクションを開始するよう設定できます。
ルールエンジンにはデータの変換に使用可能な数十の機能が準備されており、AWS Lambda を使用することで無限に増やすことが可能です。例えば、広い範囲の値を扱っている場合、入力される数値の平均を取ることができます。ルールからは、AWS Lambda 内の Java、Node.js または Python コードのランタイムを開始することも可能なので、最大限の柔軟性と能力を備えたデバイスデータ処理が行えます。
詳細については、AWS IoT Core ユーザーガイドのルールエンジンのセクションを参照してください。
AWS IoT Core for LoRaWAN
AWS IoT Core for LoRaWAN を使うと、顧客は、低電力の長距離広域ネットワーク (LoRaWAN) 技術を使用している無線デバイスに接続することができます。AWS IoT Core を利用することで、LoRaWAN Network Server (LNS) を開発または運用することなく、独自の LoRaWAN デバイスやゲートウェイを AWS に接続し、プライベート LoRaWANネ ットワークをセットアップすることができるようになりました。これにより、LNS や関連インフラの管理にまつわる未分化の開発作業や運用負担が軽減され、ネットワークのセットアップ時間を短縮できます。
AWS IoT Core for LoRaWAN は、Basic Station と呼ばれるオープンソースの LoRaWAN ゲートウェイ - LNS 通信プロトコルをサポートしています。これは、LoRaWAN ゲートウェイを AWS IoT Core に接続するために、カスタムゲートウェイソフトウェアの記述やテストが必要ないことを意味します。LoRaWAN ゲートウェイとデバイスが接続されると、デバイスデータストリームは自動的に AWS IoT Core ルールエンジンにルーティングされ、IoT アプリケーションの開発が加速されます。
デベロッパーは、デバイスデータを変換して処理するための単純な SQL クエリなどのルールを記述したり、アラートを生成したり、AWS IoT Core ルールエンジンを使用して Amazon S3 などの他の AWS サービスにルーティングしたりできます。エンジニアは、コンソールから、接続されたデバイスとゲートウェイのメトリックをクエリして、接続の問題をトラブルシューティングすることもできます。従量制料金で月々の契約がないため、LoRaWAN デバイスフリートを確実に接続およびスケーリングし、AWS サービスを使用してアプリケーションをより迅速かつより効率的に構築できます。
AWS IoT パートナーは、組み込みソフトウェアを変更することなく、最初から AWS IoT Core に接続できる LoRaWAN 用 AWS IoT Core 認定ゲートウェイを提供することでより簡単に開始できます。AWS Partner Device Catalog を検索して、LoRaWAN 用 AWS IoT Core での使用に適したゲートウェイを見つけます。
詳細と開始リソースへのアクセスについては、LoRaWAN 用 AWS IoT Core ガイドをご覧ください。
*LoRaWAN は、LoRa Alliance からのライセンスに基づいて使用されるマークです。
Device Location
AWS IoT Core Device Location は、従来の Global Positioning Service (GPS) ハードウェアを使用せずに、緯度および経度座標などの位置データを使用して IoT デバイスフリートを追跡および管理することができます。Device Location 機能を使用すると、消費電力の大きい GPS ハードウェアに依存する必要がなく、エンジニアリングの制約の中で適切な位置情報テクノロジーを選択できます。Device Location を使用すると、ビジネスプロセスの強化、メンテナンス作業の簡素化と自動化、新しいユースケースの解放が可能になります。例えば、現場のチームは、常に最新情報を把握しながら、メンテナンスが必要なデバイスの位置をすばやく特定できます。また、特定のリージョンへのアクセス制限など、場所に応じたセキュリティ強化に対応し、IoT ソリューションのセキュリティ体制を向上させることができます。
AWS IoT Core for Amazon Sidewalk
Amazon Sidewalk は、接続オプションの改善を通じて接続されたデバイスの動作を向上させる共有ネットワークです。Amazon が無償で提供する Sidewalk は、新しいデバイスのセットアップを簡素化するのに役立ちます。また、デバイスの低帯域幅の動作範囲を拡張し、自宅の Wi-Fi の範囲外であってもデバイスがオンライン状態を維持できるようにします。
AWS IoT Core for Amazon Sidewalk を使用すると、Sidewalk 対応のデバイスフリートを AWS IoT Core に簡単にオンボーディングして、スケーラブルな IoT ソリューションを構築できます。