シリコンバレーテクノロジー 2016.04.07

VMwareとどう違う?Docker(ドッカー)に見るコンテナ型仮想化サービス

こんにちは。Nissho Electronics USA山本大輔です。

仮想化の世界における現在の大きなトレンドであるコンテナ。既に多くの企業が使い始めていると思います。今回はこのコンテナ・テクノロジーに焦点を当てた記事をお届けします。

コンテナ型仮想化サービスとは?

皆さんがよくご存知のコンテナでVMware や KVMに代表される ハイパーバイザー型における完全仮想化のサービスを提供するものが存在します。この新しいコンテナ・テクノロジーは、Docker社が提供するコンテナ型の仮想化サービスです。仮想マシンごとにゲストOSが必要でハードウェアリソースを細かく分割して占有させるハイパーバイザー型と異なり、コンテナ型の仮想化サービスは同じOS上で分離されたコンテナ空間を用意することができるので、オーバーヘッドを少なくすることができます。

(画像:Docker社のWebサイトより)

Docker(ドッカー)はコンテナ管理ソフトウェアであり、作成したコンテナを他のユーザと共有することができ、瞬時にコンテナの作成が別のサーバ、クラウドで出来、且つ廃棄も簡単に出来るなど、そのポータビリティ性も注目されています。2016年3月21日〜3/26日の間に世界各地でDockerの3周年を祝う「Docker Birthday #3」というMeetupが開催されました。

仮想マシンはコンテナに取ってかわられる?

それでは何故、このようなコンテナが注目されているのでしょうか?その背景には現在の仮想サーバでは実現できなかったものがコンテナにはできるという点にあります。

例えば、一台のサーバもしくは仮想マシン上で複数のアプリケーションがOSのリソースを共有して動作している場合において、あるアプリケーションが攻撃されるようなことがあれば、リソースを共有している他のアプリケーションにも影響が及びます。セキュリティの問題以外にも特定のアプリケーションによるリソースの占有などの問題も起きるでしょう。

こういった問題を解決するためにITチームはサーバ仮想化の技術を使い、アプリケーションごとに仮想マシンを用意することでアイソレーションを実現しますが、アプリケーションの数が増えれば増えるほど、仮想マシンの数も増えることになり、OSやアンチウィルスなどのライセンスコストがはね上がり、且つハードウェアリソースの有効活用が難しくなります。

一方、コンテナはアプリケーションレベルでのアイソレーションが可能です。つまり、一つのOS上で複数のアプリケーションを分離した環境で動かすことが可能になります。そのためITチームはアプリケーションごとに仮想マシンを用意する必要がなくなるため、仮想マシン毎にOSを用意する必要がなく、ハードウェアリソースを有効に使うことができます。

一方でコンテナを使う上で最も大きな懸念点はセキュリティです。コンテナはアプリケーションを分離しますが、共通のOSで動いていることを忘れてはいけません。OSの脆弱性を突かれた場合に複数のアプリケーションへの影響が出る可能性があります。影響範囲を狭めるために仮想マシン上でコンテナを動かすというのも一つの解決策です。つまり、コンテナの強みが弱みにもなっているということです。

アプリケーションによって、そのどちら側にバリューを感じるかがポイントで、当然使い分けされていきます。コンテナは既存の仮想マシンを完全にリプレースするものではありません。2016年2月に開催されたContainer Worldでも盛んにこのトピックは取り上げられており、例えば、コンテナはマイクロサービス型のアプリケーションには理想的ですが、連携の必要のない一枚岩のアプリケーションなどにはコンテナのメリットはあまり無いであったり、コンテナは簡単に作成、複製が出来ることからコンテナのライフサイクルマネジメントが困難で不要なコンテナがはびこり、逆にコストがかかる可能性があるなどの指摘がありました。

Container World 2018レポート:コンテナ基盤利活用のおさえどころ – eBay、IBM、MetLife等のユーザ事例を紹介

主戦場はパブリック・クラウド

エンタープライズがオンプレミスにコンテナを作るというよりも、コンテナはむしろパブリック・クラウドで最適なツールといえます。クラウドのユーザが仮想マシンと思って使っているものが実はコンテナで動いているというケースも多いようです。

コンテナを活用することでリソースの有効活用ができるということは、巨大なリソースを保有しなければならないクラウドプロバイダーにとって大きなメリットをもたらします。また、ポータビリティ性が高いという特徴もクラウド環境に非常にマッチします。アメリカの大手クレジットカード会社であるキャピタル・ワン社もクラウドへのマイグレーションが容易であるという理由からコンテナを利用しています。

パブリッククラウドの覇者AWSもAmazon EC2 Container Service(ECS)というDockerをサポートしたコンテナ管理サービスを提供しています。ECSを使用することで、リソースニーズと可用性要件に基づいて、クラスタ全体のコンテナの配置をスケジューリングできます。AWSの大規模ユーザでも知られるNetflixもユーザエクスペリエンスの向上やディベロッパーの生産性向上のため、1,000以上のマイクロサービスをコンテナを使って運用しています。

コンテナを取り巻く環境

Dockerは基本機能だけでは自らがインストールされているホストのコンテナしか管理できないため、複数ホストのコンテナを管理する仕組みが必要となります。上述したAWS以外にもコンテナを取り巻くエコシステム全体が注目されています。事実、コンテナのエコシステムを強化するためにコンテナ・エコシステムに関連する事実上全ての企業が参加するOpen Container InitiativeというLinux Foundationのプロジェクトも生まれました。成長著しいコンテナ・エコシステムの中でもKubernetes、Mesosといったコンテナの管理を行うスケジューリングツールが注目されている筆頭でしょうか。

大手ネットワーク・ベンダーのJuniperもContrailのKubernetes連携などを発表しています。Contrailは様々な仮想環境に対応しているため、仮想マシンやベアメタルからコンテナへのシームレスな移行も実現できます。コンテナ化を見据えたネットワーク環境の構築なども今後求められてくるでしょう。

コンテナがもたらす世界

コンテナ・テクノロジーにより、アプリケーションの開発と実環境への素早い展開と運用の両立、即ち「DevOps」の実現が現実的になってきました。デジタルビジネスの普及に伴い、ビジネスニーズの多様化とその変化は激しくなってきています。

革新的なビジネスを生み出すためにはITシステムには柔軟性とスピード感が求められます。コンテナ・テクノロジーはまさにデジタルビジネス時代に適したソリューションと言えるでしょう。一方で、まだまだ成熟した市場とは言えず、エコシステム全体をウォッチし続け、最適なソリューションを見極める必要があります。

Nissho Electronics USAは上記のようなトレンドを把握の上、来るべきデジタルビジネス時代に備え、様々な観点からシリコンバレーで調査を行い、日商エレクトロニクスと連携し、お客様に対し最適な提案をしてまいります。お問い合わせフォームより、どうぞお気軽にお問い合わせください。

 

この記事を書いた人

この記事を書いた人

Daisuke Yamamoto

2014年5月に渡米しNissho USAのManager of Marketing & Business Developmentに着任。主にCloud, Storageエリアを担当。豊富な営業経験から顧客需要を満たすソリューション発掘を得意とする。

この記事をシェアする

私たちと話しませんか?