

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

# デバイスを に接続する AWS IoT
<a name="iot-connect-devices"></a>

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

**メッセージブローカー**  
AWS IoT は、メッセージブローカーを介したデバイス通信を管理します。デバイスおよびクライアントは、メッセージブローカーにメッセージを発行するとともに、メッセージブローカーが発行するメッセージにサブスクライブします。メッセージは、アプリケーション定義の[*トピック*](topics.md)によって識別されます。メッセージブローカーは、デバイスまたはクライアントによって発行されたメッセージを受信すると、そのメッセージのトピックにサブスクライブしているデバイスとクライアントにそのメッセージを再発行します。メッセージブローカーは、メッセージの内容に応じて動作できる AWS IoT [ルール](iot-rules.md)エンジンにもメッセージを転送します。

**AWS IoT メッセージセキュリティ**  
認証 AWS IoT に使用するデバイス接続[X.509 クライアント証明書](x509-client-certs.md)と[AWS 署名 V4](https://docs.aws.amazon.com//general/latest/gr/signing_aws_api_requests.html)。デバイス通信は TLS バージョン 1.3 で保護されており、デバイスは接続時に [Server Name Indication (SNI) 拡張機能](https://tools.ietf.org/html/rfc3546#section-3.1)を送信 AWS IoT する必要があります。詳細については、「 [のトランスポートセキュリティ AWS IoT](transport-security.html)」を参照してください。

## AWS IoT デバイスデータとサービスエンドポイント
<a name="iot-connect-device-endpoints"></a>

**重要**  
エンドポイントはデバイスにキャッシュまたは保存できます。このため、新しいデバイスが接続されるたびに `DescribeEndpoint` API にクエリを実行する必要はありません。がアカウントのエンドポイント AWS IoT Core を作成した後も、エンドポイントは変更されません。

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

アカウントのデバイスデータエンドポイントについては、 AWS IoT Core コンソール[https://console.aws.amazon.com//iot/home#/settings](https://console.aws.amazon.com//iot/home#/settings)ページで確認できます。

デバイスデータエンドポイントなど、特定の目的のためにアカウントのデバイスエンドポイントを知るには、ここに示されている **describe-endpoint** CLI コマンドまたは `DescribeEndpoint` REST API を使用して、次の表の `endpointType` パラメータ値を指定します。

```
aws iot describe-endpoint --endpoint-type endpointType
```

このコマンドは、次の形式で *iot-endpoint* を返します: `account-specific-prefix.iot.aws-region.amazonaws.com`。

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


**AWS IoT デバイスの エンドポイント**  

|  エンドポイントの目的  |  `endpointType` 値  |  説明  | 
| --- | --- | --- | 
|  AWS IoT Core- データプレーンオペレーション  |  `iot:Data-ATS`  |  メッセージブローカー、[Device Shadow](iot-device-shadows.md)、および AWS IoTの[ルールエンジン](iot-rules.md)のコンポーネント間のデータを送受信するために使用されました。 `iot:Data-ATS`は、ATS 署名付きデータエンドポイントを返します。  | 
| AWS IoT Core– データプレーンオペレーション (レガシー) |  `iot:Data`  | iot:Data は、下位互換性のために提供された VeriSign 署名付きデータエンドポイントを返します。MQTT 5 は Symantec (iot:Data) エンドポイントではサポートされていません。 | 
|  AWS IoT Core 認証情報アクセス  |  `iot:CredentialProvider`  |  直接他の AWS サービスへ接続するために、デバイス組み込みの X.509 証明書を一時的な認証情報と交換するために使用されます。他の AWS サービスへの接続の詳細については、「 [AWS サービスへの直接呼び出しの承認](authorizing-direct-aws.md)」を参照してください。  | 
|  AWS IoT Device Management– ジョブデータオペレーション  |  `iot:Jobs`  |  デバイスが AWS IoT Jobs [Device HTTPS APIs を使用して Jobs ](jobs-mqtt-api.md)サービスとやり取りできるようにするために使用されます。 `iot:Jobs` は、IPv4 にのみ使用可能です。デュアルスタックエンドポイント (IPv4 と IPv6) を使用している場合は、`iot:Data-ATS` エンドポイントタイプを使用します。  | 
|  AWS IoT Device Advisor オペレーション  |  `iot:DeviceAdvisor`  |  Device Advisor を使用してデバイスをテストするために使用されるテストエンドポイントタイプ。詳細については、「[Device Advisor](device-advisor.md)」を参照してください。  | 
|  AWS IoT Core データベータ (プレビュー)  |  `iot:Data-Beta`  |  ベータリリース用に予約されたエンドポイントの種類。現在の使用については、[ドメイン設定](iot-custom-endpoints-configurable.md) を参照してください。  | 

*example.com* などの独自の完全修飾ドメイン名 (FQDN) および関連するサーバー証明書を使用して、 AWS IoT を使用してデバイスを に接続することもできます[ドメイン設定](iot-custom-endpoints-configurable.md)。

## AWS IoT デバイス SDKs
<a name="iot-connect-device-sdks"></a>

 AWS IoT Device SDKs は、IoT デバイスを に接続 AWS IoT Core し、MQTT および MQTT over WSS プロトコルをサポートします。

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

**モバイルデバイス**  
は、MQTT デバイス通信、一部の AWS IoT サービス APIs、および他の AWS サービスの APIsの両方[AWS モバイル SDKs](iot-connect-service.md#iot-connect-mobile-sdks)をサポートしています。サポートされているモバイルデバイスで開発している場合は、その SDK を確認して、それが IoT ソリューションの開発に最適なオプションであるかどうかを確認してください。

------
#### [ C\$1\$1 ]

**AWS IoT C\$1\$1 デバイス SDK**

 AWS IoT C\$1\$1 Device SDK を使用すると、開発者は AWS と AWS IoT Core サービスの APIs を使用して接続されたアプリケーションを構築できます。具具体的には、この SDK にはリソース制約がなく、メッセージキュー、マルチスレッドサポート、最新の言語機能などの高度な機能が必要なデバイス向けに設計されています。詳細については、以下を参照してください:
+ [AWS IoT GitHub の Device SDK C\$1\$1 v2](https://github.com/aws/aws-iot-device-sdk-cpp-v2)
+ [AWS IoT Device SDK C\$1\$1 v2 Readme](https://github.com/aws/aws-iot-device-sdk-cpp-v2#aws-iot-device-sdk-for-c-v2)
+ [AWS IoT Device SDK C\$1\$1 v2 サンプル](https://github.com/aws/aws-iot-device-sdk-cpp-v2/tree/main/samples#sample-apps-for-the-aws-iot-device-sdk-for-c-v2)
+ [AWS IoT Device SDK C\$1\$1 v2 API ドキュメント](https://aws.github.io/aws-iot-device-sdk-cpp-v2/)

------
#### [ Python ]

**AWS IoT Device SDK for Python**

 AWS IoT Device SDK for Python を使用すると、開発者は Python スクリプトを記述して、デバイスを使用して MQTT または WebSocket Secure (WSS) プロトコル経由で AWS IoT プラットフォームにアクセスできます。デバイスを AWS IoT Core サービスの APIs に接続することで、ユーザーは AWS IoT Core が提供するメッセージブローカー、ルール、Device Shadow サービス、および AWS Lambda、Amazon Kinesis、Amazon S3 などの他の AWS サービスを安全に操作できます。
+ [AWS IoT GitHub の Device SDK for Python v2](https://github.com/aws/aws-iot-device-sdk-python-v2)
+ [AWS IoT Device SDK for Python v2 Readme](https://github.com/aws/aws-iot-device-sdk-python-v2#aws-iot-device-sdk-v2-for-python)
+ [AWS IoT Device SDK for Python v2 サンプル](https://github.com/aws/aws-iot-device-sdk-python-v2/tree/main/samples#sample-apps-for-the-aws-iot-device-sdk-v2-for-python)
+ [AWS IoT Device SDK for Python v2 API ドキュメント](https://aws.github.io/aws-iot-device-sdk-python-v2/)

------
#### [ JavaScript ]

**AWS IoT Device SDK for JavaScript**

 AWS IoT Device SDK for JavaScript を使用すると、開発者は WebSocket プロトコルを介して MQTT または MQTT AWS IoT Core を使用して の APIs にアクセスする JavaScript アプリケーションを記述できます。これは、Node.js 環境およびブラウザーアプリケーションで使用できます。詳細については、以下を参照してください。
+ [AWS IoT GitHub の Device SDK for JavaScript v2](https://github.com/aws/aws-iot-device-sdk-js-v2)
+ [AWS IoT Device SDK for JavaScript v2 Readme](https://github.com/aws/aws-iot-device-sdk-js-v2#aws-iot-device-sdk-for-javascript-v2)
+ [AWS IoT Device SDK for JavaScript v2 サンプル](https://github.com/aws/aws-iot-device-sdk-js-v2/tree/main/samples#sample-apps-for-the-aws-iot-device-sdk-for-javascript-v2)
+ [AWS IoT Device SDK for JavaScript v2 API ドキュメント](https://aws.github.io/aws-iot-device-sdk-js-v2/index.html)

------
#### [ Java ]

**AWS IoT Device SDK for Java**

 AWS IoT Device SDK for Java を使用すると、Java 開発者は WebSocket プロトコルを介して MQTT または MQTT AWS IoT Core を介して の APIs にアクセスできます。SDK では、デバイスシャドウサービスがサポートされています。GET、UPDATE、DELETE を含む HTTP メソッドを使用して、 Shadows にアクセスできます。SDK では、簡略化された Shadow アクセスモデルもサポートしていて、デベロッパーが、JSON ドキュメントをシリアル化または逆シリアル化することなく、ゲッターメソッドとセッターメソッドを使用して Shadows とデータを交換できます。詳細については、以下を参照してください。
+ [AWS IoT GitHub の Device SDK for Java v2](https://github.com/aws/aws-iot-device-sdk-java-v2)
+ [AWS IoT Device SDK for Java v2 Readme](https://github.com/aws/aws-iot-device-sdk-java-v2#aws-iot-device-sdk-for-java-v2)
+ [AWS IoT Device SDK for Java v2 サンプル](https://github.com/aws/aws-iot-device-sdk-java-v2/tree/main/samples#sample-apps-for-the-aws-iot-device-sdk-for-java-v2)
+ [AWS IoT Device SDK for Java v2 API ドキュメント](https://aws.github.io/aws-iot-device-sdk-java-v2/)

------
#### [ Embedded C ]

**AWS IoT Device SDK for Embedded C**

**重要**  
この SDK は、経験豊富な組み込みソフトウェアデベロッパーによる使用を想定しています。

 AWS IoT Device SDK for Embedded C (C-SDK) は、MIT オープンソースライセンスに基づく C ソースファイルのコレクションであり、埋め込みアプリケーションで IoT デバイスを IoT AWS IoT Core に安全に接続するために使用できます。これには、MQTT、JSON Parser、 AWS IoT Device Shadow ライブラリなどが含まれます。これはソース形式で配布され、アプリケーションコード、その他のライブラリ、およびオプションで RTOS (Real Time Operating System) とともにお客様のファームウェアに組み込まれることが意図されています。

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

詳細については次を参照してください:
+ [AWS IoT GitHub の Device SDK for Embedded C](https://github.com/aws/aws-iot-device-sdk-embedded-C)
+ [AWS IoT Device SDK for Embedded C Readme](https://github.com/aws/aws-iot-device-sdk-embedded-C#aws-iot-device-sdk-for-embedded-c)
+ [AWS IoT Device SDK for Embedded C サンプル](https://docs.aws.amazon.com/embedded-csdk/latest/lib-ref/docs/doxygen/output/html/demos_main.html)

------