🛜

Google Distributed Cloud と Go/Wasm/Service Extension で実現するエッジコンピューティング

2025/02/17に公開

こんにちは!ラリオスです。

この記事は、エッジコンピューティングの最新動向に関心のある方、特に Google Distributed Cloud とGo/Wasm/Service Extension の連携による可能性を知りたい方を対象としています。

関連記事(こちらも合わせてご覧ください)
https://zenn.dev/ralios/articles/3069aa3c353d60

1. はじめに

私たちの身の回りには、スマートフォン、スマートウォッチ、センサー、産業用ロボットなど、日々膨大なデータを生成するデバイスがあふれています。これらのデータを効率的に処理し、リアルタイムなサービスを提供するためには、従来のクラウド コンピューティングだけでは限界が見え始めています。そこで注目されているのが、データが発生する場所の近くで処理を行う「エッジ コンピューティング」という考え方です。


画像引用元:https://cloud.google.com/blog/topics/hybrid-cloud/announcing-google-distributed-cloud-edge-and-hosted?hl=en

エッジ コンピューティングは、低レイテンシ、帯域幅の節約、セキュリティ向上など、さまざまなメリットをもたらします。特に、自動運転、遠隔医療、スマート ファクトリーなど、リアルタイム性が求められる分野では、エッジ コンピューティングが不可欠な存在となりつつあります。

しかし、エッジ コンピューティングを実現するためには、さまざまな課題を克服する必要があります。限られたリソース、多様なデバイス、セキュリティの確保など、考慮すべき点は多岐にわたります。

本記事では、エッジ コンピューティングの課題を解決し、新たな可能性を切り開くソリューションとして、Google Distributed Cloud (GDC)と、Go 、WebAssembly (Wasm)、そして Service Extension の連携について解説します。

概要

GDC は、Google Cloud の機能をオンプレミスやエッジ ロケーションに拡張する分散クラウド プラットフォームです。一方、Go はその高速性と効率性から、クラウド ネイティブなアプリケーション開発で広く利用されており、Wasm は軽量でセキュアな実行環境として注目を集めています。そして、Service Extension は、Google Cloud のロード バランサの機能を拡張し、エッジでの柔軟なデータ処理を可能にします。

これらの技術を組み合わせることで、どのようなメリットが生まれるのか、具体的なユースケースやシステム構成例を交えながら、詳しく見ていきましょう。

2. Google Distributed Cloud (GDC)とは

Google Distributed Cloud (GDC)は、Google Cloud のインフラストラクチャとサービスを、オンプレミス環境やエッジ ロケーションに拡張する分散クラウド プラットフォームです。これにより、ユーザーは、Google Cloud のマネージド サービスを、自社のデータセンターや、工場、店舗、通信基地局など、データが発生する場所の近くで利用できるようになります。

https://zenn.dev/cloud_ace/articles/next23-google-distributed-cloud
https://zenn.dev/cloud_ace/articles/google-cloud-next-lasvegas-2024-gdc-update

GDC の主要な機能

GDC は、エッジ コンピューティングに必要なさまざまな機能を提供します。主な機能は以下の通りです。

  • コンテナ管理: Kubernetes をベースとしたコンテナ オーケストレーション プラットフォームを提供します。具体的には、Google Distributed Cloud (ソフトウェアのみ) の一部である GKE on Bare Metal や、GKE Enterprise などが含まれ、コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を容易にします。

  • ネットワーキング: 仮想ネットワーク、ロード バランシング、VPN、Dedicated Interconnect など、柔軟なネットワーク機能を提供し、オンプレミス環境やエッジ ロケーションと Google Cloud を安全に接続します。

  • セキュリティ: Google Cloud のセキュリティ モデル (IAM、VPC Service Controls、Security Command Center など)をエッジ環境に拡張し、一貫したセキュリティ ポリシーの適用を可能にします。

  • マネージド サービス: データベース (Cloud SQL, Spanner など)、AI/ML (Vertex AI, Vision AI など)、データ分析 (BigQuery, Dataflow など)など、Google Cloud の豊富なマネージド サービスをエッジ環境で利用できます。

  • 監視とロギング: Cloud Logging と Cloud Monitoring を使用してメトリクスとログを収集します。

