参照 - IoT Hub のクォータと調整

この記事では、IoT Hub のクォータについて説明し、調整がどのように機能するかを理解するのに役立つ情報を提供します。

クォータと調整

各 Azure サブスクリプションに最大 50 個の IoT Hub と最大 1 個の Free ハブを割り当てることができます。

各 IoT Hub は、特定のレベルのユニット数でプロビジョニングされます。 レベルとユニット数により、送信できるメッセージの1 日あたりの最大クォータが決定されます。 1 日あたりのクォータを計算するために使用されるメッセージ サイズは、無料レベルのハブでは 0.5 KB、他のすべてのレベルでは 4 KB です。 詳細については、「Azure IoT Hub の価格」を参照してください。

また、レベルでは、IoT Hub がすべての操作に適用するスロットル制限も決まります。

操作のスロットル

操作のスロットルは、ごく限られた範囲に適用される、不正使用を回避するためのレート制限です。 また、これはトラフィック シェイプの影響も受けます。

次の表は、適用されるスロットルを示しています。 値は個々のハブのものです。

スロットル Free、B1、S1 B2、S2 B3、S3
ID レジストリの操作 (作成、取得、一覧表示、更新、削除) 1.67/sec/unit (100/分/単位) 1.67/sec/unit (100/分/単位) 83.33/秒/ユニット (5,000/分/ユニット)
新しいデバイス接続 (この制限は、接続の総数ではなく、新規接続 のレートに適用されます) 100/秒または 12/秒/ユニット以上
たとえば、2 ユニットの S1 の場合、2 * 12 = 24 新規接続/秒ですが、ユニット全体では少なくとも 100 新規接続/秒です。 9 ユニットの S1 の場合、ユニット全体で 108 新規接続/秒 (9 * 12) となります。
120 新規接続/秒/ユニット 6,000 新規接続/秒/ユニット
デバイスからクラウドへの送信 100 送信操作/秒または 12 送信操作/秒/ユニット以上
たとえば、2 ユニットの S1 では 2 * 12 = 24/秒ですが、ユニット全体では少なくとも 100 送信操作/秒となります。 9 ユニットの S1 の場合、ユニット全体で 108 送信操作/秒 (9 * 12) となります。
120 送信操作/秒/ユニット 6,000 送信操作/秒/ユニット
cloud-to-device の送信1 1.67 送信操作/秒/ユニット (100 メッセージ/分/ユニット) 1.67 送信操作/秒/ユニット (100 送信操作/分/ユニット) 83.33 送信操作/秒/ユニット (5,000 送信操作/分/ユニット)
cloud-to-device の受信1
(デバイスが HTTPS を使用する場合のみ)
16.67 受信操作/秒/ユニット (1,000 受信操作/分/ユニット) 16.67 受信操作/秒/ユニット (1,000 受信操作/分/ユニット) 833.33 受信操作/秒/ユニット (50,000 受信操作/分/ユニット)
ファイルのアップロード 1.67 ファイル アップロード開始/秒/ユニット (100/分/ユニット) 1.67 ファイル アップロード開始/秒/ユニット (100/分/ユニット) 83.33 ファイル アップロード開始/秒/ユニット (5,000/分/ユニット)
ダイレクト メソッド1 160 KB/秒/ユニット2 480 KB/秒/ユニット2 24 MB/秒/ユニット2
クエリ 20/分/ユニット 20/分/ユニット 1,000/分/ユニット
ツイン (デバイスとモジュール) の読み取り1 100/秒 100/秒または 10/秒/ユニット以上 500/秒/ユニット
ツインの更新 (デバイスとモジュール)1 50/秒 50/秒または 5/秒/ユニット以上 250/秒/ユニット
ジョブの操作1
(作成、更新、一覧表示、削除)
1.67/sec/unit (100/分/単位) 1.67/sec/unit (100/分/単位) 83.33/秒/ユニット (5,000/分/ユニット)
ジョブ デバイス操作1
(ツインの更新、ダイレクト メソッドの呼び出し)
10/秒 10/秒または 1/秒/ユニット以上 50/秒/ユニット
構成と Edge の展開1
(作成、更新、一覧表示、削除)
0.33/秒/単位 (20/分/単位) 0.33/秒/単位 (20/分/単位) 0.33/秒/単位 (20/分/単位)
デバイス ストリーム開始レート1 5 つの新しいストリーム/秒 5 つの新しいストリーム/秒 5 つの新しいストリーム/秒
同時に接続されているデバイス ストリームの最大数1 50 50 50
デバイス ストリームの最大データ転送量1 (1 日あたりのボリュームの集計) 300 MB 300 MB 300 MB

