次の方法で共有


IoT Hub のクォータと調整

この記事では、IoT Hub のリソースに適用される制限について説明します。

各 Azure サブスクリプションには、最大 50 個の IoT ハブと、Free レベルで最大 1 つのハブを含めることができます。

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

ハブのクォータ制限は、Azure portal で確認できます。 IoT ハブの [概要] ページに、 毎日のメッセージ制限が一覧表示されます。 また、この制限は、[ハブ設定]>[価格とスケール] で表示および調整することもできます。

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

操作のスロットル

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

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

課金される操作の価格の詳細と状況については、 Azure IoT Hub の課金情報を参照してください。

Basic レベルと Standard レベルの操作

次の表に、すべての 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 送信操作/秒/ユニット
ファイルのアップロード 1.67 ファイル アップロード開始/秒/ユニット (100/分/ユニット) 1.67 ファイル アップロード開始/秒/ユニット (100/分/ユニット) 83.33 ファイル アップロード開始/秒/ユニット (5,000/分/ユニット)
クエリ 20/分/ユニット 20/分/ユニット 1,000/分/ユニット

Standard レベルの操作

次の表に、Standard レベルでのみ使用可能な操作に適用されるスロットルを示します。 値は個々のハブのものです。

スロットル Free および S1 S2 S3
クラウドからデバイスへの送信 1.67 送信操作/秒/ユニット (100 メッセージ/分/ユニット) 1.67 送信操作/秒/ユニット (100 送信操作/分/ユニット) 83.33 送信操作/秒/ユニット (5,000 送信操作/分/ユニット)
クラウドからデバイスへの受信
(デバイスが HTTPS を使用する場合のみ)
16.67 受信操作/秒/ユニット (1,000 受信操作/分/ユニット) 16.67 受信操作/秒/ユニット (1,000 受信操作/分/ユニット) 833.33 受信操作/秒/ユニット (50,000 受信操作/分/ユニット)
ダイレクト メソッド 160 KB/秒/ユニット1 480 KB/秒/ユニット1 24 MB/秒/ユニット1
ツイン (デバイスとモジュール) の読み取り 100/秒 100/秒または 10/秒/ユニット以上 500/秒/ユニット
ツインの更新 (デバイスとモジュール) 50/秒 50/秒または 5/秒/ユニット以上 250/秒/ユニット
ジョブ操作
(作成、更新、一覧表示、削除)
1.67/sec/unit (100/分/単位) 1.67/sec/unit (100/分/単位) 83.33/秒/ユニット (5,000/分/ユニット)
ジョブ デバイス操作
(ツインの更新、ダイレクト メソッドの呼び出し)
10/秒 10/秒または 1/秒/ユニット以上 50/秒/ユニット
構成とエッジのデプロイ
(作成、更新、一覧表示、削除)
0.33/秒/単位 (20/分/単位) 0.33/秒/単位 (20/分/単位) 0.33/秒/単位 (20/分/単位)
デバイス ストリーム開始速度 5 つの新しいストリーム/秒 5 つの新しいストリーム/秒 5 つの新しいストリーム/秒
同時接続デバイス ストリームの最大数 50 50 50
デバイス ストリーム データ転送の最大数 (1 日あたりの合計ボリューム) 300 MB 300 MB 300 MB

1 スロットリング メーター サイズは 4 KB です。 調整は、要求ペイロードのサイズのみに基づきます。

調整の詳細

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

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

    最後に、ペイロードサイズが 156 KB から 160 KB の間の場合、160 KB/秒/ユニットの制限に達する前に、ハブでユニットごとに毎秒 1 回のコールのみを行うことができます。

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

  • cloud-to-device と device-to-cloud のスロットルによって、4 KB のチャンクに関係なくメッセージを送信できる最大 レート が決まります。 device-to-cloud メッセージの最大サイズは 256 KB です。cloud-to-device メッセージの最大サイズは 64 KB です。 これらのサイズは、メッセージの種類ごとの最大メッセージ サイズです。

トラフィック シェイプ

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

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

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

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

同じスロットル制限が、(一括インポートとエクスポート ジョブ "ではなく") 一括レジストリ更新操作を通して行われる ID 操作に適用されます。 たとえば、複数の一括操作を送信してそれぞれ 50 台のデバイスを作成し、1 ユニットの S1 IoT ハブがある場合、これらの一括要求のうち 1 分間に受け入れられるのは 2 つだけです。 この制限は、1 ユニットの S1 IoT ハブの ID 操作スロットルが 100/分/ユニットであるためです。 また、この場合、制限に達したため、同じ分の 3 番目の要求 (以降) が拒否されます。

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

"デバイスの接続" スロットルは、IoT Hub を使用して新しいデバイス接続を確立できる速度を制御します。 "デバイス接続数" スロットルは、同時に接続されるデバイスの最大数には関係ありません。 "デバイス接続" レートを上げるには、IoT ハブ内のユニット数を増やします。

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

その他の制限

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

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

1 この機能は、Basic レベルの IoT Hub では使用できません。 詳細については、「 ソリューションに適した IoT Hub レベルとサイズを選択する」を参照してください

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

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

遅延

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

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

IoT Hub ユニットを追加すると、前に説明したようにスロットリングに影響を及ぼしますが、追加の遅延に関する利点や保証は提供されません。

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