80px-space
AWS IoT を始める
AWS IoT の仕組み
80px-space

80px-space

AWS IoT には、ハードウェアデバイスやモバイルアプリケーションを簡単に、すばやく接続できるようサポートする SDK が準備されています。AWS IoT デバイス SDK を使用すれば、AWS IoT との間で MQTT、HTTP、または WebSockets プロトコルを介した接続、認証、メッセージ交換が可能になります。このデバイス SDK では C、JavaScript および Arduino がサポートされており、クライアントライブラリ、開発者ガイドおよびメーカー向けの移植ガイドが付属しています。オープンソースの SDK を使用することや、独自に SDK を作成することも可能です。

詳細については、AWS IoT Device SDK documentation をお読みください。SDK をダウンロードしてすぐに開始することもできます。

80px-space

AWS IoT のデバイスゲートウェイによって、デバイスと AWS IoT との間の安全かつ効率的な通信が可能になります。デバイスゲートウェイでは、公開モデルまたはサブスクリプションモデルによってメッセージをやり取りすることができ、1 対 1 および 1 対多の通信が可能です。AWS IoT ではこの 1 対多の通信パターンによって、接続された 1 つのデバイスから、指定されたトピックについて複数の受信者にデータをブロードキャストできます。デバイスゲートウェイでは MQTT、WebSocket、および HTTP 1.1 プロトコルがサポートされており、専用プロトコルやレガシープロトコルのサポート実装も容易に行えます。デバイスゲートウェイは、インフラストラクチャのプロビジョニングが不要でありながら、10 億台以上のデバイスにも対応できるよう自動的にスケールされます。

詳細については、AWS IoT ユーザーガイドの「Protocols」を参照してください。

80px-space

AWS IoT では、接続するすべてのポイントでの相互認証と暗号化が提供されており、デバイスと AWS IoT 間では身元が証明されたデータのみが交換されます。AWS IoT では、AWS の認証メソッド (「SigV4」と呼ばれます) および X.509 証明書ベースの認証がサポートされています。HTTP による接続ではこれらの方法のいずれかを使用できます。MQTT による接続では証明書ベースの認証、WebSockets による接続では SigV4 を使用できます。AWS IoT では、AWS IoT によって生成された証明書、および推奨される認証機関 (CA) によって署名された証明書を使用できます。それぞれの証明書に対するロールやポリシーの選択をマッピングでき、デバイスに触れることなく、デバイスやアプリケーションによるアクセスを認証したり、考えが変わったときにすべてのアクセスを取り消したりできます。

デバイスについての証明書やポリシーの作成、デプロイおよび管理は、コンソールから、または API を使用して実行できます。これらのデバイス証明書のプロビジョニング、アクティベーションおよび関連付けは、AWS IAM を使用して設定された関連ポリシーによって行えます。これにより、必要な場合にはいつでも個別のデバイスのアクセスを即座に取り消すことができます。AWS IoT では、ユーザーのモバイルアプリケーションからの接続も Amazon Cognito によってサポートしています。アプリケーションのユーザーに一意の ID を作成し、権限が限定された一時的な AWS 認証情報を取得するために必要なすべての手順は Amazon Cognito によって処理されます。

詳細については、AWS IoT ユーザーガイドの「Security and Authentication」セクションを参照してください。

80px-space

レジストリによって、デバイスの ID が確定され、デバイスの属性や機能といったメタデータが追跡されます。各デバイスには、デバイスのタイプや接続方法にかかわらず、一貫した形式の一意の ID がレジストリによって割り当てられます。センサーが温度を報告するかどうか、および温度データが華氏か摂氏かといった、デバイスの機能を説明するメタデータもサポートされています。

レジストリではデバイスについてのメタデータを追加料金なしで保存でき、最低 7 年間に 1 度レジストリのエントリを更新していれば、レジストリ内のメタデータが期限切れになることはありません。

詳細については、AWS IoT ユーザーガイドの「Registry」セクションを参照してください。

80px-space

AWS IoT では、それぞれのデバイスについて「シャドウ」、つまり永続的な仮想バージョンを作成できます。シャドウにはデバイスの最新の状態が保存されるため、アプリケーションや他のデバイスからのメッセージの読み出し、およびデバイスとの通信が実行できます。デバイスのシャドウには、デバイスがオフライン状態のときでも、各デバイスについて最後に報告された状態と、希望する今後の状態が保持されます。最後に報告された時点の状態の取得や、希望する今後の状態の設定は、API またはルールエンジンによって実行できます。

デバイスのシャドウでは、REST API が常時利用できるため、デバイスと協働するアプリケーションの構築が容易になります。さらに、アプリケーションではデバイスの現在の状態を取得することなく、希望する今後の状態を設定できます。希望する状態と最後に報告された時点の状態との相違は AWS IoT によって比較され、相違を補うようデバイスに対してコマンドが送られます。

AWS IoT デバイス SDK によって、簡単にデバイスの実際の状態とシャドウを同期させ、シャドウによって設定された希望する今後の状態に対応させることができます。

デバイスのシャドウには、デバイスの状態を最大 1 年間無料で保存できます。最低 1 年間に 1 度更新していれば、デバイスのシャドウは無期限に継続できます。更新しなかった場合は消去されます。

詳細については、AWS IoT ユーザーガイドの Device Shadows セクションを参照してください。

80px-space

ルールエンジンによって、インフラストラクチャの管理を一切必要とせずに、接続されたデバイスによって生成されるデータを収集し、処理し、分析し、データに基づいたアクションを実行するアプリケーションを構築することが可能になります。ルールエンジンでは、お客様が定義したビジネスルールに基づいて、AWS IoT に向けて発行された入力メッセージが評価、変換され、別のデバイスやクラウドサービスへと配信されます。1 つのデバイスからのデータにも、多数のデバイスからのデータにも同じルールを適用でき、アクションを単独で実行することも、多数のアクションを並行して実行することも可能です。

ルールエンジンによって、AWS Lambda、Amazon Kinesis、Amazon S3、Amazon Machine Learning、Amazon DynamoDB、Amazon CloudWatch、および Amazon Elasticsearch Service (組み込みの Kibana と統合されている) などの AWS エンドポイントへのメッセージのルーティングも行えます。AWS Lambda、Amazon Kinesis および Amazon Simple Notification Service (SNS) を使用して外部のエンドポイントに届けることも可能です。

ルールは、マネジメントコンソール内で作成するか、または SQL に似た構文を使用して作成します。メッセージの内容に応じて異なる動作をするようにルールを作成できます。例えば、温度の読み取り値が一定のしきい値を越えたときに、AWS Lambda にデータを送信するルールをトリガーするようにします。他のデバイスからのデータなど、クラウド内の他のデータを組み合わせるようにルールを作成することも可能です。例えば、温度が他の 5 つのデバイスの平均より 15% 以上高かった場合にアクションを実行するよう設定できます。

ルールエンジンにはデータの変換に使用可能な数十の機能が準備されており、AWS Lambda を介することで無限に増やすことが可能です。例えば、広い範囲の値を扱っている場合、入力される数値の平均を取ることができます。ルールからは、AWS Lambda 内の Java、Node.js または Python コードをトリガーすることも可能なので、最大限の柔軟性と能力を備えたデバイスデータ処理が行えます。

詳細については、AWS IoT ユーザーガイドの Rules セクションを参照してください。

AWS IoT は簡単に使用開始できます。

AWS IoT を始める