クラウド・プラットフォーム

Google Cloud IoT

GCPのIoT関連サービス群。

概要

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への移行手順

  1. AWS IoT CoreでデバイスレジストリとX.509証明書を作成
  2. デバイスファームウェアのMQTT接続先をGCPからAWSに変更
  3. JWTベース認証からX.509証明書認証に変更
  4. データパイプラインをCloud Pub/SubからAWS Kinesis / IoT Rulesに移行
  5. BigQueryの分析ワークロードをAmazon Athena / Redshiftに移行(または維持)

他技術との比較

項目GCP(Cloud IoT Core廃止後)AWS IoT CoreAzure IoT Hub
IoT専用マネージドサービスなし(2023年廃止)ありあり
データ分析BigQuery(世界最強クラス)Athena/RedshiftSynapse Analytics
ML/AI統合Vertex AISageMakerAzure ML
エッジMLEdge TPU/CoralGreengrassIoT Edge
MQTT基盤パートナー依存ネイティブネイティブ
既存ユーザー推奨AWS/Azureへ移行、またはパートナー活用--

Google Cloud IoTはIoTプラットフォームエコシステムの一翼を担いましたが、Cloud IoT Coreの廃止によりエッジコンピューティング向けのEdge TPUやダッシュボード・分析基盤としてのBigQuery/Lookerが今後の主戦場となります。新規プロジェクトではAWS IoT CoreまたはAzure IoT Hubの選択が現実的です。

関連用語

参考リンク