仮想化とは?コンテナのメリットと課題とは?〜仮想マシンとの比較と、Kubernetesが注目される理由(1/3)2019/12/18今、急速に利用が進んでいる仮想化技術としてコンテナが注目を集めています。開発者に様々なメリットをもたらす一方、運用管理の観点からは様々な課題も存在しています。このページではコンテナ初心者に向けて、従来の仮想マシンと比較しながら、コンテナの仕組みやメリットについて解説します。コンテナ特有の課題や、それらを解決するツールとして注目を集めるKubernetesとは何か、そして残された課題に対してVMwareがどのような取り組みを行っているのかについてもご紹介します。コンテナの仕組みとメリットコンテナとは、アプリケーションの実行環境をパッケージ化し、ホストOSからプロセスやネットワークなどのリソースを隔離した、一種の仮想環境です。アプリケーションの側からは、それぞれのコンテナは別のコンピューター上で稼働しているように見えます。簡単な例を挙げると、コンテナ技術を使うことで、同じホストOSの上で、バージョンの異なるPHPを同時に動かすこともできます。コンテナ技術の中核となるのが、ホストOS上で稼働するコンテナランタイムと呼ばれるソフトウェアです。NamespaceなどのOSの機能を使い、アプリケーションやリソースを分離し、コンテナを動かす役割を担っています。コンテナランタイムの上では、複数のコンテナを稼働させることができます。コンテナ技術が注目を集めている背景には3つのメリットがあります。それぞれの特徴を、一般的な仮想マシン(ハイパーバイザー型仮想化)と比較しながらご説明します。アプリケーションを簡単、迅速に起動できること仮想マシンは起動に数分を要するのに対し、コンテナであれば数百msecでの起動が可能と言われています。コマンドライン一つで、迅速にコンテナ環境の作成や破棄を行えるのも特徴です。リソースを節約し、効率的に利用できることハイパーバイザーを使わず、ホストOSのカーネルを共有することで、CPU、、メモリといったリソースを節約することができます。アプリケーションをパッケージ化してどこでも起動可能オンプレミス環境のベアメタルサーバーや仮想マシン、様々なパブリッククラウドなど、場所を選ばずアプリケーションを稼働させることができます。これらの違いはどこから生じるのでしょうか。仮想マシンとコンテナの最大の違いは、分離するレイヤーにあります。詳しく見ていきましょう。仮想マシンでは、ハイパーバイザーがハードウェアのリソースを分割して、OSレベルで仮想環境を分離しています。そのため、Linux、Windowsといった様々なOSを混在させることが可能です。ネットワークの構成も物理マシンと同様に扱えるので、今まで通りIP管理もできます。コンテナでは、カーネルを共有し、アプリケーションレベルでのみ分離を行っています。カーネルを共有することで、オーバーヘッドが減り、高速起動やリソースの有効活用が可能になります。Translation)を介さねばならないといった特徴があります。これらの特徴に加えて、コンテナが開発者に支持されている理由には、豊富なAPIにあります。code(IaC)を実現することができます。物理インフラを意識せずに、軽量なコンテナを迅速に作成・廃棄・運搬することができる特徴が、開発者に大きなメリットをもたらしています。ThinAppの概要、インストール、運用まで〜ニュースレターを購読IT価値創造塾の更新情報や、VMwareの最新情報、セミナーやイベントなどの情報を不定期でお届けします。Inc.本サイトに掲載されているコンテンツの内容、製品・ソリューションやスポンサーなどの情報は、予告なく変更となる場合があります本サイト内に記載されている社名、製品名またはサービス名は、各社の商標または登録商標ですTOP。