概要
Google Cloud IoTは、Google Cloud Platform(GCP)が提供するIoT関連サービス群の総称です。中核となっていたのは「Cloud IoT Core」というデバイス接続・管理サービスでしたが、2023年8月16日をもってサービスが終了しました。現在Googleは、後継として「Google Cloud IoT Solutions」という形でパートナー企業のソリューションを紹介するエコシステム戦略に転換しています。
重要: Cloud IoT Coreは2023年8月16日にサービス終了となりました。既存ユーザーは他プラットフォーム(AWS IoT Core、Azure IoT Hub、またはパートナーソリューション)への移行が必要です。
Cloud IoT Core存続中の主な機能は以下の通りでした。
- デバイスレジストリ: デバイスの登録・管理・グループ化
- MQTT/HTTP ブリッジ: デバイスとGCPを接続するエンドポイント
- Cloud Pub/Sub連携: 受信メッセージをリアルタイムに下流サービスへ配信
- デバイス設定: クラウドからデバイスへの設定値の配信
- デバイス状態: デバイスからクラウドへの状態レポート
Cloud IoT Coreが廃止された今もなお、GCPのIoTエコシステムを支えるサービス群として以下が活用されています。
- Cloud Pub/Sub: IoTデータの非同期メッセージング基盤として引き続き利用可能
- Cloud Dataflow: IoTストリームデータのリアルタイム処理
- BigQuery: 大規模なIoTデータの蓄積・分析
- Vertex AI: IoTデータを活用したML/AI
- Cloud Run / GKE: IoTバックエンドのコンテナ実行
- Edge TPU / Coral: エッジでのML推論特化チップ
歴史・背景
GoogleがIoT分野へ参入したのは比較的遅く、2017年にCloud IoT Core(ベータ版)を発表、2018年に一般提供が開始されました。AWSやAzureに後れを取った参入でしたが、BigQueryの大規模分析力、TensorFlow/Vertex AIとのML連携、低コストのCloud Pub/Subといった強みで存在感を示しました。
ハードウェア面では、Google傘下のNestによるスマートホームデバイスのノウハウと、Edge TPUチップ(機械学習推論専用)を組み込んだCoralデバイスボードが注目されました。
しかし2022年9月、Googleは突然Cloud IoT Coreの2023年8月での廃止を発表。これはIoT業界に大きな衝撃を与えました。Googleの方針として、IoTプラットフォームの直接提供よりも、BigQuery・Pub/Sub・Vertex AIなどの汎用データプラットフォームをIoTにも活用できる形で強化する戦略へのシフトと解釈されています。また、Googleはパートナー企業(Losant、Clearblade、HiveMQなど)が自社のIoTプラットフォームをGCP上で提供するエコシステムを推進しています。
技術仕様
Cloud IoT Core 存続期間中の接続仕様(参考)
| 項目 | 仕様 |
|---|---|
| 対応プロトコル | MQTT 3.1.1、HTTPS |
| MQTT エンドポイント | mqtt.googleapis.com:8883 |
| 認証方式 | JWT(RS256またはES256署名) |
| メッセージサイズ上限 | 256 KB |
| デバイスレジストリ上限 | リージョンあたり10,000レジストリ |
| デバイス数上限 | レジストリあたり1,000,000デバイス |
GCPのIoTデータパイプライン(現在も利用可能)
デバイス → (MQTT/HTTP) → [Cloud IoT Core廃止]
↓(代替構成)
デバイス → (MQTT/HTTP) → カスタムMQTTブローカー(HiveMQ等)
↓
Cloud Pub/Sub
┌──────┼──────────┐
↓ ↓ ↓
Dataflow BigQuery Cloud Functions
(処理) (分析) (アラート等)
↓
Vertex AI
(ML/AI分析)
Cloud Pub/Sub の主要スペック
| 項目 | 仕様 |
|---|---|
| メッセージサイズ上限 | 10 MB |
| メッセージ保持期間 | 7日(デフォルト)、最大31日 |
| スループット | 無制限(自動スケール) |
| 配信保証 | at-least-once |
| 無料枠 | 10 GB/月 |
動作原理
JWT認証の仕組み(Cloud IoT Core時代の参考実装)
Cloud IoT Coreの特徴的な認証方式がJWT(JSON Web Token)でした。RSAまたはECDSA秘密鍵でJWTを署名し、MQTTのパスワードフィールドに設定します。JWTの有効期限は最大24時間で、期限切れ前に更新が必要でした。
import jwt
import datetime
from google.cloud import iot_v1
def create_jwt(project_id, private_key_file, algorithm='RS256'):
"""Cloud IoT Core用JWTを生成する"""
token = {
'iat': datetime.datetime.utcnow(),
'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=60),
'aud': project_id
}
with open(private_key_file, 'r') as f:
private_key = f.read()
return jwt.encode(token, private_key, algorithm=algorithm)
# MQTTクライアント設定
import paho.mqtt.client as mqtt
client = mqtt.Client(client_id=f"projects/{PROJECT_ID}/locations/{REGION}/registries/{REGISTRY_ID}/devices/{DEVICE_ID}")
client.username_pw_set(
username='unused', # Cloud IoT CoreはJWTをパスワードに使う
password=create_jwt(PROJECT_ID, 'private_key.pem')
)
client.tls_set(ca_certs='roots.pem')
client.connect('mqtt.googleapis.com', 8883)
Cloud Pub/Sub を使ったIoTデータパイプライン(現在の推奨構成)
# Cloud Functions: Pub/Subトリガーでデータを処理
import base64
import json
from google.cloud import bigquery
def process_iot_message(event, context):
"""Pub/Subメッセージを受信してBigQueryに格納"""
# メッセージのデコード
pubsub_message = base64.b64decode(event['data']).decode('utf-8')
message_data = json.loads(pubsub_message)
# BigQueryへの書き込み
bq_client = bigquery.Client()
table_id = "my-project.iot_dataset.sensor_data"
rows_to_insert = [{
"device_id": message_data.get("device_id"),
"temperature": message_data.get("temperature"),
"timestamp": message_data.get("timestamp"),
"received_at": context.timestamp
}]
errors = bq_client.insert_rows_json(table_id, rows_to_insert)
if errors:
raise RuntimeError(f"BigQuery挿入エラー: {errors}")
用途・ユースケース
BigQueryによる大規模IoTデータ分析
Cloud IoT Coreが廃止された後も、GCPのIoTデータ分析の中心はBigQueryです。数百億行のセンサーデータに対してSQLクエリを数秒で実行できます。
-- BigQuery: 過去30日間のデバイスごとの平均温度と異常発生回数
SELECT
device_id,
AVG(temperature) AS avg_temperature,
MAX(temperature) AS max_temperature,
COUNTIF(temperature > 80) AS overheat_count,
DATE_TRUNC(TIMESTAMP_SECONDS(timestamp), DAY) AS date
FROM `my-project.iot_dataset.sensor_data`
WHERE TIMESTAMP_SECONDS(timestamp) >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
GROUP BY device_id, date
ORDER BY date DESC, overheat_count DESC;
Vertex AI によるML推論
IoTデータを使った予知保全モデルをVertex AI上で訓練・デプロイし、エッジまたはクラウドで推論を実行します。
Edge TPU(Coral)による組み込みML
Google製のEdge TPUチップを搭載したCoralボードは、TensorFlow Liteモデルをエッジデバイス上でリアルタイム推論できます。画像認識、音声認識、異常検知などに活用されます。
# Edge TPU上でのTensorFlow Lite推論
import numpy as np
from pycoral.utils import edgetpu
from pycoral.adapters import common
interpreter = edgetpu.make_interpreter('model_edgetpu.tflite')
interpreter.allocate_tensors()
# 入力データ(センサー値の特徴量)
input_data = np.array([[25.3, 60.1, 1013.2]], dtype=np.float32)
common.set_input(interpreter, input_data)
interpreter.invoke()
# 推論結果(異常スコア)
output = common.output_tensor(interpreter, 0).copy()
anomaly_score = float(output[0])
print(f"異常スコア: {anomaly_score:.3f}")
Google Cloud IoT廃止後の移行先
Cloud IoT Coreのユーザーが移行した主な選択肢:
| 移行先 | 特徴 |
|---|---|
| AWS IoT Core | 最も機能が豊富、大規模実績あり |
| Azure IoT Hub | エンタープライズ統合に強い |
| HiveMQ(GCP上) | GCPを維持しつつMQTT基盤を継続 |
| Losant(GCPパートナー) | フルスタックIoTプラットフォーム |
| Clearblade(GCPパートナー) | エンタープライズ向け |
| 自前構築(Mosquitto + Kafka) | 完全コントロール、運用コスト高 |
実装・開発のポイント
GCP上でのカスタムIoTバックエンド構築
Cloud IoT Core廃止後、GCPでIoTシステムを構築する場合の推奨アーキテクチャ:
# Cloud Run上にMQTTブリッジをデプロイ
# docker-compose的な設定イメージ
services:
mqtt-broker:
image: hivemq/hivemq4
environment:
- HIVEMQ_LICENSE: ${HIVEMQ_LICENSE}
ports:
- "8883:8883"
# GCPのSecret Managerから証明書を取得する設定
# Pub/Sub publisher: MQTTブローカーからGCPへのブリッジ
from google.cloud import pubsub_v1
import paho.mqtt.client as mqtt
publisher = pubsub_v1.PublisherClient()
topic_path = publisher.topic_path('my-gcp-project', 'iot-telemetry')
def on_mqtt_message(client, userdata, message):
"""MQTTメッセージをPub/Subへ転送"""
future = publisher.publish(topic_path, message.payload,
device_id=message.topic.split('/')[2])
future.result() # 配信確認
mqtt_client = mqtt.Client()
mqtt_client.on_message = on_mqtt_message
mqtt_client.connect("localhost", 1883)
mqtt_client.subscribe("devices/+/telemetry")
mqtt_client.loop_forever()
Cloud IoT CoreからAWS IoT Coreへの移行手順
- AWS IoT CoreでデバイスレジストリとX.509証明書を作成
- デバイスファームウェアのMQTT接続先をGCPからAWSに変更
- JWTベース認証からX.509証明書認証に変更
- データパイプラインをCloud Pub/SubからAWS Kinesis / IoT Rulesに移行
- BigQueryの分析ワークロードをAmazon Athena / Redshiftに移行(または維持)
他技術との比較
| 項目 | GCP(Cloud IoT Core廃止後) | AWS IoT Core | Azure IoT Hub |
|---|---|---|---|
| IoT専用マネージドサービス | なし(2023年廃止) | あり | あり |
| データ分析 | BigQuery(世界最強クラス) | Athena/Redshift | Synapse Analytics |
| ML/AI統合 | Vertex AI | SageMaker | Azure ML |
| エッジML | Edge TPU/Coral | Greengrass | IoT Edge |
| MQTT基盤 | パートナー依存 | ネイティブ | ネイティブ |
| 既存ユーザー推奨 | AWS/Azureへ移行、またはパートナー活用 | - | - |
Google Cloud IoTはIoTプラットフォームエコシステムの一翼を担いましたが、Cloud IoT Coreの廃止によりエッジコンピューティング向けのEdge TPUやダッシュボード・分析基盤としてのBigQuery/Lookerが今後の主戦場となります。新規プロジェクトではAWS IoT CoreまたはAzure IoT Hubの選択が現実的です。