翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
デバイス通信プロトコル
AWS IoT Core MQTT と MQTT over WebSocket Secure (WSS) プロトコルを使用してメッセージをパブリッシュおよびサブスクライブするデバイスとクライアント、および HTTPS プロトコルを使用してメッセージを発行するデバイスとクライアントをサポートします。すべてのプロトコルでは、IPv4 および IPv6 がサポートされています。このセクションでは、デバイスおよびクライアントのさまざまな接続オプションについて説明します。
TLS 1.2 および TLS 1.3
AWS IoT Core TLS バージョン 1.2 と TLS
AWS IoT デバイス SDK は、MQTT および MQTT over WSS をサポートし、クライアント接続のセキュリティ要件をサポートします。AWS IoT デバイス SDK を使用してクライアントを AWS IoTに接続することをお勧めします。
プロトコル、ポートマッピング、認証
デバイスまたはクライアントがデバイスエンドポイントを使用してメッセージブローカーに接続する方法は、使用するプロトコルによって異なります。次の表は、デバイスエンドポイントがサポートするプロトコルと、 AWS IoT デバイスエンドポイントが使用する認証方法とポートの一覧です。
プロトコル、認証、ポートマッピング | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
プロトコル | サポートされているオペレーション | 認証 | ポート | ALPN プロトコル名 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT オーバー WebSocket |
発行、サブスクライブ | 署名バージョン 4 | 443 |
該当なし |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
マットオーバー WebSocket |
発行、サブスクライブ | カスタム認証 | 443 |
該当なし |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT |
発行、サブスクライブ |
X.509 クライアント証明書 |
443† |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT | 発行、サブスクライブ | X.509 クライアント証明書 | 8883 | 該当なし | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT |
発行、サブスクライブ |
カスタム認証 |
443† |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS |
発行のみ |
署名バージョン 4 |
443 |
該当なし |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS |
発行のみ |
X.509 クライアント証明書 |
443† |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS | 発行のみ | X.509 クライアント証明書 | 8443 | 該当なし | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS | 発行のみ | カスタム認証 | 443 | 該当なし |
Application Layer Protocol Negotiation (ALPN)
† X.509 クライアント証明書認証を使用してポート 443 に接続するクライアントは、アプリケーション層プロトコルネゴシエーション (ALPN)ClientHello
ポート 443 では、IoT: Data-ATS エンドポイントは ALPN HTTP をサポートしていますが、IoT: Jobs エンドポイントはサポートしていません。 x-amzn-http-ca
ALPN を使用する HTTPS ポート 8443 と MQTT ポート 443 では、カスタム認証は使用できません。 x-amzn-mqtt-ca
AWS アカウントクライアントは各自のデバイスエンドポイントに接続します。アカウントのデバイスエンドポイントを見つける方法については、AWS IoT デバイスデータおよびサービスエンドポイント を参照してください。
注記
AWS SDK は URL 全体を必要としません。必要なのは、AWS IoT Device SDK for Python pubsub.py
のサンプルのようなエンドポイントのホスト名だけです
に接続する AWS IoT Core | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
プロトコル |
エンドポイントまたは URL |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT over WSS |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS |
|
デバイス通信用のプロトコルの選択
デバイスエンドポイントを介したほとんどの IoT デバイス通信では、MQTT または MQTT over WSS プロトコルを使用することができます。ただし、デバイスエンドポイントは HTTPS もサポートします。次の表は、この 2 AWS IoT Core つのプロトコルをデバイス通信に使用する方法を比較したものです。
AWS IoT デバイスプロトコル side-by-side | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
機能 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
発行/サブスクライブのサポート |
発行とサブスクライブ |
発行のみ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDK サポート |
AWS デバイス SDK は MQTT プロトコルと WSS プロトコルをサポートします。 |
SDK のサポートはありませんが、言語固有のメソッドを使用して HTTPS リクエストを行うことができます |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
サービス品質のサポート |
QoS は、クエリ文字列パラメータを渡すことによってサポートされ、?qos=qos ここで、値は0または1にすることができます。このクエリ文字列を追加して、必要な QoS 値を持つメッセージが発行できます。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
デバイスがオフラインのときに受信しなかったメッセージを受信できる | Yes | いいえ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
はい |
いいえ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
デバイスの切断検出 |
はい |
いいえ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
安全な通信 |
はい。「プロトコル、ポートマッピング、認証」を参照してください。 |
はい。「プロトコル、ポートマッピング、認証」を参照してください。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
トピックの定義 |
定義されているアプリケーション |
定義されているアプリケーション |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
メッセージデータ形式 |
定義されているアプリケーション |
定義されているアプリケーション |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
プロトコルのオーバーヘッド | Lower | より高い | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
消費電力 | Lower | より高い |
接続時間の制限
HTTPS 接続では、リクエストの受信と応答にかかるよりも長い持続時間が保証されていません。
MQTT 接続時間は、使用する認証機能によって異なります。次の表では、各機能の最適な条件下での最大接続時間が一覧表示されています。
認証機能による MQTT 接続時間 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
機能 |
最大時間 * |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
X.509 クライアント証明書 |
1~2 週間 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
カスタム認証 |
1~2 週間 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
署名バージョン 4 |
最長 24 時間 |
* 保証なし
X.509 証明書やカスタム認証では、接続時間に厳しい制限はありません。数分程度に短縮することも可能です。接続の中断は、さまざまな理由で発生します。次のリストには、最も一般的な理由の一部が含まれています。
-
Wi-Fi 可用性の中断
-
インターネットサービスプロバイダー (ISP) 接続の中断
-
サービスのパッチ
-
サービスのデプロイ
-
サービスのオートスケーリング
-
使用できないサービスホスト
-
ロードバランサーの問題および更新
-
クライアント側エラー
デバイスで、切断を検出して再接続するための戦略を実装する必要があります。接続解除イベントとその処理方法に関するガイダンスについては、ライフサイクルイベントの接続/切断イベントを参照してください。