こんにちはマサです。
仮想化という言葉を聞いたことはあるけど、詳しくはわからないという方も多いと思います。
エンジニアとして働くのであれば必須のスキルになります。
現在、ほとんどの企業が仮想化を使用してビジネスを行なっていると思います。
最近よく聞くクラウドなども仮想化の技術が大きく関わっています。
ITインフラでは、既にたくさんの企業が使っている仮想化に技術について解説していきます。
仮想化とは?
仮想化とは、物理的なサーバやストレージのリソース(空き容量)を効率的に使うための技術で、リソースを論理的に分割・統合を可能にします。
仮想化はリソースの無駄をなくすため技術です。
サーバはCPUやメモリ、HDDなどのパーツで構成されています。
業務用で使っているサーバのCPUやメモリが、100%稼働していることはほとんどありません。
例えば、サーバ上でアプリケーションが稼働中で50%のリソースを使用しているとすると、残りの50%のリソースは使用していないことになります。
仮想化を使うことで、無駄をなくすことができます。
上の画像のように物理サーバが100GBで3つのプロジェクトを同時に進めたい時に、1つの物理サーバで3つの仮想サーバを作ることができます。
サーバを分けることでデータの管理がしやすくなり、必要に応じて仮想サーバを作ったり消したりできます。
仮想化は無駄なリソースをなくして、有効活用しよう!という技術だよ。
昔からある技術だけど、最近よく聞くクラウドも仮想化の技術が使われているよ。
サーバの仮想化とは?
サーバの仮想化とは大きく分けて2つの方法があります。
「ホストOS型」と「ハイパーバイザー型」です。
ホストOS型
上の画像のように、ハードウェア→ホストOS→仮想化ソフト→仮想マシン→ゲストOS→アプリ、の順番で構成されています。
普通のPCなどでもホストOS型の仮想マシンを手軽に作れるので、
Webアプリを作る時に実験としてVertual Box(Vagrant)にLinuxをインストールして利用しています。
※主な製品「VMware Workstation/Player/Fusion」「Microsoft Virtual PC」「Oracle VirtualBox」など
- メリット
手軽に作ることができる - デメリット
ホストOSとゲストOS同時に処理が必要なので、処理速度が遅くなる傾向にある
ハイパーバイザー型
上の画像のように、ハードウェア→ハイパーバイザー→仮想マシン→ゲストOS→アプリ、の順番で構成されています。
主に企業や政府などの大規模なシステム向けなので、エンジニアや業務に携わる方しか使用する機会はないと思います。
※主な製品「VMware vSphere」「Microsoft Hyper-V」「Citrix XenServer」など
- メリット
ハードウェアを直接制御できるので処理速度が速い - デメリット
専用のハードウェアが必要なためコストが高い
「ホストOS型」と「ハイパーバイザー型」大きな違いはハードウェア上で直接ハイパーバイザーをインストールしていることだよ。
ハイパーバイザー型は「ベアメタル」とも呼ばれてるよ。
仮想化のメリット・デメリット
仮想化がどのように使われているかは理解していただけたと思います。
仮想化のメリット・デメリットについて解説します。
メリット
メリット
|
- リソース(空き容量)の無駄をなくすことができる
大半のサーバはCPUやメモリの使用率は低くリソースが余ることが多いです。1台の物理サーバに多くの仮想サーバを作ることでリソースの無駄をなくすことができます。 - 物理的に設置する必要がなくなる
仮想化すれば、物理サーバを置く必要がないので設置する場所と電力などが必要なくなります。 - 災害などの緊急事態に対して強くなる
仮想サーバであれば、バックアップを取ることも簡単です。
例えば、遠隔地にバックアップ環境を準備することで災害時にもサービスの運用を継続できます。 - コストが安くなる
コスト削減はリソースの無駄の排除や物理的なスペースや電気代など、物理サーバであれば必要であろうコストを削減できます。
デメリット
デメリット
|
- 小規模な環境ではコストが高くなる可能性がある
サーバ仮想化のメリットをうまく活かすことができず、リソースの効率化ができない可能性がある。 - 仮想化環境への知識と経験が必要
仮想サーバの場合、物理サーバとは違う技術や知識が必要です。
例えば、仮想サーバの障害発生時には原因を突き止める必要があるため、運用をするには経験者や専門的な技術を持った人材が必要です。
仮想化とクラウドの違い
仮想化は「技術」の名前で、クラウドは「サービスや環境」の名前です。
これだけではわからないと思うので、もう少し深掘りします。
仮想化とクラウドの違いは混同されがちですが、物理的なサーバー上に仮想的なリソースを分割したり統合して、リソースの無駄をなくすような技術を”仮想化”と読んでいます。
仮想化の技術を使用して、ネットワーク経由でサービスを提供するのがAWSやAzure、GCPなどのクラウドサービスです。
ですので、クラウドサービスの裏側では仮想化技術が使われており、AWSやAzure、GCPは世界各国多くの地域にデータセンター(物理サーバー)を設置して、サービスの安定性やセキュリティの確保をして企業や1ユーザーが利用しやすいような環境を用意してくれています。
今回のまとめ
- 仮想化はリソースの無駄をなくすため技術
- 「ホストOS型」と「ハイパーバイザー型」がある
- 仮想化によって多くのメリットがあるが専門知識が必要
現在、仮想化については日々技術が開発されており、最新の情報を勉強する必要があり、私も現在勉強中の一人です。
「クラウドとは?わかりやすく解説!」というテーマで記事も書きましたので、読んでいただけたら嬉しいです。
最後まで読んでいただきありがとうございました。
コメント