CLOUD NAVIクラウドとは?からクラウドを支える技術や関連用語まで解説

基礎知識

「仮想化」とは? 仕組みやクラウドとの違いを確認しよう

2020年12月08日

クラウドサービスは現代的なITシステムを構築するにあたって、必要不可欠とも言える存在です。クラウドのメリットは、ITリソースをオンデマンドに必要な分だけ利用できる柔軟性ですが、それを支えている技術が「仮想化(Virtualization)」です。

クラウドサービスは、仮想化技術なしには成立せず、サービスが提供するITリソースも仮想化されたもの(例: 仮想サーバー)であるため、この2つを混同している人もいるのではないでしょうか。

本記事では、仮想化のメリットや仮想化とクラウドとの違いについて解説します。

仮想化とは

仮想化とは、サーバーなどのハードウエアリソース(CPU、メモリ、ディスクなど)を抽象化し、物理的な制限にとらわれず、ソフトウエア的に統合・分割できるようにする技術です。

Virtualという英単語は、「仮想」と訳されるのが一般的ですが、この単語はもともと「実質的に」や「事実上の」といった意味を持っています。つまり、「仮想化されたサーバー」は「偽物のサーバー」ではなく、「本物の(物理的な)サーバーではないが、ソフトウエアによって実質的に本物と同じように扱えるサーバー」と解釈するとわかりやすいでしょう。

現代のように仮想化技術が普及していなかった頃は、サーバーは用途ごとに専用のハードウエアを用意して構築するのが一般的でした。つまり、Webサーバー、メールサーバー、ファイルサーバーなど、サーバーの種類や数が増えるごとに保有するハードウエアの台数も増えていたわけです。しかし、サーバーを仮想化することで、1台の物理サーバーの上に複数の仮想サーバーをソフトウエア的に作成し、同時に動かすことができるようになりました。

サーバーの仮想化を行うには、専用の仮想化ソフトウエアが必要になります。仮想化ソフトウエアとしては、主にPCで利用されているオラクルの「Virtualbox」、FJcloud-V(旧ニフクラ)で採用しているVMwareの「VMware vSphere®」、Microsoftの「Hyper-V」などが有名です。また、サーバーだけでなく、ストレージやネットワーク、デスクトップ環境やアプリケーションといったリソースの仮想化も利用されています。

仮想化のメリット

従来のようにハードウエアをそのまま利用するのに比べ、仮想化には多くのメリットがあります。サーバーの仮想化を例にとると、具体的には以下のメリットが挙げられます。

効率的なリソースの活用

従来のように、サーバーごとに専用のハードウエアを利用していると、用意したハードウエアの性能を効率よく使い切ることができません。その理由は、サーバーごとの稼働率の違いです。例えば、社内用のファイルサーバーはほとんど使われていないのにインターネットに公開しているWebサーバーはアクセスが多く、常に高い負荷がかかっているというようなケースが考えられます。

また、サーバーのスペックは多くの場合、ピーク時の負荷を捌ききれるように考えて選択されるため、ピーク時以外では必然的に余剰リソースが発生してしまいます。しかし、ハードウエアの間を越えて、CPUやメモリなどのリソースを融通しあうことはできません。そのため、あるサーバーは常にリソースを余らせているにもかかわらず、その隣のサーバーは常にリソース不足に苦しんでいる、というジレンマも発生しがちです。

しかし、サーバーを仮想化すれば、複数の仮想サーバーを1台の物理サーバー上に集約できます。物理サーバーが持つリソースを複数の仮想サーバーに自由に配分できるため、リソースを効率的に使用できます。また、物理サーバーが持つリソースを越えて仮想サーバーにリソースを割り当てる「オーバーコミット」という仕組みを利用すれば、さらに集約効率を高めることも可能です。

仮想化によるリソースの最適化によって「余剰設備」を保有しなくて済み、導入コストや運用コストの削減に繋がります。

ハードウエアの運用工数が軽減

複数のサーバーを1台のホストに集約すれば、保有するハードウエアの数を少なくすることができます。これはハードウエアの導入コストだけでなく、メンテナンスにかかる工数の削減にも繋がります。また、仮想化にVMware製品の「VMware vSphere®」を利用している場合、仮想サーバーのメンテナンス作業やパッチの実装がダウンタイムなしで可能となり、結果として運用負荷をより軽減することができます。

ファイル感覚でサーバーを管理

仮想サーバーは、ソフトウエアとして扱えるサーバーです。CPU、メモリ、ディスクといったサーバーの構成情報やディスク内にインストールされているOSやアプリケーションといったデータもすべてファイルとして管理できます。つまり、一般的なファイルをコピーや移動、削除するのと同じ感覚でサーバーを管理できるのです。

これにより、サーバーのバックアップやサーバーの複製といった作業も手軽に行えるようになります。例えば、サーバーのハードウエアが故障した場合、従来であればハードウエアの修理や交換、あるいはディスクを取り出して予備のハードウエアに移植するといった作業が必要になり、復旧までに時間がかかるのが常でした。しかし、仮想サーバーであれば、サーバーを別のホストマシン上で再起動するだけで復旧が可能です。こうした特長は、「可用性」の向上にも繋がります。

