AWS / Azure / GCP のIoTサービスへの接続比較です。
個人ブログには設定方法を画面キャプチャをつけて詳細に説明してますので興味がありましたらご参照ください。
AWS IoT Core
- クライアントIDは任意の文字列
- 証明書発行機能がある
- 純粋なMQTTブローカーに一番近い印象
| 項目 | 値 |
|---|---|
| プロトコル | mqtts |
| ホスト名 | AWS IoTの設定画面で表示されるエンドポイント |
| ポート番号 | 8883 |
| クライアントID | 任意の文字 |
| ユーザー名 | 未指定 |
| パスワード | 未指定 |
| CAファイル | Amazon Root CA 1を保存したファイル |
| クライアント証明書 | デバイス証明書 |
| プライベートキー | プライベートキー |
-
Publish
任意のトピック名に対してPublishが可能です。(一部AWSの予約トピックあり) -
Subscribe
任意のトピック名に対してSubscribeが可能です。(一部AWSの予約トピックあり)
詳細はこちらの個人ブログも参照ください。
Azure IoT Hub
- 証明書を使った認証だけでなく、接続文字列を使った接続なども提供
- デバイス証明書を事前にクラウド側へ登録する必要がない
- ユーザー名が必要
| 項目 | 値 |
|---|---|
| プロトコル | mqtts |
| ホスト名 | {IoT Hub名}.azure-devices.net |
| ポート番号 | 8883 |
| クライアントID | {デバイスID} |
| ユーザー名 | {IoT Hub名}.azure-devices.net/{デバイスID} |
| パスワード | 未指定 |
| CAファイル | Baltimore CyberTrust Rootを保存したファイル |
| クライアント証明書 | デバイス証明書 |
| プライベートキー | プライベートキー |
-
Publish
以下のトピック名に対してPublishが可能です。/devices/{デバイスID}/messages/events/ -
Subscribe
以下のトピック名に対してSubscribeが可能です。/devices/{デバイス名}/commands/#/devices/{デバイスID}/messages/devicebound/#Azureの管理画面からデバイスへのメッセージでテスト送信が可能です。
詳細はこちらの個人ブログも参照ください。
Google Cloud IoT Core
- 接続エンドポイントがアカウントによらず単一
- パスワードにJWTが必要(パスワードを指定するためにユーザー名も指定)
- ルートCAの登録は任意
| 項目 | 値 |
|---|---|
| プロトコル | mqtts |
| ホスト名 | mqtt.googleapis.com |
| ポート番号 | 8883 |
| クライアントID | projects/{GCPのプロジェクトID}/locations/{リージョン}/registries/{レジストリ名}/devices/{デバイス名} |
| ユーザー名 | unused |
| パスワード | こちらの方法で生成したJWT |
| CAファイル | Google ルート CA 認証パッケージを保存したファイル |
| クライアント証明書 | デバイス証明書 |
| プライベートキー | プライベートキー |
-
Publish
以下のトピック名に対してPublishが可能です。/devices/{デバイス名}/events -
Subscribe
以下のトピック名に対してSubscribeが可能です。/devices/{デバイス名}/commands/#/devices/{デバイス名}/configGCPの管理画面から構成を編集、コマンドを送信でテスト送信が可能です。
詳細はこちらの個人ブログも参照ください。