AWS IoT へのデバイスの接続 - AWS IoT Core

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS IoT へのデバイスの接続

デバイスは、AWS IoT Core を介して AWS IoT やその他のサービスに接続します。AWS IoT Core を通じて、デバイスは、アカウントに固有のデバイスエンドポイントを使用してメッセージを送受信します。-AWS IoT デバイス SDKsは、MQTT および WSS プロトコルを使用したデバイス通信をサポートします。デバイスで使用できるプロトコルの詳細については、「」を参照してください。デバイス通信プロトコル

メッセージブローカー

AWS IoT は、メッセージブローカーを通じてデバイス通信を管理します。デバイスおよびクライアントは、メッセージブローカーにメッセージをパブリッシュし、メッセージブローカーがパブリッシュするメッセージもサブスクライブします。メッセージは、アプリケーション定義のtopic。メッセージブローカーは、デバイスまたはクライアントによってパブリッシュされたメッセージを受信すると、メッセージのトピックにサブスクライブしているデバイスおよびクライアントにそのメッセージを再パブリッシュします。メッセージブローカーは、AWS IoT にもメッセージを転送します。ルールエンジンを使用します。これは、メッセージの内容に基づいて行動できます。

AWS IoT メッセージのセキュリティ

AWS IoT の使用へのデバイス接続X.509 クライアント証明書およびAWS 署名 V4認証のための。デバイス通信は TLS バージョン 1.2 で保護されており、AWS IoT では、デバイスがサーバーネームインディケーション (SNI) 拡張彼らは接続するとき. 詳細については、「」を参照してください。AWS IoT でのトランスポートセキュリティ

AWS IoT デバイスデータとサービスエンドポイント

各アカウントには、アカウントに固有で、特定の IoT 機能をサポートする複数のデバイスエンドポイントがあります。AWS IoT デバイスデータエンドポイントは、IoT デバイスの通信ニーズに合わせて設計されたパブリッシュ/サブスクライブプロトコルをサポートします。ただし、アプリケーションやサービスなどの他のクライアントも、これらのエンドポイントが提供する特殊な機能を必要とするアプリケーションであれば、このインターフェイスを使用できます。AWS IoT デバイスサービスエンドポイントは、セキュリティおよび管理サービスへのデバイス中心のアクセスをサポートします。

特定の目的のためにアカウントのデバイスエンドポイントを確認するには、describe-endpointここに示す CLI コマンド、またはDescribeEndpointREST API をインストールし、endpointType パラメータ値を次の表に示します。

aws iot describe-endpoint --endpoint-type endpointType

このコマンドは返す iot-endpoint 次のような形式になります。account-specific-prefix.iot.aws-region.amazonaws.com

-DescribeEndpointAPI は、新しいデバイスが接続されるたびに照会する必要はありません。作成したエンドポイントは永続的に存続し、一度作成しても変更されません。

すべての顧客にはiot:Data-ATSiot:Dataエンドポイントにする必要があります。各エンドポイントは X.509 証明書を使用して、クライアントを認証します。Symantec 認証機関の広範な不信用に関連する問題を避けるために、新しい iot:Data-ATS エンドポイントタイプを使用することを強くお勧めします。私たちは、iot:Dataエンドポイントを使用して、下位互換性のために VeriSign 証明書を使用する古いエンドポイントからデータを取得します。詳細については、「サーバーの認証」を参照してください。

デバイス用 AWS IoT エンドポイント

エンドポイントの目的

endpointType

説明

IoT データ

iot:Data-ATS

メッセージブローカーとの間でデータの送受信に使用されます。デバイスシャドウ, およびルールエンジンAWS IoT のコンポーネントです。

iot:Data-ATSは、ATS 署名付きデータエンドポイントを返します。

IoT データ (レガシー)

iot:Data

iot:Dataは、下位互換性のために提供される VeriSign 署名付きデータエンドポイントを返します。

IoT クレデンシャルアクセス

iot:CredentialProvider

デバイスの組み込みの X.509 証明書を交換し、他の AWS サービスと直接接続するために使用されます。他の AWS サービスへの接続の詳細については、「」を参照してください。AWS サービスの直接呼び出しの承認

IoT ジョブ管理

iot:Jobs

デバイスが AWS IoT ジョブサービスと対話できるようにするには、ジョブデバイスの HTTPS API

IoT デバイスアドバイザー (プレビュー)

iot:DeviceAdvisor

Device Advisor を使用してデバイスをテストするために使用されるテストエンドポイントタイプ。詳細については、「Device Advisor」を参照してください。

IoT データベータ (プレビュー)

iot:Data-Beta

ベータリリース用に予約されたエンドポイントタイプ。現在の使用方法については、」設定可能なエンドポイント

