「ソフトウェアでハードウェアを定義する。使用するハードウェアは、いわゆる“汎用品”であればなんでもいい」──。この流れは、サーバー環境やクライアント環境のみならず、専用機器が必要とされていた分野にも広がりをみせ、ハードウェアのコモディティ化と低価格化によって一層の拍車がかかっている。“新世代バーチャライゼーション”と呼ぶべきソリューションが台頭し始めているのだ。(取材・文/畔上文昭)
●ハードウェアとソフトウェアの分離 バーチャライゼーションのそもそもの目的は「ハードウェアとソフトウェアの分離」にある。そのコンセプトを実装した仕組みとして最も普及しているのが、PCサーバーの仮想化だ。1台、ないし複数の物理サーバー上に複数の仮想サーバー環境を構築し、物理サーバーの資源を共用させ、その使用効率を高める。そんな考え方が、サーバー仮想化の根底には流れている。
そして今、ハードウェアの高性能化と低価格化によって、こうしたバーチャライゼーションの仕組み──つまりは、ハードウェアとソフトウェアを分離させるための技術が、サーバーの仮想化、あるいは、仮想化による物理サーバーの集約化といった目的以外でも用いられ始めている。具体的には、ストレージやネットワークへと、バーチャライゼーションの適用範囲が押し広げられているわけだ。また近年では、クラウドへの移行の前段階として、ITシステムの稼働環境(要するに、ITプラットフォーム)全体を仮想化しようとする動きも活発化している。それも、バーチャライゼーションの適用範囲拡大を後押しする潮流といえる。
こうした流れのなかで、いわゆる「SDx(Software-Defined Anything)」の世界が形成され始めている。SDxとはつまり、ストレージやネットワークなどの専用機器に組み込まれている機能をソフトウェアとして独立させ、低価格な汎用品で専用機器と同様の機能を実現するというものだ。例えば、汎用的なPCサーバーとHDDでストレージ環境を構築する「SDS(Software-Defined Storage)」、ネットワーク機器と同様の環境を構築する「SDN(Software-Defined Networking)」など、さまざまな分野で適用され始めている。また、専用ハードウェアとソフトウェアを一体化させたアプライアンス製品においても、ソフトウェアを切り離し、汎用品を使用するという動きが出てきている。
仮想化もSDxも、ハードウェアとソフトウェアの分離が目的である。その点では、クラウドコンピューティングも、同一線上にあるということを覚えておいていただきたい。
今さら聞けないキーワード「SDx」
SDx(Software-Defined Anything)は、汎用品を使って、専用機器と同様の機能を提供するソフトウェア技術だ。SDxの「x」には、ストレージの場合ならば「S」、ネットワークの場合は「N]などが入る。SDxでは汎用品を使用することから、専用機器として販売されている製品よりも少ない投資で導入でき、柔軟性も高いとされている。そのため、ハードウェアのなかでも高価なストレージ装置やネットワーク機器などの分野で普及が期待されている。ちなみに、マイクロソフトの「Windows」も、ハードウェアとソフトウェアの分離を実現しているという点では、SDxの一種とみなせる。なぜ、Dockerが人気なのか
サーバー仮想化で赤丸急上昇
「Dockerがドカーン」というダジャレがネット上で飛び交うほど、注目を集めている「Docker(ドッカー)」。サーバー仮想化ソフトウェアの仲間だが、ハイパーバイザーではなく、「コンテナ」という方式を採用しているのが特徴だ。
●最新テクノロジーではない 「Dockerが採用しているコンテナという方式は、決して目新しいものではないし、とくにすごいテクノロジーでもない」
こう語るのは、クラスメソッドの大瀧隆太・AWSコンサルティング部シニアソリューションアーキテクトだ。「Amazon Web Services(AWS)」を活用したソリューションプロバイダとして知られる同社は、いち早くDockerをキャッチアップしてきた。
Dockerは、米ドッカーが提供するオープンソースの仮想化ソフトウェアである。対応するサーバーOSはLinuxだけだが、マイクロソフトがWindows Server対応版の開発意向を表明しているという。つまり、Dockerは、ハイパーバイザー型の仮想化ソフトウェア「Hyper-V」をもつマイクロソフトでさえ、無視できない存在というわけだ。
Docker(のコンテナ)の仕組みは図1の通りで、ハイパーバイザーと比較して、ゲストOSが不要なところが最大の特徴だ。ゲストOSを使用しない分、サーバー資源が少なくて済み、起動も速いとされる。ただし、Dockerが注目されている理由は、そこではないと、大瀧氏は指摘する。「Dockerがすぐれているのは技術ではなく、扱いやすさ。アプリケーション開発者にとって扱いやすいことが注目を集めている最大の理由といえる」。
Dockerは、アプリケーションとその実行環境をコンテナとして一つにラッピングする。そのため、Dockerがインストールされている環境であれば、サーバーやネットワークの設定を気にせずに、コンテナごとアプリケーションの実行環境を移すことができる。例えば、テスト環境から本番環境へのアプリケーションの移行作業もグンと効率化される。
「OSやネットワークの設定は難度の高い作業で、インフラ運用管理に関する技術知識が必要とされる。しかし、Dockerを用いれば、その種の設定作業が不要になり、JavaやPHPでアプリケーションを開発するのに似た感覚でインフラが管理できる。その辺りの手軽さが、開発者に受けている」と、大瀧氏は説明する。さらに、「仮想化の設定自体も、ハイパーバイザー型よりも簡単」と付け加える。

クラスメソッドの大瀧隆太氏(左)、佐々木大輔氏 ●クラウドの普及が追い風に もう一つ、Dockerが注目される背景理由として挙げられるのが、クラウド(IaaS)の普及だ。IaaSの普及によって、開発者は、必要なハードウェア環境を、必要なときに、必要なだけ調達できるようになった。一方で現在、多くのIaaSベンダーがDockerをサポートしている。それが、開発者の間でのDocker支持層の拡大へとつながっているのである。
ここで「ハイパーバイザー型ではなぜダメなのか」といった疑問も浮上してくるだろう。
その答えの一つとして、「IaaSでは仮想サーバーが提供されているが、その上で仮想サーバーを稼働させることができない」といった点が挙げられる。対するDockerならば、複数のコンテナをIaaSで調達した仮想サーバー上に配置することができる。
ただし、クラスメソッドの佐々木大輔・AWSコンサルティング部札幌オフィス エリアマネージャは、それとは少し違った見方をしている。
「IaaSの仮想サーバー上で、さらに仮想サーバーを構築するというニーズはそもそもない。仮想環境が新たに必要なら、仮想サーバーを追加で契約すればいいだけの話だ」。
●現在はDockerの適正を検証中 注目度の高さとは裏腹に、国内におけるDocker活用例はまだ少ない。クラスメソッドにしても、先進的なユーザーとともにDockerの検証を進めている段階にあり、本番稼働が始まったシステムはないという。ただ、これまでの検証を通じて、Dockerの向き・不向きはつかめてきたようだ。
大瀧氏は言う。「Dockerは、負荷の増減に応じてスケールアウトしたり、スケールインしたりするようなウェブ系・ゲーム系のシステムに向いている。データベースを用いたミッションクリティカル系のシステムに適用しようとは考えていない」。
Dockerの普及はまだまだこれからの段階にある。だが、企業システムのクラウド化が着実に進むなかで、IaaSとの相性がよいとなれば、取り組む価値は十分にありそうだ。
[次のページ]