クラウドコンピューティングは、インターネット上でさまざまなサービスやアプリケーションを提供する技術として、今や当たり前のものになっています。しかし、クラウドには限界もあります。データセンターとユーザーとの距離やネットワークの混雑によって、応答時間や転送速度が低下することがあります。また、クラウドに送られるデータ量が増えると、バックボーン帯域幅やストレージ容量にも負荷がかかります。
そこで注目されているのが、エッジコンピューティングです。エッジコンピューティングとは、利用者や端末と物理的に近い場所に処理装置(エッジプラットフォーム)を分散配置して、ネットワークの端点でデータ処理を行う技術の総称です⁷。エッジコンピューティングは、クラウドに代わってタスクを実行しサービスを提供することで、応答時間や転送速度を向上させるだけでなく、バックボーン帯域幅やストレージ容量を節約することもできます。
エッジコンピューティングのメリット
エッジコンピューティングには、以下のようなメリットがあります。
- 低遅延:データ処理をユーザーに近い場所で行うことで、データセンターとの往復時間を削減し、リアルタイム性やインタラクティビティを高めることができます。例えば、自動運転車やドローンなどのリアルタイム制御が必要なアプリケーションでは、エッジコンピューティングが欠かせません。
- 帯域幅節約:データ処理をエッジで行うことで、クラウドに送る必要のないデータをフィルタリングしたり、圧縮したりすることができます。これにより、ネットワークの混雑を緩和し、通信費用を削減することができます。例えば、工場や倉庫などのIoT機器から生成される大量のセンサーデータは、エッジで前処理してからクラウドに送ることで、帯域幅を節約することができます。
- セキュリティ向上:データ処理をエッジで行うことで、クラウドに送る必要のないデータを保護したり、暗号化したりすることができます。これにより、データ漏洩や改ざんのリスクを低減することができます。例えば、医療や金融などの個人情報や機密情報を扱うアプリケーションでは、エッジコンピューティングがセキュリティを向上させることができます。
エッジコンピューティングの課題
一方で、エッジコンピューティングには、以下のような課題もあります。
- 管理・運用の複雑化:エッジコンピューティングでは、多数の分散した処理装置を管理・運用する必要があります。これらの装置は異なるハードウェアやソフトウェアを持ち、異なる場所にあるため、一元的に監視したり更新したりすることが困難です。また、故障や障害への対応も迅速に行う必要があります。
- 開発・テストの難易度:エッジコンピューティングでは、異なる種類や性能の処理装置で動作するアプリケーションを開発・テストする必要があります。これらの装置は常にネットワークに接続されているわけではなく、限られたリソースしか持っていないため、従来のアプリケーション開発とは大きく異なります。
エッジコンピューティングの実現方法
エッジコンピューティングを実現する方法はさまざまですが、一般的には以下のような手法があります。
-
コンテントデリバリネットワーク(CDN):CDNはインターネット上で静的なWebページや動画などのコンテンツを配信するために利用される技術です。CDNではユーザーに近い場所にあるサーバー(エッジサーバー)にコンテンツをキャッシュしておき、ユーザーからの要求に応じて高速に配信します。CDNはエッジコンピューティングの起源とも言える技術です⁷。
-
フォグコンピューティング:フォグコンピューティングはエッジコンピューティングと同じく分散型のデータ処理技術ですが 、、エッジよりも少し高い階層(フォグレイヤー)で処理を行います。フォグレイヤーではエッジから集めたデータを集約したり分析したりすることができます。フォグレイヤーは通常ルーターやスイッチなどのネットワーク機器上で構成されます。
-
マイクロデータセンター:マイクロデータセンターは小型化されたデータセンターです。マイクロデータセンターではサーバーやストレージなどの機器を一つの筐体に収めており⁷ 、、設置場所や電源供給などの制約が少なくなっています。マイクロデータセンターでは高度な計算や分析が可能です。
-
IoTゲートウェイ:IoTゲートウェイはIoTデバイスとクラウドとの間にある中継装置です。IoTゲートウェイではIoTデバイスから受信したデータをフィルタリングしたり、プロトコル変換したり、暗号化したりすることができます。また、IoTゲートウェイには処理能力が備わっており、エッジコンピューティングの一環としてデータ処理を行うこともできます。
エッジコンピューティングの事例
エッジコンピューティングはさまざまな分野で活用されています。以下はその一例です。
- 自動運転:自動運転車はカメラやレーダーなどのセンサーから得られる大量のデータをリアルタイムに処理する必要があります。このような場合、クラウドに頼ると応答時間が遅くなり、安全性が低下する恐れがあります。そこで、エッジコンピューティングを利用して、車内や道路沿いのエッジプラットフォームでデータ処理を行うことで、遅延を最小限に抑え、自動運転の性能を向上させることができます。
- スマートシティ:スマートシティでは、交通や環境などの都市の様々な情報をセンサーやカメラなどのIoTデバイスで収集し、分析して最適化することが目的です。しかし、これらのデバイスから生成されるデータ量は膨大であり、クラウドに送るとネットワークの負荷やコストが高くなります。そこで、エッジコンピューティングを利用して、データを近くのエッジプラットフォームで処理し、必要な情報だけをクラウドに送ることで、帯域幅を節約し、リアルタイム性を高めることができます。
- 医療:医療では、患者の健康状態や治療効果をモニタリングするためにウェアラブルデバイスや医療機器などのIoTデバイスが利用されます。これらのデバイスから得られるデータは個人情報や機密情報であり、クラウドに送るとセキュリティのリスクが高まります。そこで、エッジコンピューティングを利用して、データを近くのエッジプラットフォームで処理し、暗号化してからクラウドに送ることで、セキュリティを向上させることができます。
まとめ
エッジコンピューティングは、クラウドに頼らない新しいデータ処理の可能性を提供する技術です。エッジコンピューティングでは、ユーザーに近い場所にあるエッジプラットフォームでデータ処理を行うことで、応答時間や転送速度を向上させるだけでなく、帯域幅やストレージ容量を節約し、セキュリティも向上させることができます。エッジコンピューティングはさまざまな分野で活用されており、自動運転やスマートシティや医療などの事例があります。
しかし、エッジコンピューティングには管理・運用の複雑化や開発・テストの難易度などの課題もあります。これらの課題を解決するためには、エッジコンピューティングを実現する方法やツールを選択する際に注意が必要です。Google Cloudでは、エッジコンピューティングに対応したさまざまなサービスやソリューションを提供しています。例えば、
- Google Cloud CDN:Google Cloud CDNは高性能なグローバルネットワーク上に分散されたエッジキャッシュからWebページや動画などのコンテンツを高速に配信するサービスです。
- Anthos:Anthosはクラウドやオンプレミスだけでなくエッジでも動作するハイブリッドクラウドプラットフォームです。AnthosではKubernetesやIstioなどのオープンソース技術を利用してアプリケーションの開発・運用・管理・保護を一元的に行うことができます。
- Cloud IoT Core:Cloud IoT Coreは安全かつスケーラブルな方法でIoTデバイスとクラウドとの接続・管理・通信を行うサービスです。Cloud IoT CoreではMQTTプロトコルやHTTPブリッジを利用してIoTデバイスから受信したデータをCloud Pub/Subに送信し、その後Cloud DataflowやBigQueryなどのサービスで分析することができます。
以上のようにGoogle Cloudではエッジコンピューティングに対応したさまざまなサービスやソリューションを提供しています。これらのサービスやソリューションを利用することで、エッジコンピューティングのメリットを享受しながら課題も克服することができます。ぜひGoogle Cloudでエッジコンピューティングに挑戦してみてください。