独自の完全修飾ドメイン名 (FQDN) を使用することもできます。example.com、および関連付けられたサーバー証明書を使用して、デバイスを AWS IoT に接続します。設定可能なエンドポイントです。これは現在、パブリックベータにあります。

AWS IoT デバイス SDKs

AWS IoT デバイス SDK は、IoT デバイスを AWS IoT Core に接続するのに役立ち、WSS プロトコル経由の MQTT および MQTT をサポートします。

AWS IoT デバイス SDK は、AWS SDK とは異なります。AWS IoT デバイス SDK は IoT デバイスの特殊な通信ニーズをサポートしますが、AWS SDK でサポートされているすべてのサービスをサポートしているわけではありません。AWS IoT デバイス SDK は、すべての AWS サービスをサポートする AWS SDK と互換性があります。ただし、異なる認証方法を使用し、異なるエンドポイントに接続するため、IoT デバイス上で AWS SDK を使用することは現実的ではありません。

モバイルデバイス

-AWS Mobile SDKは、MQTT デバイス通信、一部の AWS IoT サービス API、およびその他の AWS サービスの API の両方をサポートします。サポートされているモバイルデバイスで開発する場合は、SDK を確認して、IoT ソリューションの開発に最適なオプションかどうか確認してください。

C++

AWS IoT C++ Device SDK

AWS IoT C++ Device SDK を使用すると、開発者は AWS および AWS IoT Core サービスの API を使用して、接続されたアプリケーションを構築できます。具具体的には、この SDK にはリソース制約がなく、メッセージキュー、マルチスレッドサポート、最新の言語機能などの高度な機能が必要なデバイス向けに設計されています。詳細については、以下を参照してください。

Python

AWS IoT Device SDK for Python

AWS IoT Device SDK for Python では、開発者がデバイスを使用して MQTT または WebSocket プロトコル経由の MQTT で AWS IoT プラットフォームにアクセスできるように Python スクリプトを記述できます。デバイスを AWS IoT Core サービスの API に接続することで、ユーザーは AWS IoT Core が提供するメッセージブローカー、ルール、Device Shadows のサービスを安全に使用できます。また、AWS Lambda、Amazon Kinesis、Amazon S3 などその他の AWS のサービスを安全に使用できます。

JavaScript

AWS IoT Device SDK for JavaScript

AWS IoT Device SDK for JavaScript では、開発者が MQTT または WebSocket プロトコル経由の MQTT を使用して AWS IoT Core の API にアクセスする JavaScript アプリケーションを記述できます。これは、Node.js 環境およびブラウザーアプリケーションで使用できます。詳細については、以下を参照してください。

Java

AWS IoT Device SDK for Java

AWS IoT Device SDK for Java では、Java 開発者が MQTT または WebSocket プロトコル経由の MQTT で AWS IoT Core の API にアクセスできます。SDK は、Device Shadow サービスをサポートします。GET、UPDATE、DELETE を含む HTTP メソッドを使用して、 Shadows にアクセスできます。SDK では、簡略化された Shadow アクセスモデルもサポートしていて、開発者が、JSON ドキュメントをシリアル化または逆シリアル化することなく、ゲッターメソッドとセッターメソッドを使用して Shadows とデータを交換できます。詳細については、以下を参照してください。

Embedded C

AWS IoT Device SDK for Embeded

重要

このSDKは、経験豊富な組み込みソフトウェア開発者による使用を目的としています。

AWS IoT Device SDK for Embedded C (C-SDK) は、MIT オープンソースライセンスによる C ソースファイルのコレクションで、IoT デバイスを AWS IoT Core に安全に接続するための埋め込みアプリケーションに使用することができます。MQTT、JSON パーサー、AWS IoT Device Shadow ライブラリが含まれています。ソース形式で配布され、アプリケーションコード、その他のライブラリ、オプションで RTOS (Real Time Operating System) と一緒にカスタマーファームウェアに組み込まれることを想定しています。

フリートプロビジョニングの場合は、v4_beta_deprecatedAWS IoT Device SDK for Embedded C のバージョンをhttps://github.com/aws/aws-iot-device-sdk-embedded-C/tree/v4_beta_deprecated

AWS IoT Device SDK for Embedded C は通常、最適化された C 言語ランタイムを必要とするリソース制約のあるデバイスを対象としています。この SDK は、任意のオペレーティングシステムで使用でき、任意のプロセッサタイプ (MCU や MPU など) でホストできます。デバイスに十分なメモリと処理リソースがある場合は、C++、Java、JavaScript、Python 用の AWS IoT Device SDK など、その他の AWS IoT Device SDK およびモバイル SDK のいずれかを使用することをお勧めします。

詳細については、以下を参照してください。