Azure IoT Hub の課金情報

Azure IoT Hub の価格 IoT Hub に関するさまざまな SKU と料金の一般的な情報を提供します。 この記事では、IoT Hub のさまざまな機能が IoT Hub によるメッセージとして計測される方法の詳細について説明します。

注意

この記事で言及されている一部の機能 (cloud-to-device メッセージング、デバイス ツイン、デバイス管理など) は、IoT Hub の Standard レベルだけで使用することができます。 Basic および Standard または Free レベルの IoT Hub の詳細については、ソリューションに適した IoT Hub のレベルの選択に関するページを参照してください。

操作ごとの料金

課金される操作を判断するには、下記の表を参考にしてください。 Basic レベルと Standard レベルの IoT ハブでは、すべての課金対象操作が 4K バイト ブロック単位で課金されます。 Free レベルの IoT ハブでは、操作は 0.5 KB のチャンク単位で測定されます。 各カテゴリの詳細は、課金情報列に示されています。 この列には、次の情報が含まれます。

  • Basic レベルと Standard レベルの IoT ハブで課金対象操作を測定する方法の詳細。 Basic レベルでは、すべての操作を使用できるわけではありません。
  • 料金が発生する操作と、次のいずれか:
    • REST API ドキュメントへのリンク (存在する場合)。
    • REST API ドキュメントが利用できない場合、または操作が MQTT または AMQP 経由でのみ使用できる場合は、操作エンドポイント。 エンドポイント値は、ターゲット IoT ハブへの先頭の参照 {fully-qualified-iothubname}.azure-devices.net は省略されています。
  • 各操作 (またはエンドポイント) の後に "" で囲まれて記載されている 1 つ以上の用語。 これらの用語は、IoT ハブのクォータに対して課金される課金対象操作を表します。 Azure portal でサポート リクエストを開始すると、クォータ使用量に関する分析情報の一部としてこれらの用語が表示される場合があります。 また、カスタマー サポートから返される場合もあります。 下記の表を使用して、これらの用語と対応する操作を相互参照することで、IoT ソリューションのクォータ使用量と課金について理解できます。 詳細については、「例 4」を参照してください。
操作カテゴリ 課金情報
ID レジストリの操作
(作成、更新、取得、一覧表示、削除、一括更新、統計)
課金されません。
デバイスからクラウドへのメッセージ 正常に送信されたメッセージは、IoT Hub に入った時点で 4 KB のチャンク単位で課金されます たとえば、100 バイトのメッセージは 1 件のメッセージとして課金され、6 KB のメッセージは 2 件のメッセージとして課金されます。

デバイス イベントの送信: IoT ハブにメッセージ ルーティング機能が構成されているかどうかに応じて、デバイスからクラウドへのテレメトリまたはデバイスからクラウドへのテレメトリ ルーティングのいずれか。
クラウドからデバイスへのメッセージ 正常に送信されたメッセージは、4 KB のチャンク単位で課金されます。 たとえば、6 KB のメッセージは 2 メッセージとして課金されます。

デバイス バインド通知の受信: クラウドからデバイスへのコマンド
ファイルのアップロード Azure Storage へのファイル転送は、IoT Hub では測定されません。 ファイル転送の開始と完了のメッセージは、従量課金メッセージとして 4 KB 単位で課金されます。 たとえば、10 MB のファイルを転送するには、Azure Storage コストのほかに 2 メッセージとして課金されます。

ファイル アップロード SAS URI の作成: デバイスからクラウドへのファイル アップロード
ファイル アップロード状況の更新: デバイスからクラウドへのファイル アップロード
ダイレクト メソッド 成功したメソッド要求は 4 KB のチャンク単位で課金され、応答は追加メッセージとして 4 KB のチャンク単位で課金されます。 ペイロードのない要求または応答は、1 件のメッセージとして課金されます。 たとえば、本文が 4 KB あるメソッドで、デバイスから返された応答にペイロードがない場合、2 件のメッセージとして課金されます。 6 KB の本文があり、デバイスから 1 KB の応答が返されるメソッドの場合、要求の 2 メッセージ分と応答の 1 メッセージ分課金されます。 切断されたデバイスへの要求は、4 KB のチャンク単位のメッセージに加えて、デバイスがオンラインでないことを示す応答に対する 1 件のメッセージとして課金されます。

デバイス - Invoke メソッド: デバイス ダイレクト Invoke メソッド
モジュール - Invoke メソッド: モジュール ダイレクト Invoke メソッド
デバイスおよびモジュール ツインの読み取り デバイスまたはモジュールからのツインの読み取り、およびソリューション バックエンドからのツインの読み取りは、メッセージとして 4 KB のチャンク単位で課金されます。 たとえば、8 KB ツインの読み取りは 2 件のメッセージとして課金されます。

ツインの取得: ツインの取得
モジュール ツインの取得: モジュール ツインの取得