仮想化のデメリット

仮想化は、メリットばかりのように思えるかもしれませんがデメリットも存在します。

仮想サーバーは、処理速度や応答速度などのパフォーマンスが物理サーバーを直接利用した場合に比べて、低下してしまうことがあります。こうした仮想サーバーのパフォーマンスの問題は、クラウド環境であれば、オンデマンドにリソースを追加することで対応できます。しかし、オンプレミスに仮想化環境を構築している場合は、ホストマシンのリソースが枯渇してしまうと、それ以上仮想サーバーをスケールアップできなくなってしまいます。そのため、必要な仮想サーバーを十分に動かせるだけのリソースを事前にしっかりと確保する必要があるでしょう。とはいえ、リソースを余分に確保しすぎると、今度は使用されていない余剰リソースが増えてしまい、仮想化による集約・最適化のメリットが薄れてしまいます。余裕の確保と無駄の削減は表裏一体の関係にありますから、どこで折り合いをつけるのかを見極めることも大切です。

仮想化環境は仮想サーバーをはじめ、仮想化ソフトウェアによって作られた様々なコンポーネントによって構成されています。そのため、単独の物理サーバーやその上で動作するOSやアプリケーション単位で行ってきた従来のセキュリティ対策では不十分なことがあります。また、運用には物理環境とは異なる仮想化環境に特有の知識やワークフローが必要になることもあり、「今までの常識が通用しない」「仮想化環境を熟知した運用担当者が必要」といった事態も起こりがちです。

とはいえ、今や仮想化技術はさまざまなサービスの根幹をなす基礎技術です。デメリットがあるから避けるのではなく、仮想化環境に特有の事情を理解した上で、正しく活用していくことが求められています。

仮想化とクラウドの違い

ここまでは仮想化についての概要を解説しましたが、それではクラウドと仮想化は一体なにが違うのでしょうか。

クラウドとは

クラウド」とは、ユーザーがインターネットなどのネットワーク越しにサーバー・ストレージなどのコンピューティングリソースやアプリケーションソフトウエアなどを利用する形態のサービス全般を指す言葉です。クラウドはユーザーの利用形態によって、大きくIaaS/PaaS/SaaSの3種類に分類されます。また、文脈によっては、サーバーやストレージ、ネットワークなどのインフラをユーザーが自由に組み合わせてシステムを構築できるIaaSのことを指して、単に「クラウド」と呼ぶこともあります。

仮想化は「技術」、クラウドは「サービス」

前述の通り、仮想化とはハードウエアを抽象化し、リソースを効率よく利用できるようにするための技術のことです。対してクラウドとは、ネットワーク経由で利用することができるサービスの呼び名です。

このように仮想化とクラウドは、そもそも指している対象がまったく異なる言葉です。しかし、AWSやFJcloud-Vなどの「クラウド(IaaS)」は、サーバーやストレージといったITリソースを「仮想化」して管理・提供しているなど、仮想化とクラウドは非常に密接な関係にあります。そのため、少なくない人がこれらを混同してしまっているようです。

DevOps」に代表されるように、現在のソフトウエアの開発スピードは非常に高速化しています。従来のような「ハードウエアの調達に2週間」「セットアップに1週間」といったスピード感では、こうした高速な開発サイクルについて行くことができません。必要な時に必要なだけのITリソースを、迅速に確保できるクラウドが重宝される背景には、こういった理由が存在します。そして、クラウドがITリソースをネットワーク越しに迅速に提供できるのは、それらのリソースが仮想化されているからにほかなりません。ハードウエアをそのまま管理していては、こうしたサービスは実現不可能でしょう。仮想サーバーではなく、物理サーバーを提供するIaaSも世の中には存在しますが、要求したスペックによっては提供までに時間がかかるなど、柔軟性に欠けるのが現実です。

クラウドサービスが仮想化しているのは、サーバーなどのインフラだけに限りません。GmailやDropboxなど、クラウド上で複数のユーザーが同じアプリケーションを使用するSaaSでは、アプリケーションそのものを仮想化しています。ネットワーク越しにデスクトップをリモートから利用可能とするクラウドサービス(DaaS)では、内部的にデスクトップを仮想化する技術が使われています。

現在のクラウドサービスを実現するには、仮想化の技術が必要不可欠となっているのです。

まとめ

前述のように、仮想化はクラウドサービスを実現するために必要不可欠の技術です。仮想化技術によってクラウドサービスは飛躍的に発展し、今では多くの企業でコスト最適化や運用工数の削減などを目的に利用が広がっています。

FJcloud-Vでは、クラウドの概要やメリットなどを解説した「ホワイトペーパー」を無料で配布しています。クラウドについて、さらに詳しく知りたい方は、ぜひ参考にしてください。

PageTop