https://cloud.google.com/kubernetes-engine/enterprise/docs/concepts/overview?hl=ja
https://zenn.dev/cloud_ace/articles/scc-enterprise-overview
https://cloud.google.com/distributed-cloud?hl=ja

GDC がエッジ コンピューティングに適している理由

GDC がエッジ コンピューティングに適している主な理由は以下の 3 点です。

  1. 低レイテンシ: GDC をエッジ ロケーションに配置することで、データ処理をデータソースの近くで行うことができ、クラウドへのデータ転送に伴う遅延を最小限に抑えられます。これにより、リアルタイムな応答が必要なアプリケーション(自動運転、AR/VR、ゲームなど)の実現が可能になります。

  2. オフライン動作: ネットワーク接続が不安定な環境や、一時的に切断される可能性がある環境でも、GDC はローカルでアプリケーションを実行し続けることができます。これにより、重要な業務アプリケーションの可用性を高めることができます。

  3. データ レジデンシー: データの保管場所に関する規制(データ レジデンシー)や、コンプライアンス要件を満たす必要がある場合、GDC を利用することで、データを特定の国や地域内に保持しながら、Google Cloud のマネージド サービスを利用できます。

3. エッジ コンピューティングにおける GDC のユースケース

Google Distributed Cloud (GDC)は、その低レイテンシ、オフライン動作、データ レジデンシーといった特性を活かし、さまざまな業界でエッジ コンピューティングのユースケースを実現します。ここでは、代表的なユースケースをいくつか紹介します。

3.1. 製造業:スマート ファクトリー

  • 課題: 製造現場では、多数のセンサーや産業用ロボットからリアルタイムにデータを収集し、異常検知、予知保全、生産最適化などを行う必要があります。しかし、従来のクラウド ベースのシステムでは、レイテンシやネットワーク帯域幅の制約により、リアルタイムな処理が困難な場合がありました。

  • GDC の活用: GDC を工場のエッジ サーバーとして導入することで、センサー データをローカルで処理し、リアルタイムな分析と制御を実現できます。
    • 活用できる GDC の機能
      • コンテナ管理 (GKE on Bare Metal):各種分析アプリケーションをコンテナとしてデプロイ、管理。
      • マネージド サービス (Vertex AI):機械学習モデルをエッジで実行し、異常検知や予知保全を行う。
      • ネットワーキング:工場内のネットワークと Google Cloud をセキュアに接続。

  • メリット:
    • 異常検知の迅速化によるダウンタイムの削減。
    • 予知保全によるメンテナンス コストの最適化。
    • 生産ラインのリアルタイムな最適化による生産性向上。

3.2. 小売業:スマート リテール

  • 課題: 小売店舗では、顧客の行動分析、パーソナライズされたレコメンデーション、在庫管理の最適化など、さまざまなデータ活用が求められています。しかし、店舗内のネットワーク環境が不安定な場合や、プライバシー保護の観点から、顧客データをクラウドに送信できない場合があります。

  • GDC の活用: GDC を店舗内のエッジ サーバーとして導入することで、カメラ映像や POS データなどをローカルで処理し、リアルタイムな分析とアクションを実現できます。

    • 活用できる GDC の機能:
      • コンテナ管理:各種分析アプリケーションをコンテナとしてデプロイ、管理。
      • マネージド サービス (Vision AI):カメラ映像から顧客の行動を分析。
      • データ レジデンシー:顧客データを店舗内に保持し、プライバシー保護要件を満たす。

  • メリット:

    • 顧客体験の向上(パーソナライズされたレコメンデーションなど)。
    • 在庫管理の最適化による機会損失の削減。
    • 店舗運営の効率化(棚卸しの自動化など)。

3.3. 通信業:5G/6G ネットワークの高度化

  • 課題: 5G/6G ネットワークでは、超低遅延、超多数同時接続、ネットワーク スライシングなど、高度な機能が求められています。これらの機能を実現するためには、ネットワークのエッジでのコンピューティング能力が不可欠です。

  • GDC の活用: GDC を通信基地局や MEC (Multi-access Edge Computing)サーバーとして導入することで、5G/6G ネットワークのコア機能をエッジで実行し、新たなサービスを提供できます。

    • 活用できる GDC の機能:
      • コンテナ管理:ネットワーク機能をコンテナとしてデプロイ、管理(vRAN, UPF など)。
      • ネットワーキング:ネットワーク スライシングの実現。(物理的なネットワークを論理的に分割し、低遅延、高帯域幅などの異なる要件を持つ仮想ネットワークを提供)。
      • 低レイテンシ:超低遅延なアプリケーション(自動運転、遠隔手術など)の実現。

  • メリット:

    • 新たな収益源の創出(低遅延アプリケーション、エンタープライズ向けサービスなど)。
    • ネットワーク運用の効率化。
    • 通信品質の向上。