デバイスからデバイスおよびモジュール ツインを読み取ります。
エンドポイント: /devices/{id}/twin (MQTT、AMQP のみ)、D2C ツインの取得
エンドポイント: /devices/{deviceid}/modules/{moduleid}/twin (MQTT、AMQP のみ): モジュール D2C ツインの取得
デバイスおよびモジュール ツインの更新 (タグとプロパティ) デバイスまたはモジュールからのツインの更新、およびソリューション バックエンドからのツインの更新は、メッセージとして 4 KB のチャンク単位で課金されます。 たとえば、12 KB のツイン更新は 3 件のメッセージとして課金されます。

ツインの更新: ツインの更新
モジュール ツインの更新: モジュール ツインの更新
ツインの置換: ツインの置換
モジュール ツインの置換: モジュール ツインの置換

デバイスまたはモジュール ツインの報告されたプロパティをデバイスから更新します。
エンドポイント: /twin/PATCH/properties/reported/ (MQTT、AMQP のみ)、D2 ReportedProperties のパッチまたはモジュール D2 ReportedProperties のパッチ

必要なプロパティ更新通知をデバイスで受け取ります。
エンドポイント: /twin/PATCH/properties/desired/ (MQTT、AMQP のみ)、D2C DesiredProperties の通知またはモジュール D2C DesiredProperties の通知
デバイス ツインとモジュール ツインのクエリ devices または devices.modules に対するクエリは、結果のサイズに応じて、メッセージとして 4 KB のチャンク単位で課金されます。 ジョブに対するクエリは課金されません。

ツインの取得 (devices または devices.modules コレクションに対するクエリ): デバイスのクエリ
デジタル ツインの読み取り ソリューション バックエンドからのデバイス ツインの読み取りは、4 KB のチャンク単位のメッセージとして課金されます。 たとえば、8 KB ツインの読み取りは 2 件のメッセージとして課金されます。

デジタル ツインの取得: デジタル ツインの取得
デジタル ツインの更新 ソリューション バックエンドからのデジタル ツインの更新は、4 KB のチャンク単位のメッセージとして課金されます。 たとえば、12 KB のツイン更新は 3 件のメッセージとして課金されます。

デジタル ツインの更新: デジタル ツインのパッチ
デジタル ツインのコマンド 成功したコマンドは 4 KB のチャンク単位で課金され、応答は追加メッセージとして 4 KB のチャンク単位で課金されます。 本文のない要求または応答は、1 件のメッセージとして課金されます。 たとえば、本文が 4 KB あるコマンドで、デバイスから返された応答に本文がない場合、2 件のメッセージとして課金されます。 本文が 6 KB あるコマンドで、デバイスから 1 KB の応答が返された場合、コマンドに対する 2 件のメッセージに加えて、応答に対する 1 件のメッセージとして課金されます。 切断されたデバイスへのコマンドは、4 KB のチャンク単位のメッセージに加えて、デバイスがオンラインでないことを示す応答に対する 1 件のメッセージとして課金されます。

コンポーネント コマンドの呼び出し: デジタル ツインのコンポーネント コマンド
ルート レベル コマンドの呼び出し: デジタル ツインのルート コマンド
ジョブ操作
(作成、キャンセル、取得、クエリ)
課金されません。
デバイスごとのジョブの操作 ジョブの操作 (ツインの更新やメソッドなど) は 4 KB のチャンク単位で課金されます。 たとえば、1 つのジョブで要求が 1 KB のメソッド呼び出しが 1000 回発生し、応答のペイロードが空の場合、2000 件のメッセージ (要求と応答ごとに 1 件のメッセージ) が課金されます。

"ツイン デバイス更新ジョブ"
"Invoke メソッドのデバイス ジョブ"
構成操作
(作成、更新、取得、一覧表示、削除、テスト クエリ)
課金されません。
デバイスごとの構成操作 構成操作は、4 KB のチャンク単位のメッセージとして課金されます。 応答は課金されません。 たとえば、本文が 6 KB ある適用構成操作は、2 件のメッセージとして課金されます。

エッジ デバイスに適用: 構成サービス適用
キープアライブ メッセージ AMQP または MQTT プロトコルを使用する場合、接続を確立するために交換されたメッセージと、ネゴシエーション中に交換されたか、接続を開いたまま維持するために交換されたメッセージには課金されません。
デバイス ストリーム (プレビュー) デバイス ストリームはプレビューであり、操作はまだ課金されません。

エンドポイント: /twins/{deviceId}/streams/{streamName}: デバイス ストリーム
エンドポイント: /twins/{deviceId}/modules/{moduleId}/streams/{streamName}: デバイス ストリーム モジュール

Note

すべてのサイズはバイト単位でのペイロードのサイズを考慮して計算されます (プロトコルのフレームは無視されます)。 プロパティと本文が含まれるメッセージの場合、サイズはプロトコルに依存しない方法で計算されます。 詳細は、IoT Hub メッセージの形式を参照してください。

