本文へジャンプします。

TOP

ニフクラクラウドナビ

クラウド トップ>クラウドナビ>クラウド技術解説>仮想化の新潮流「コンテナ型仮想化」とは

仮想化の新潮流「コンテナ型仮想化」とは

クラウドを支える基盤技術の1つ「仮想化技術」は日々進歩し、新しい技術が導入されています。なかでも近年、注目を集めているのが「コンテナ型仮想化」です。

ITシステムの効率化を目指して導入する企業も増えてきましたが、実際にコンテナ型仮想化は、どのような技術で、どうシステムを効率化できるのでしょうか。

コンテナ技術が登場した背景

コンテナ技術が登場した背景

従来は1台の物理マシン上には、1つのOSが起動し、そのOS上でさまざまなアプリケーションが利用されていました。これに対して仮想化環境では、物理マシン上で「ハイパーバイザー」や、「ホストOS」と「仮想化ソフト」を起動させることで、1つの物理マシン上で複数の「ゲストOS」を起動することができます。

仮想化は、ITシステムの開発面や運用面の変化へ対応する解決手段として広く普及。複数のOS環境とアプリケーションを1つのファイルとして取り扱え、「仮想マシン(VM)」を簡単に移動できる可搬性の高い基盤を提供してくれていました。

しかし、仮想化ソフトを使用した仮想化環境にもデメリットがあります。複数のOSを集約した場合の性能劣化や、仮想化ソフトウェア介在による障害発生時の問題切り分けの複雑化などが指摘されていました。

そこで注目されているのが、「コンテナ型仮想化」です。

コンテナ技術とは?

コンテナ型の仮想化とは、ゲストOSの起動をせずにゲストOS対応のアプリを起動させる仕組みのことです。具体的にはアプリケーションの起動に必要なライブラリなどを含めた「コンテナ(従来の仮想マシンに相当)」を「コンテナエンジン(仮想化ソフトに相当)」上で動作させています。

一見、ホストOS型の仮想化技術に似ていますが、大きく異なる点があります。

ハイパーバイザー型にしろ、ホストOS型にしろ、従来の仮想化技術では、仮想マシン上でゲストOSを起動する必要がありました。これに対してコンテナ型ではゲストOSを起動することなく、アプリケーション実行環境を構築することが可能です。

アプリケーション実行には不要な処理やライブラリが不要になるので、メモリやCPUリソースを余分に使うことがありません。

コンテナ技術のメリットと注意点

コンテナ技術のメリットを整理してみましょう。

では、コンテナ型にはデメリットはないのでしょうか。こちらも整理してみます。

コンテナ技術のメリット
とにかく処理が軽量
  • 必要最小限のCPUやメモリーしか使用せず、負荷が小さく高速な動作を実現
  • アプリの起動が速くリソース効率が良いので、コスト低減&パフォーマンス向上が可能
環境構築に要する時間の大幅な削減
  • コンテナ環境の構築は比較的容易な上、コピーも簡単なので、作業時間の大幅な短縮が実現できる
リリースサイクルの高速化に関わる「DevOps」と相性が良い
  • 開発チームと運用チームが協力しあって開発・運用を進めていく手法「DevOps」にコンテナ型は適している
  • コンテナ型は、環境構築作業の工数削減、作業負荷の軽減、本番環境と開発環境を同一の状態で構築できることによる本番運用における環境要因によるトラブルの減少、障害時における代替環境への切替え時間の短縮、および作業負荷の軽減などが可能
コンテナ技術のデメリット
  • カーネルを他のコンテナと共有するため、個別に変更できない
  • コンテナ環境でベースとなるOSと異なるOSのシステムを動かすことはできない
  • 新しい技術であり学習コストが比較的高い

コンテナ技術ブームを牽引する「Docker」とは

「Docker(ドッカー)」とは、非常に軽量なコンテナ型のアプリケーション実行環境です。以下に特長をまとめます。

Dockerの特長
  • OSの内部に独立したアプリケーションの実行環境=コンテナを生成することができる
  • リソース消費量が非常に少なく1台に物理サーバーに多くのコンテナを稼働させられる

アプリケーション開発の面では、コンテナの動作に特化したITインフラが登場しています。例えば、「Google Cloud Platform(Container Engine)」や「Amazon Web ServicesのAmazon Elastic Container Service(Amazon ECS)」などがサービスとしてすでに提供されています。

コンテナの動作環境を提供するサービスで、利用者は仮想サーバーを意識せずにコンテナを動作させることができます。このようなITインフラが増えることで、実際のサーバーやOSを意識しないアプリケーション開発が増えていくと予想されています。

また、通常、Dockerの実行環境は1台のホストのみでの環境ですが、実際の運用では異なるホスト間でコンテナをやり取りする必要も生じます。それを実現するのが「Kubernetes」です。「Kubernetes」を使用することで、複数のホストから構成される実行環境を同一のホスト環境として利用できるため、コンテナの数を増やすなどのスケールアウトにも容易に対応することが可能になります。

コンテナと仮想マシンの使い分けがポイント

従来の仮想マシンは、実行環境が変われば、ハードウェアやOSの設定確認が必須になるため、コンテナ型よりも手間がかかってしまいます。

しかし、仮想マシンは1つの独立したサーバーとして機能するため、仮想マシンごとに異なるOSを動かせるというメリットもあります。これに対してコンテナ型は1つのOSから作られているため、同じホスト上では同一のOSである必要があります。

システム資源の負担が大きく可搬性は低いが、自由度が高い仮想マシン。システム資源の負担は小さく可搬性は高いが、OSが限られるコンテナ。それぞれのメリットとデメリットを把握した上で、用途に応じて使い分けることが重要です。

クラウド移行のポイントを徹底解説無料ebookをダウンロード

導入のご相談はお電話でも受け付けております。

0120-22-1200

0120-22-1200

受付時間:平日9:00〜17:45
※携帯電話・PHSからもご利用可能