3.4. その他

上記の他にも、GDC は以下のような分野で活用できます。

  • 医療: 遠隔医療、手術支援ロボット
  • 交通: 自動運転、交通管制システム
  • エネルギー: スマート グリッド、再生可能エネルギー管理
  • 公共: スマート シティ

4. GDC と Go/Wasm/Service Extension の連携

ここまでは、Google Distributed Cloud (GDC)の概要と、エッジ コンピューティングにおけるユースケースを見てきました。このセクションでは、GDC と Go/Wasm/Service Extension を連携させることで、エッジ コンピューティングの可能性をさらに広げる方法について解説します。

https://tip.golang.org/doc/go1.24
https://developer.mozilla.org/ja/docs/WebAssembly
https://cloud.google.com/service-extensions/docs/overview

4.1. なぜ GDC 上で Go/Wasm/Service Extension を連携させるのか

GDC は、Kubernetes ベースのコンテナ オーケストレーション プラットフォームであり、コンテナ化されたアプリケーションの実行に最適化されています。Go は、その高速性、効率性、並行処理能力から、コンテナ環境との親和性が高く、クラウド ネイティブ アプリケーションの開発に広く利用されています。

WebAssembly (Wasm)は、軽量でセキュアな実行環境を提供し、さまざまなプログラミング言語で記述されたコードを、サンドボックス化された環境で実行できます。Go で記述されたプログラムも、Wasm にコンパイルすることで、GDC 上で安全かつ効率的に実行できます。

Service Extension は、Google Cloud のロード バランサ (アプリケーション ロードバランサ など)の機能を拡張する仕組みです。Proxy-Wasm という技術を利用することで、Wasm モジュールをロード バランサに組み込み、リクエスト/レスポンスの処理をカスタマイズできます。つまり、Go で記述し、Wasm にコンパイルしたカスタム ロジックを、Service Extension として GDC 上のロード バランサに適用できるのです。

Proxy-Wasm の概要はこちらをご覧ください
https://zenn.dev/ralios/articles/3069aa3c353d60#proxy-wasm-の活用

これらの技術を連携させることで、以下のようなメリットが得られます。

  • 柔軟なデータ処理: エッジで受信したデータを、Go/Wasm で記述されたカスタム ロジックで柔軟に処理できます。データのフィルタリング、変換、集約、分析などを、クラウドに送信する前に行うことができます。

  • 低レイテンシ: データ処理をエッジで行うことで、クラウドとの通信に伴う遅延を削減し、リアルタイムな応答を実現できます。

  • オフライン対応: Wasm モジュールは、ネットワーク接続が不安定な場合でも、ローカルで処理を継続できます。

  • セキュリティ: Wasm モジュールは、サンドボックス化された環境で実行されるため、安全性が高く、悪意のあるコードからシステムを保護できます。

  • 開発効率: Go のシンプルさと、Wasm の移植性により、開発者はさまざまな環境で動作するエッジ アプリケーションを効率的に開発できます。

4.2. GDC 上での連携方法

GDC 上で Go/Wasm/Service Extension を連携させるための基本的な手順は以下の通りです。

  1. Go アプリケーションの開発: エッジで実行する処理ロジックを Go で記述します。

  2. Wasm へのコンパイル: Go コンパイラ (TinyGo など)を使用して、Go アプリケーションを Wasm モジュールにコンパイルします。

  3. コンテナ イメージの作成: Wasm モジュールを含むコンテナ イメージを作成します。

  4. GDC へのデプロイ: コンテナ イメージを GDC クラスタにデプロイします。

  5. Service Extension の設定: Google Cloud Console または gcloud CLI を使用して、Service Extension の設定を行います。

    • --service-extension-config フラグを使用して、Wasm モジュールを指定します。
    • 必要に応じて、Wasm モジュールの設定パラメータを指定します。
  6. ロード バランサの設定: Service Extension を使用するように、ロード バランサの設定を行います。

