Cloud IoT Core にはリソースの割り当てと使用量に上限があり、プロジェクトごとに割り当てが適用されます。具体的なポリシーは、リソースの可用性、ユーザー プロファイル、サービス使用量の履歴などの要因に応じて異なり、予告なく変更される場合があります。
上限
このセクションでは、Cloud IoT Core に対する割り当てを、プロジェクト / デバイス / テレメトリー、レート、時間の 3 つのカテゴリに分類して説明します。
プロジェクト、デバイス、テレメトリーの上限
割り当て | 上限 | 上限引き上げ可能 |
---|---|---|
1 リージョン、1 プロジェクトあたりのデバイス数 | 上限なし、デフォルト値は 100,000 台 | ○ |
1 リージョン、1 プロジェクトあたりのデバイス レジストリ数 | 100 | ○ |
ゲートウェイにバインドされているデバイス | 10,000 台 | × |
ゲートウェイに接続されているデバイス | 1,000 台 | × |
デバイスにバインドされるゲートウェイ数 | 10 台 | × |
デバイス ID の長さ | 256 バイト | × |
デバイス レジストリ ID の長さ | 256 バイト | × |
デバイス メタデータ | 500 Key-Value ペア | × |
デバイス メタデータ キー | 128 文字 | × |
デバイス メタデータ値 | 32 KB | × |
メタデータの Key-Value ペアを組み合わせたサイズ | 256 KB | × |
1 デバイスあたりの認証情報数 | 3 | × |
1 デバイスあたりの構成バージョン数 | 10 | × |
デバイス構成データ | 64 KB | × |
リスト リクエストの最大ページサイズ | 500 | × |
デバイス状態ペイロード | 64 KB | × |
テレメトリー イベント通知構成数 | 10 | × |
テレメトリー イベント ペイロード | 256 KB | × |
1 デバイスあたりの MQTT 接続数 | 1 | × |
1 リージョン、1 プロジェクトあたりのオープンな MQTT 接続数 | 10,000 | ○ |
1 リージョン、1 プロジェクトあたりのアクティブな HTTP デバイス接続数(過去 5 分間) | 10,000 | ○ |
レート上限
割り当て | 上限 | 上限引き上げ可能 |
---|---|---|
1 デバイスあたりの HTTP デバイス テレメトリー パブリッシュ回数 | 毎分 6,000 回 | × |
1 プロジェクトあたりのデバイス テレメトリー パブリッシュ回数 | 上限なし、デフォルト値は毎分 60,000 回 | ○ |
デバイスからクラウドへの 1 デバイスあたりのスループット | 512 KB/秒 | × |
クラウドからデバイスへの 1 デバイスあたりのスループット | 512 KB/秒 | × |
1 デバイスあたりの構成更新回数 | 毎秒 1 回 | × |
1 デバイスあたりの属性更新回数 | 毎秒 1 回 | × |
1 レジストリあたりの属性更新回数 | 毎秒 1 回 | × |
1 プロジェクトあたりのデバイス マネージャー API 読み取り呼び出し回数 | 毎分 30,000 回 | ○ |
1 プロジェクトあたりのデバイス マネージャー API 作成呼び出しおよび削除呼び出し回数 | 毎分 3,000 回 | × |
1 プロジェクトあたりのデバイス マネージャー API 更新呼び出し回数 (次の行の例外を参照) |
毎分 3,000 回 | ○ |
1 プロジェクトあたりのデバイス マネージャー API modifyCloudToDeviceConfig 呼び出し回数 |
毎分 6,000 回 | ○ |
1 接続、1 秒あたりの MQTT 受信メッセージ数 | 毎秒 100 件 | × |
1 デバイスあたりのデバイス MQTT 接続回数 | 毎秒 1 回 | × |
1 プロジェクトあたりのデバイス MQTT 接続および HTTP リクエスト回数 | 毎分 60,000 回 | ○ |
1 デバイスあたり状態更新回数 | 毎秒 1 回* | × |
1 プロジェクトあたり状態更新回数 | 毎分 6,000 回* | ○ |
1 プロジェクトあたりのログに記録されるイベント数 | 毎秒 1,000 件 | ○ |
1 プロジェクトあたりのログに記録されるイベントのサイズ | 毎秒 1 MB(各ログエントリは約 1 KB) | ○ |
1 レジストリあたりのコマンド数 | 毎秒 1,000 件 | ○ |
1 プロジェクトあたりのコマンド数 | 毎秒 1,000 件 | ○ |
1 デバイス接続あたりのコマンド トピックに対する MQTT サブスクリプション数 | 毎秒 1 件 | × |
*詳しくは、デバイスの状態の取得をご覧ください。
時間の上限
割り当て | 上限 | 上限引き上げ可能 |
---|---|---|
JWT 認可クロックのずれ | 10 分 | × |
JWT 全期間(exp と iat の差が上限を超えないこと) |
24 時間 | × |
MQTT アイドル時間(ハートビートやメッセージがない) | 20 分 | × |
MQTT 接続時間 | 24 時間** | × |
コマンドのタイムアウト | 60 秒 | × |
コマンドの再試行 | 60 秒 | × |
** 接続がリセットされることがあります(サーバーの再起動時など)。
割り当ての適用
割り当て超過が生じた場合の結果は、プロジェクトやリソース(レジストリやデバイスなど)によって異なります。
- プロジェクトで割り当てを超えた場合: 使用量が上限以内に収まるまでプロジェクトはブロックされます。まれな状況として、上限以内に収まった後も割り当て適用期間が続くことがあります。割り当て超過がすべて解消された後もプロジェクトがブロックされたままの状態が続く場合は、しばらく待ってから再度試します。
- MQTT ブリッジを使用するデバイスで割り当てを超えた場合: デバイスの接続が解除されます。
- HTTP 接続を使用しているデバイスで割り当てを超えた場合: デバイスに
RESOURCE_EXHAUSTED
レスポンスが返されます。
たとえば、MQTT ブリッジを介してデバイスの構成を 1 秒あたり複数回更新しようとすると、Cloud IoT Core によってデバイスの接続が解除されます。この問題を修正するには、デバイス構成のパブリッシュ回数を必ず 1 秒あたり 1 回以下、理想的には 10 秒あたり 1 回に抑えたうえでデバイスを再接続します。詳細についてはデバイスの構成をご覧ください。
割り当て上限の引き上げ
各上限は、デフォルトでその最大値に設定されています。最大値を超える上限の引き上げをリクエストする手順は以下のとおりです。
Google Cloud Console の [API とサービス] で、編集する割り当てを選択します。
[割り当てを編集] をクリックします。
[割り当ての編集] ペインで所要事項を入力して [次へ] をクリックします。
[割り当ての増加を申し込む] をクリックし、割り当てのリクエスト フォームに所要事項を入力して送信します。
割り当て上限を引き上げたいが、Cloud Console に表示されない場合は、割り当てのリクエスト フォームに値を入力します。
圧縮 HTTP リクエスト
HTTP 接続の使用の説明にあるとおり、HTTP 接続を通じ、gzip 圧縮したデータをデバイスから Cloud IoT Core に送信できます。
テレメトリー イベントのペイロードとデバイス状態のペイロードに対する上限は、各リクエストの非圧縮サイズを使用して計算されます。
たとえば、10 KB に圧縮したテレメトリー イベントのペイロードを送信する場合であっても、圧縮していない元のペイロードのサイズが 257 KB であると、テレメトリー イベントのペイロードに対する上限の 256 KB を超えているため、このリクエストは失敗します。