メッセージの最大サイズは、操作の種類によって異なります。 詳細については、「参照 - IoT Hub のクォータと調整」をご覧ください。

一部の操作では、バッチ処理と圧縮戦略を使用してコストを削減できます。 デバイスからクラウドへのテレメトリの使用例については、例 3 を参照してください。

例 1

デバイスは 1 分あたり 1 つ、1 KB の device-to-cloud メッセージを IoT Hub に送信し、そのメッセージが Azure Stream Analytics によって読み込まれます。 ソリューション バックエンドは 10 分ごとにメソッド (ペイロードは 512 バイト) をデバイス上で呼び出し、特定のアクションをトリガーします。 デバイスはメソッドに 200 バイトの結果で応答します。

デバイスは以下を使用します。

  • device-to-cloud メッセージ用に、1 メッセージ * 60 分 * 24 時間 = 1440 メッセージ

  • メソッド用に、2 件のメッセージ (要求と応答) * 1 時間あたり 6 回 * 24 時間 = 288 件のメッセージ。

この計算により、1 日あたりの合計は 1728 メッセージとなります。

例 2:

デバイスは、1 時間ごとに 100 KB の device-to-cloud メッセージを 1 つ送信します。 デバイス ツインも、1 KB のペイロードで 4 時間ごとに更新されます。 ソリューション バックエンドは 1 日 1 回、14 KB のデバイス ツインを読み込んで 512 バイトのペイロードで更新し、構成を変更します。

デバイスは以下を使用します。

  • device-to-cloud メッセージ用に、25 (100 KB / 4 KB) メッセージ * 24 時間

  • デバイス ツインの更新用に、1 件のメッセージ (1 KB/4 KB) * 1 日あたり 6 回。

この計算により、1 日あたりの合計は 606 件のメッセージとなります。

ソリューション バックエンドはデバイス ツインを読み取るために 4 件のメッセージ (14 KB/4 KB) を使用し、さらにこれを更新するために 1 件のメッセージ (512/4 KB) を使用するため、合計で 5 件のメッセージとなります。

合計で、デバイスとソリューション バックエンドは 1 日あたり 611 件のメッセージを使用します。

例 3

シナリオによっては、メッセージをバッチ処理することで、クォータ使用量を減らすことができます。

たとえば、読み取るたびに 100 バイトのデータしか生成しないセンサーを備えているデバイスを考えてみます。

  • デバイスによって、40 回のセンサー読み取りが、1 件のデバイスからクラウドへのメッセージにまとめられ、ペイロードが 4 KB (40 * 100 バイト) の場合、クォータに対して 1 件のメッセージだけが課金されます。 デバイスによって、センサーが 1 時間あたり 40 回読み取られ、それらの読み取りが 1 時間あたり、1 件のデバイスからクラウドへのメッセージにまとめられると、1 日あたり 24 件のメッセージが送信されます。

  • デバイスによって、デバイスからクラウドへのメッセージが送信され、センサー読み取りごとにペイロードが 100 バイトある場合、データ量が同じクォータに対して 40 件のメッセージが使用されます。 デバイスによって、センサーが 1 時間に 40 回読み取られ、各メッセージが個別に送信されると、960 件のメッセージ/日 (40 件のメッセージ * 24) が送信されます。

バッチ処理戦略は、シナリオとデータのタイムクリティカルの程度によって異なります。 大量のデータを送信する場合は、メッセージ クォータへの影響をさらに減らすために、データ圧縮の実装を検討することもできます。

例 4

Azure portal でサポート リクエストを開くと、報告された問題に固有の診断が実行されます。 結果は、要求の [ソリューション] タブに分析情報として表示されます。 そのような分析情報の 1 つは、上記の表の斜体の用語を使用して、IoT Hub のクォータの使用状況を報告します。 この特定の分析情報が返されるかどうかは、報告している問題に対して IoT ハブで実行された診断の結果によって異なります。 クォータ使用量の分析情報が報告された場合は、この表を使用して、報告された使用状況の用語を、それらが参照する操作と相互参照できます。

たとえば、次のスクリーンショットは、デバイスからクラウドへのテレメトリに関する問題に対して開始されたサポート要求を示しています。

Azure portal のサポート リクエストでイシューを選択していることを示すスクリーンショット。

[次のソリューション] を選択すると、クォータ使用量の分析情報が診断から返され、[IoT ハブの毎日のメッセージのクォータ内訳] の下に表示されます。 デバイスからクラウドへのメッセージで、IoT ハブに送信された内訳が表示されます。 この場合、IoT ハブでメッセージ ルーティングが有効になっているため、メッセージは、デバイスからクラウドへのテレメトリ ルーティングとして表示されます。 IoT ハブが異なると、同じ問題についてクォータ使用量の分析情報が返されないことがあることに注意してください。 返される内容は、その IoT ハブのアクティビティと状態によって異なります。

Azure portal のサポート リクエストでクォータの使用量を示すスクリーンショット。