1 この機能は、IoT Hub の Basic レベルでは使用できません。 詳しくは、適切な IoT Hub の選び方に関するページをご覧ください。
2調整メーター サイズは 4 KB です。 調整は、要求ペイロードのサイズのみに基づきます。

調整の詳細

  • メーター サイズは、調整制限が使用される増分で決まります。 直接呼び出しのペイロードが 0 ~ 4 KB の場合は、4 KB としてカウントされます。 160 KB/秒/ユニットの上限に達するまで、ユニットごとに 1 秒あたり最大 40 回の呼び出しを行うことができます。

    同様に、ペイロードが 4 KB ~ 8 KB の場合は、それぞれが 8 KB の呼び出しアカウントを使用し、上限に達するまでユニットごとに 1 秒あたり最大 20 回の呼び出しを行うことができます。

    最後に、ペイロードのサイズが 156 KB ~ 160 KB の場合は、160 KB/秒/ユニットの上限に達するまで、ハブでユニットごとに 1 秒あたり 1 回の呼び出ししか行えなくなります。

  • レベル S3 の "ジョブ デバイス操作 (ツインの更新、ダイレクト メソッドの呼び出し) " の場合は、ジョブを使用してメソッドを呼び出す場合にのみ、50/秒/ユニットが適用されます。 ダイレクト メソッドを直接呼び出す場合は、元の調整制限である 24 MB/秒/ユニット (S3 の場合) が適用されます。

  • クォータ は、ハブで送信できる 1 日あたり のメッセージの集計数です。 ハブのクォータ制限は、IoT Hub 料金ページの列 [ユニットごとのメッセージの合計数 (1 日あたり)] に表示されます。

  • クラウドからデバイスおよびデバイスからクラウドへの調整によって、メッセージを送信できる最大 速度 が決まります。メッセージの数は 4 KB のチャンクに関係ありません。 D2C メッセージの最大サイズは 256 KB です。C2D メッセージの最大サイズは 64 KB です。 これらは、メッセージの種類ごとの [最大メッセージ サイズ] です。

  • 調整制限に達したり超過したりしないように、呼び出しを調整することをお勧めします。 上限に達した場合、IoT Hub はエラーコード 429 で応答し、クライアントはバックオフして再試行する必要があります。 これらの制限はハブあたり (場合によってはハブ/ユニットあたり) です。 詳細については、接続と信頼できるメッセージング/再試行パターンの管理に関するページを参照してください。

トラフィック シェイプ

トラフィックのバーストに対応できるように、IoT Hub では限られた期間だけスロットルを上回る要求を受け入れます。 これらの要求のうち最初のいくつかは即座に処理されます。 ただし、要求の数が引き続きスロットルに違反している場合は、IoT Hub によって要求がキューに入れられ、制限された速度で要求が処理されます。 この効果は "トラフィック シェイプ" と呼ばれます。 さらに、このキューのサイズも制限されています。 スロットル違反が続くと、最後にはキューがいっぱいになり、IoT Hub は 429 ThrottlingException で要求を拒否し始めます。

たとえば、シミュレートされたデバイスを使用して、S1 IoT Hub (1 秒あたり 100 個の D2C 送信という制限があります) に 1 秒あたり 200 個の device-to-cloud メッセージを送信するとします。 最初の 1、2 分の間、メッセージは即座に処理されます。 ただし、デバイスが引き続きスロットルの制限を超えるメッセージを送信するため、IoT Hub は 1 秒あたり 100 個のみのメッセージの処理を開始し、残りをキューに配置します。 ユーザーは待機時間が長くなっていることに気付き始めます。 最終的にキューがいっぱいになると 429 ThrottlingException が発生し始め、IoT Hub のメトリックの "スロットル エラー数" が増え始めます。 メトリックに基づいてアラートとグラフを作成する方法については、IoT Hub の監視に関するページを参照してください。

ID レジストリ操作のスロットル

デバイス ID レジストリの操作は、デバイスの管理とプロビジョニングのシナリオにおける実行時の使用を意図したものです。 多数のデバイス ID の読み取りまたは更新は、ジョブのインポートとエクスポートによってサポートされています。

(一括インポートおよびエクスポートのジョブ "ではなく") 一括レジストリ更新操作を使用して ID 操作を開始する場合は、同じスロットル制限が適用されます。 たとえば、一括操作を送信して 50 台のデバイスを作成する必要あり、1 ユニットを含む S1 IoT Hub がある場合、1 分あたりに受け入れられるのはこれらの一括要求の 2 つのみです。 これは、1 つのユニットを含む S1 IoT Hub の ID 操作スロットルが 100/分/ユニットであるためです。 また、この場合は制限に既に達しているため、同じ 1分間の 3 つ目以降の要求は拒否されます。

