メニュー

コンテナと 仮想 マシン(VM): その 違いとは?

Doug Jones
Doug Jones
109,305 人が閲覧
451 Researchによる最近の調査によると、アプリケーション コンテナの導入は2020年までに年間40%増加すると予測されています。コンテナによって、迅速なアジャイル開発をかつてないほど簡単に実現できるようになっています。しかし、コンテナの基礎知識については、いまだに次のような疑問があります。
  • 仮想マシンと何が違うのか?
  • コンテナが一時的で使い捨てであるという性質を持つ場合、永続的ストレージと合わせてコンテナを使用するにはどうすればよいか?
  • コンテナは既存の仮想化ソリューションやオーケストレーション ソリューションをどのように補完するのか?

仮想マシン(VM)とコンテナの違い

このブログ記事では、1つ目の質問「仮想マシン(VM)とコンテナは何が違うのか」について説明します。仮想マシン(VM)とはサーバの処理能力と容量が向上しましたが、これまで、ベアメタル アプリケーションではこの新たな豊富なリソースを活用できませんでした。そのため、物理サーバ上でソフトウェアを実行して特定のハードウェア システムをエミュレートするように設計されたVMが誕生しました。ハイパーバイザー(仮想マシン モニタ)は、VMを作成および実行するソフトウェア、ファームウェア、またはハードウェアです。これは、ハードウェアと仮想マシンの間に存在するものであり、サーバを仮想化するために必要です。

各仮想マシン内では、固有のゲスト オペレーティング システムが実行されます。オペレーティング システムが異なるVMも同じ物理サーバ上で実行できます。UNIX VMはLinux VMと一緒に配置できます。各VMにはそれらが提供する独自のバイナリ、ライブラリ、アプリケーションがあり、VMのサイズは数ギガバイトになる場合があります。 

マシン仮想化とコンテナの比較のインフォグラフィック

サーバ仮想化はさまざまなメリットをもたらしました。中でも特に大きなメリットは、アプリケーションを1つのシステムに統合できることです。1台のサーバで1つのアプリケーションを実行していた時代は終わりました。仮想化によって、ディザスタ リカバリ(DR)サイトのハードウェアでプライマリ データセンターをミラーリングする必要がなくなったため、設置面積の削減、サーバ プロビジョニングの高速化、DRの向上により、コスト削減が実現されました。

また、開発でも、この物理的な統合によるメリットがありました。大規模で高速なサーバの使用率が向上し、使用しなくなったサーバをQA、開発、またはラボ機器に大規模に転用できるようになったからです。   しかし、このアプローチには欠点がありました。各VMには独立したオペレーティング システム イメージが含まれているため、メモリとストレージの設置面積にオーバーヘッドが生じます。そのため、この問題によって、開発とテストから本番環境、ディザスタ リカバリに至るまで、ソフトウェア開発ライフサイクルのすべての段階が複雑になります。また、このアプローチでは、パブリック クラウド、プライベート クラウド、従来型データセンター間でのアプリケーションのモビリティが大幅に制限されます。コンテナとはオペレーティング システム(OS)の仮想化はこの10年で普及が進み、ソフトウェアをあるサーバ環境から別のサーバ環境に移行したときに、ソフトウェアを予測どおりに正常に実行できるようになります。一方、コンテナでは、これらの分離されたシステムを単一のサーバまたはホストOS上で実行する方法を提供します。

コンテナは、物理サーバとそのホストOS(LinuxやWindowsなど)の上に配置されます。各コンテナはホストOSカーネルを共有し、通常はバイナリやライブラリも共有します。共有コンポーネントは読み取り専用です。そのため、コンテナは非常に「軽量」であり、VMのようにサイズが数ギガバイトになったり、起動に数分かかったりせず、サイズはわずか数メガバイトで起動も数秒で完了します。

コンテナでは管理オーバーヘッドも削減されます。共通のオペレーティング システムを共有しているため、バグ修正やパッチ適用などを行う必要があるのは1つのオペレーティング システムだけです。この概念は、ハイパーバイザー ホストでの体験と似ています。管理ポイントは少なくなりますが、フォールト ドメインはわずかに高くなります。要するに、コンテナはVMよりも軽量でモビリティに優れています。まとめると、仮想マシンとコンテナにはいくつかの点で違いがありますが、主な違いは、コンテナではOSを仮想化し、単一のOSインスタンス上で複数のワークロードを実行できる点です。仮想マシンの場合、ハードウェアを仮想化して、複数のOSインスタンスを運用します。コンテナのスピード、即応性、モビリティのおかげで、コンテナもソフトウェア開発の合理化に役立つ新たなツールとなっています。

NetApp®はコンテナ テクノロジを重視しており、ソフトウェア開発のスピードと即応性をさらに高めるイノベーションの実現に取り組んでいます。そこで、NetAppでは、永続的ストレージを自動かつシームレスにすることを目指し、Tridentを開発しました。Tridentの最新リリースは、GitHubNetAppのコンテナ ソリューションのページでご覧ください。詳細やご不明な点については、netapp.ioのthePubをご覧ください。

Doug Jones

Doug Jonesは、NetAppのシニア プロダクト サービス マネージャーであり、移行サービスのポートフォリオ戦略を率いています。 デューク大学フクア スクール オブ ビジネスで総合的経営のMBAを、フロリダ アトランティック大学でコンピュータ サイエンスの学士号を取得しています。現在は、ノースカロライナ州アッシュビル都市圏に居住しています。

Doug Jonesの投稿をすべて見る

次のステップ

Drift chat loading