前回まで、「エッジコンピューティング」の登場背景・メリット・構成技術・ユースケースを紹介しました。今回より、エッジコンピューティングを実現する、具体的なソリューションについて解説していきます。今回は、エッジコンピューティングにおける管理機能を提供するエッジプラットフォームサービスの「Volterra」を紹介します。
Volterraとは
Volterraは米Volterraが提供するサービスです。主要機能としては、「分散されたエッジデバイスに対するアプリケーションの配信」「エッジデバイス間の接続の一元管理」があり、エッジコンピューティング環境を比較的容易に構築することができます。Volterraの構成要素は以下3つです。
- エッジデバイスとしてアプリケーションを実行する「VoltStack」
- VoltStack間の接続やセキュリティ等のネットワークサービスを提供する「VoltMesh」
- VoltStackとVoltMeshを統合管理する「VoltConsole」
これらの3つの要素を組み合わせることで、VoltConsoleの管理画面上から、エッジロケーションに存在するVoltStack環境と配信アプリケーションを一元的に管理するとともに、VoltMeshで接続されたVoltStack環境間のネットワークを柔軟に構成することで、アプリケーションの配信とそれらに対するセキュアなネットワーク接続を実現できます。
続いて、これら3つの要素についてそれぞれ解説していきます。
エッジデバイス「VoltStack」
VoltStackはパブリッククラウドやエッジロケーションで起動するカスタマエッジ(CE)デバイスです。VoltStackは仮想マシンやベアメタルのデバイスとして動作します。各エッジロケーションに配置するVoltStackではコンテナオーケストレーションシステムであるKubernetesが動作しており、アプリケーションはコンテナイメージとして配信され、Kubernetes上でコンテナとして起動します。
Kubernetesでは、「マニフェスト」と呼ばれる定義ファイルによって、実行するコンテナイメージとコンテナ起動時の各種パラメータを指定することが可能です。このマニフェストを適用することにより、VoltStack上でコンテナが実行され、アプリケーションを更新する場合はマニフェスト内で新しいバージョンのコンテナイメージを指定します。
一方で、エッジコンピューティング環境は多数のVoltStackで構成されるため、VoltStackごとにマニフェストを管理することは現実的ではありません。この課題を解決するために、Volterraは「Virtual Kubernetes(vk8s)」と呼ばれる機能を持っています。
vk8sは複数のVoltStackを仮想的に1つのKubernetesクラスタのように管理することを可能にし、単一のマニフェストによって複数のVoltStack上でコンテナを実行することを可能にします。この機能によって、Virtual Kubernetesで管理されたVoltStackに対して一斉にアプリケーションを配信することが可能になります。また、VoltStackのグループ化にも対応しており、指定したグループにだけマニフェストを適用することで、特定のVoltStackにだけアプリケーションを配信することもできます。
このVoltStackのセットアップは非常に簡素化されています。利用者のエッジロケーションやデータセンターなどのオンプレミスに展開する場合は、ベアメタル環境向けのインストールイメージや、VMware vSphere用の仮想アプライアンスイメージが提供されており、VoltConsole上で作成したトークンを入力し、ノードのIPアドレスを構成するだけでVolterra Nodeを構成することが可能です。
また、クラウドサービス上で展開する場合は、Microsoft AzureやAmazon Web Servicesでマシンイメージが提供されているため、VoltConsoleに各クラウドの認証情報を設定すると、クラウド上にVoltStackをインスタンスとしてデプロイ可能です。
ネットワークサービス「VoltMesh」
VoltMeshは、VoltStack上に配置したコンテナ間の通信やコンテナに対する外部からのアクセスを可能にするネットワークサービスです。Volterra社は世界各地にリージョンを持ち、各リージョンでRegional Edge(RE)を運用しています。これらのREはVolterraが運用するグローバル・バックボーンネットワークで相互に接続されており、Customer EdgeとしてデプロイされたVoltStackは、デプロイ時にRegional Edgeに対して自動的にIPsecで接続されます。
VoltMeshではHTTPおよびTCPロードバランサーを構成可能です。ロードバランサーの負荷分散対象はCE上で実行されるコンテナアプリケーションのほか、CEからアクセス可能なURLやIPアドレス、外部にあるKubernetesクラスタ上で構成されるサービスを指定することも可能です。また、ロードバランサーのVIP(仮想IPアドレス)公開するのCEを選択することができます。これらの機能によって、異なる拠点で実行されているコンテナに対し、Volterraのバックボーン経由でアクセスすることが可能になります。
下図では、Site-5にデプロイされたApp2というコンテナに対するロードバランサーをApp2という名前で構成し、ロードバランサーの公開先としてSite-1~Site-4を指定します。このように指定することで、Site-1からSite-4のVoltStack内にApp2に対するロードバランサーが構成され、App2の名前解決が可能になり、各サイトのApp1コンテナはCE内でApp2に対してアクセスすると、透過的にSite-5で実行されるApp2コンテナにアクセスが可能になります。
上記の例ではCEにロードバランサーを構成していますが、Volterraが運用するRE上でロードバランサーを公開することも可能です。VoltMeshではロードバランサーだけでなく、ファイアウォール機能も利用することができ、上記のような通信に対してIPレベルやアプリケーションレベルのファイアウォール(L3からL7ファイアウォール、ウェブアプリケーションファイアウォール)を設定することも可能です。
VoltConsole
VoltConsoleは、複数のクラウドプロバイダーやエッジロケーションにまたがるインフラストラクチャとアプリケーションを管理するためのGUIを提供します。
エッジロケーションでエッジデバイスとして機能するVoltStackの管理や、VoltStackに対するアプリケーションの配信機能を持ち、VoltMeshにおけるロードバランサーやファイアウォールなどのネットワークの設定が可能です。また、VoltStackとVoltMeshにより構成されたアプリケーションの状態やレスポンスタイム、エラーレートなどのメトリクスを可視化することも可能です。
Volterraを利用することで、分散されたエッジデバイスに対するアプリケーションの配信と、エッジデバイス間の接続を一元的に管理することが可能になり、エッジコンピューティング環境を比較的容易に実現できます。次回は、今回紹介したVolterraの具体的なユースケースを紹介します。
著者プロフィール
奈良 昌紀
ネットワンシステムズ株式会社 ビジネス開発本部 第1応用技術部 エキスパート
通信事業者のデータセンターにおいてネットワーク・サーバー運用を経験した後、ネットワンシステムズに入社。帯域制御やWAN高速化製品担当を経て、2008年から仮想化関連製品を担当。現在は主にクラウド、コンテナ、仮想インフラの管理、自動化、ネットワーク仮想化を担当。