デバイス接続のスロットル

"デバイスの接続" スロットルは、IoT Hub を使用して新しいデバイス接続を確立できる速度を制御します。 "デバイスの接続" スロットルでは、同時に接続されるデバイスの最大数は制御されません。 "デバイスの接続" レートのスロットルは、IoT Hub にプロビジョニングされたユニット数に依存します。

たとえば、1 つの S1 ユニットを購入した場合、1 秒あたり 100 接続のスロットルを利用できます。 したがって、100,000 個のデバイスに接続するには、少なくとも 1,000 秒 (約 16 分) かかります。 ただし、ID レジストリに登録されたデバイスの数だけ、同時に接続されたデバイスを持つことができます。

その他の制限

IoT Hub により、その他の運用上の制限が適用されます。

Operation 制限
デバイス 1つの IoT ハブに登録できるデバイスとモジュールの合計数は、1,000,000 に制限されています。 この制限を引き上げる唯一の方法は、Microsoft サポートにお問い合わせいただくことです。
ファイルのアップロード デバイスごとに 10 個の同時ファイル アップロード。
ジョブ1 コンカレント ジョブの最大数は 1 (Free および S1)、5 (S2)、10 (S3) です。 ただし、コンカレント デバイス インポート/エクスポート ジョブの最大数は、すべてのレベルで 1 です。
ジョブ履歴は、最大で 30 日間保持されます。
エンドポイントの追加 有料の SKU ハブには、エンドポイントを 10 個追加できます。 無料の SKU ハブには、エンドポイントを 1 個追加できます。
メッセージ ルーティング クエリ 有料の SKU ハブには、100 個のルーティング クエリを設定できます。 無料の SKU ハブには、5 個のルーティング クエリを設定できます。
メッセージ エンリッチメント 有料の SKU ハブには、最大 10 個のメッセージ エンリッチメントを設定できます。 無料の SKU ハブには、最大 2 個のメッセージ エンリッチメントを設定できます。
デバイスからクラウドへのメッセージ 最大メッセージ サイズは 256 KB
cloud-to-device のメッセージング1 最大メッセージ サイズは 64 KB。 デバイスあたりの配信の保留中のメッセージの最大数は 50。
ダイレクト メソッド1 ダイレクト メソッドの最大ペイロード サイズは 128 KB。
デバイスおよびモジュールの自動構成1 有料の SKU ハブあたり 100 構成。 無料の SKU ハブあたり 20 構成。
IoT Edge の自動デプロイ1 デプロイあたり 50 モジュール。 有料の SKU ハブあたり 100 デプロイ (多層デプロイを含む)。 無料の SKU ハブあたり 10 デプロイ。
ツイン1 必要なプロパティ セクションと報告されたプロパティ セクションの最大サイズはそれぞれ 32 KB です。 タグ セクションの最大サイズは 8 KB です。
共有アクセス ポリシー 共有アクセス ポリシーの最大数は 16 です。
送信ネットワーク アクセスを制限する FQDN の許容最大数は 20 です。
x509 CA 証明書 IoT Hub に登録可能な x509 CA 証明書の最大数は 25 です。

1 この機能は、IoT Hub の Basic レベルでは使用できません。 詳しくは、適切な IoT Hub の選び方に関するページをご覧ください。

クォータまたはスロットルの制限値を増やす

いつでも、IoT ハブにプロビジョニングされたユニットの数を増やすことで、クォータやスロットルの制限値を増やすことができます。

Latency

IoT Hub は、すべての操作の待機時間を短くするように努めています。 ただし、ネットワークの状態やその他の予測不能な要因のため、特定の待機時間を保証することはできません。 ソリューションを設計するときに、次のようなことを行う必要があります。

  • どの IoT Hub 操作についても最大待機時間を想定しない。
  • IoT Hub は、デバイスに最も近い Azure リージョンにプロビジョニングする。
  • デバイスまたはデバイスに最も近いゲートウェイで Azure IoT Edge を使用して待機時間に依存する操作を実行することを検討する。

複数の IoT Hub ユニットは、前に述べたように調整に影響を与えますが、待機時間に関する追加のメリットや保証が提供されることはありません。

操作の待機時間が予想外に増加した場合は、Microsoft サポートにお問い合わせください。

次のステップ

IoT Hub スロットルの動作の詳細については、ブログ投稿「IoT Hub throttling and you (IoT Hub スロットルの操作)」を参照してください。

この IoT Hub 開発者ガイド内の他の参照トピックは次のとおりです。