システムの分散と集中はどちらが有利か

企業がシステムを構築する際にクラウド環境の利用は避けて通れなくなっている。さらに、クラウドファーストやサーバレスアーキテクチャサービス(例えば、Amazon Lambda)といった新しいクラウドを活用したコンセプトが打ち出されている。クラウドのような集中型のアーキテクチャを採用したシステムが普及する一方で、対抗する分散型アーキテクチャにも新しい動きがある。

FaaS(Functions as a Service)がクラウドの新たな提供単位に

大手事業者によって集中管理されているクラウド環境は、利用者自身が必要なリソースを必要な時だけ借りて一定のサービスレベルで利用できるし、コスト的な面からもメリットが大きい。これまで一般にクラウドといえば、IaaSとして提供される仮想マシン上にアプリケーションを載せて利用するケースが多かった。もちろんニーズに応じて、仮想マシンを必要な時だけ必要な台数を増やすことで、コストを低減することが可能である。ただし、仮想マシンの台数は1台、2台という離散的な単位で、かつ、1時間単位で課金されることが多く、利用者からのアクセスを受付、処理できる程度に最低限の仮想サーバを常時稼動させておくことが必要である。

そうした中でより細かい単位で利用、管理できる方法として、クラウドで使われるIaaS/PaaSといった単位から、より細かい単位でFaaS(Functions as a Service)をクラウド各社が提供を始めている。FaaSでは、提供されている特別な機能を使った回数分や実行にかかる秒単位の時間だけコストがかかる。FaaSでは仮想サーバが短時間で起動するため、常時稼動させて、管理する必要がないことからサーバレスアーキテクチャと呼ばれ、アクセス数に応じてリソースを増やしてくれる自動スケーリングなどの機能を備えており、利用する側にとっても便利な仕組みだ。PaaSやSaaSも同様に仮想マシンの1台ずつを意識せずに使えるが、FaaSでは利用者からのアクセスなどイベントに応じて必要なサービス(デプロイした機能)のみを起動・終了させる点が異なる。サーバレスというようにサーバ側で状態の維持ができず、ステートレスな処理に限定されるため、マイクロサービスに向いている。具体的な使い方として、検索機能や認証後の課金プロセス、アップロードされた画像やアクセス時に使われるサムネイル画像生成、ログ監視に基づくアラートのメール送信などイベントドリブンな処理が考えられる。

分散型のエッジコンピューティングの可能性に期待

一方で、通信時間や通信量、処理時間といったアプリケーションの性能的な要件に対して、クラウドや自社が保有する(オンプレミスと呼ばれる)システムでは不十分な場合があるため、エッジコンピューティングというコンセプトが示されている。端末や機器に近い基地局やクラウドまで通信経路の途中にサーバを設置してデータを処理する機能を提供する仕組みだ。想定されているユースケースとしては、車両で撮られる画像を処理して衝突防止や安全運転を支援したり、ライブイベント会場内の多数いる端末向けの映像配信、工場内のロボットの制御をリアルタイムで行うなどが挙げられている。

また、2020年にも商用サービス提供が予定されている5G(第5世代移動通信システム)においても、低遅延や局所的に多数の端末により高密度の通信トラフィックが発生するといった似たようなユースケースが想定されている。

エッジコンピューティングをどこでも利用できるようにするには、移動体通信用に基地局を整備するのと同様に多数のサーバを分散して設置することになり、データセンターに集約して設置されるクラウドと比べて、設置コスト的面では不利だろう。しかしながら、先に挙げたようにエッジにあるサーバで処理することで実現できるサービスやクラウドへの通信量を減らすことで通信コストを低減できる場合もあり、総合的に考えることも必要である。

データの分散管理の得失

ビットコインなどの仮想通貨が注目されると同時に、技術的なベースとなっているブロックチェーンも注目されている。一言で言えば、トランザクション情報をブロックとして束ねて、参加者間で分散管理する仕組みである。決済データを多数の利用者が分散管理するので、集中管理する信頼性の高いシステムは必要ないので安価で運用できると言われている。ただし、コスト面で言えば、取引に関係する個人が負担している電気料金や設備投資費用をすべて合計すると、必ずしも安価になるとは言えないのが実情だろう。また、各ノードが持つデータもノード数やデータのN乗に比例して大きくなっていく可能性があり、決済確定に時間がかかっている可能性がある。

分散か集中の選択基準は目に見えるコストだけではない

企業が構築するシステムでは、サービス内容に合った性能が得られるインフラが低コストで利用できることや、自社で投資すべき初期コストや運用コストが下がることは重要な要素である。また、システムを自己管理するのか、クラウド事業者が管理するシステムを利用するのか、あるいは、多数の人間でデータを管理するかの違いともいえる。クラウドを利用する際には利用料が明示されるため、必要な機能のみを利用することでコストを削減するインセンティブが働きやすい。自社で管理するオンプレミスの場合には、自社で負担している人件費や電気代などコストを正確に把握できないのが実情だろう。

ところで、10年ほど前にもP2Pネットワークを利用したファイル共有サービスが流行ったことを覚えている人もいるだろう。新しい技術として注目されたものの、違法コンテンツが大量流出し社会問題になり、取り締まりもありP2Pのファイル共有アプリはほぼ絶滅した。その代わりに定額制有料コンテンツ配信サービスが普及したことを考えると、ブロックチェーンで多大なコストがかかっている重要なシステムが置き換わるとは考えにくい。今後も仮想通貨を含め様々なアプリにブロックチェーン技術が適用されつつも、多くはサーバでの集中管理型が必要十分で、分散管理方式の特徴を生かした「価値のあるデータ」をお互いに交換するアプリケーションのみが残ると考えられる。

今後、IoTのような多量のデータを発生させる端末やノードが多数設置される環境では、各ノードに分散するデータは各ノード(エッジ)にてそのまま管理・処理され、高度なデータ処理のためには別途クラウドで集中管理するようなハイブリッド型システムになるだろう。例を挙げれば、エリアに設置された多数のカメラから送られる映像をクラウドで処理するには通信コストが高くなりすぎる。そのため、(1)カメラに近いエッジ部分で処理する、(2)オリジナル画像データはカメラあるいは周辺のノードで管理する、(3)不審者など特定の人物が映る映像や不信な行動を認識する場合のみクラウドに送ってより詳細な処理を行いデータを管理する、といったハイブリッドな仕組みが考えられる。今後、例示したようなクラウド、エッジ、端末での処理機能やデータの管理方法などの最適な組合せを実現することが求められるようになるだろう。