4.3. システム構成例:IoT データのリアルタイム処理

以下に、GDC と Go/Wasm/Service Extension を連携させたシステム構成例を示します。


GDCとGo/Wasm/Service Extension を連携させた IoT データ処理のシステム構成例

解説:
1.多数の IoT デバイスから送信されたセンサー データは、GDC 上の アプリケーション ロードバランサ(ALB)に届きます。
2.ALB は、あらかじめ Service Extension として設定しておいた Wasm モジュールを呼び出します。
3.Wasm モジュール(Go で記述)は、受信したデータをフィルタリング、変換し、不要なデータを取り除いたり、必要な形式に変換したりします。
4.処理済みのデータは、GDC 上で動作する Go アプリケーション(コンテナ)に渡されるか、バックエンド サービス(クラウドまたはオンプレミス)に送信されます。
5.Go アプリケーションは、このデータを用いて、必要に応じた集計、分析、データベースへの書き込みなどを行います。

この構成により、エッジでのリアルタイムなデータ処理、不要なデータの削減による帯域幅の節約、クラウド側の負荷軽減などが実現できます。(バックエンドサービスはあくまでも一例です)

5. まとめ

本記事では、エッジ コンピューティングの新たな可能性を切り開くソリューションとして、Google Distributed Cloud(GDC)と、Go/Wasm/Service Extension の連携について解説しました。

GDC は、Google Cloud のインフラストラクチャとサービスをオンプレミスやエッジ ロケーションに拡張する分散クラウド プラットフォームです。GDC を利用することで、低レイテンシ、オフライン動作、データ レジデンシーといったエッジ コンピューティングの要件を満たしながら、Google Cloud の豊富なマネージド サービスを活用できます。

Go は、その高速性、効率性、並行処理能力から、クラウド ネイティブ アプリケーション開発に適しており、Wasm は、軽量でセキュアな実行環境を提供します。Service Extension は、Google Cloud のロード バランサの機能を拡張し、Go/Wasm で記述されたカスタム ロジックをエッジで実行することを可能にします。

GDC と Go/Wasm/Service Extension を連携させることで、製造業のスマート ファクトリー、小売業のスマート リテール、通信業の 5G/6G ネットワーク高度化など、さまざまな分野で革新的なエッジ アプリケーションを開発できます。

GDC と Go/Wasm/Service Extension 連携のメリット(再掲):

  • 柔軟なデータ処理: エッジで受信したデータを、Go/Wasm で記述されたカスタム ロジックで柔軟に処理。
  • 低レイテンシ: データ処理をエッジで行うことで、クラウドとの通信遅延を削減。
  • オフライン対応: ネットワーク接続が不安定な場合でも、ローカルで処理を継続。
  • セキュリティ: Wasm モジュールはサンドボックス化された環境で実行され、安全性が高い。
  • 開発効率: Go のシンプルさと Wasm の移植性により、効率的な開発が可能。

今後の展望
エッジ コンピューティング市場は、今後も急速に拡大すると予測されており、GDC のような分散クラウド プラットフォームの役割はますます重要になると考えられます。また、Go や Wasm のエコシステムも進化を続けており、より多くの開発者がエッジ アプリケーション開発に参入することが期待されます。

特に、6G の研究開発が進む中、超低遅延、超多数同時接続といった特性を活かした新たなエッジ アプリケーションの登場が予想されます。GDC と Go/Wasm/Service Extension の組み合わせは、これらの新しいアプリケーション開発を強力にサポートします。

エッジ コンピューティングは、まだ発展途上の分野ですが、その可能性は無限大です。GDC、Go、Wasm、Service Extension などの技術を活用し、革新的なエッジ アプリケーションを開発することで、私たちの社会はより便利で豊かになると思います。

合わせて読みたい
https://zenn.dev/ralios/articles/3069aa3c353d60

※Google Cloud、Go、および Google Cloud 製品・サービス名称は Google LLC の商標または登録商標です。
※会社名および商標名は、それぞれの会社の商標または登録商標です。

Discussion