仮想化とは
仮想化は、サーバー、ストレージ、ネットワーク、および他の物理マシンの仮想表現を作成するために使用できるテクノロジーです。仮想ソフトウェアは、物理ハードウェアの機能を模倣して、1 台の物理マシンで複数の仮想マシンを同時に実行します。企業は、仮想化を使用してハードウェアリソースを効率的に使用し、投資からより多くの利益を得ることができます。また、組織がインフラストラクチャをより効率的に管理するのに役立つクラウドコンピューティングサービスも強化します。
仮想化とは何ですか?
カーネルベース仮想マシン (KVM) を正しく理解するには、まず仮想化のいくつかの基本概念を理解する必要があります。仮想化は、コンピュータがハードウェアリソースをデジタル的に分離された複数の環境と共有できるようにするプロセスです。各仮想化環境は、メモリ、処理能力、ストレージなどの割り当てられたリソース内で実行されます。仮想化により、組織は再起動せずに同じサーバー上の異なるオペレーティングシステムを切り替えることができます。
仮想マシンとハイパーバイザーは、仮想化における 2 つの重要な概念です。
仮想マシン
仮想マシンは、独立したオペレーティングシステムとコンピューティングリソースを備えた物理コンピュータ上で動作するソフトウェア定義コンピュータです。物理コンピュータはホストマシンと呼ばれ、仮想マシンはゲストマシンです。複数の仮想マシンを 1 台の物理マシン上で実行できます。仮想マシンは、ハイパーバイザーによってコンピュータハードウェアから抽象化されます。
ハイパーバイザー
ハイパーバイザーは、コンピュータ内の複数の仮想マシンを管理するソフトウェアコンポーネントです。これにより、各仮想マシンは割り当てられたリソースを取得し、他の仮想マシンの動作を妨げることがなくなります。ハイパーバイザーには 2 つのタイプがあります。
タイプ 1 ハイパーバイザー
タイプ 1 ハイパーバイザー、またはベアメタルハイパーバイザーは、オペレーティングシステムではなくコンピュータのハードウェアに直接インストールされるハイパーバイザープログラムです。そのため、タイプ 1 ハイパーバイザーの方がパフォーマンスが優れており、エンタープライズアプリケーションで一般的に使用されています。KVM はタイプ 1 ハイパーバイザーを使用して、Linux オペレーティングシステム上で複数の仮想マシンをホストします。
タイプ 2 ハイパーバイザー
ホスト型ハイパーバイザーとも呼ばれるタイプ 2 ハイパーバイザーは、オペレーティングシステムにインストールされます。タイプ 2 ハイパーバイザーは、エンドユーザーコンピューティングに適しています。
仮想化が重要な理由
仮想化を使用すると、あらゆるハードウェアリソースをより柔軟に操作できます。物理サーバーは電力を消費し、ストレージスペースを占有し、メンテナンスが必要です。それらを利用したい場合、多くの場合、物理的な近接性とネットワーク設計によって制限されます。仮想化は、物理的なハードウェア機能をソフトウェアに抽象化することで、これらの制限をすべて取り除きます。ハードウェアインフラストラクチャをウェブ上のアプリケーションのように管理、維持、使用できます。
仮想化の例
ある会社で次の 3 つの機能のためにサーバーを必要しているとします。
- 勤務先 E メールを安全に保管する
- 顧客向けアプリケーションを実行する
- 社内ビジネスアプリケーションを実行する
これらの機能には、次のように、それぞれ異なる設定要件があります。
- E メールアプリケーションには、より多くのストレージ容量と Windows オペレーティングシステムが必要です。
- 顧客向けアプリケーションには、Linux オペレーティングシステムと、大量のウェブサイトトラフィックを処理するための高い処理能力が必要です。
- 社内ビジネスアプリケーションには、iOS とそれ以上の内部メモリ (RAM) が必要です。
これらの要件を満たすために、会社はアプリケーションごとに 3 つの異なる専用物理サーバーをセットアップします。この会社は、多額の初期投資を行い、一度に 1 台のマシンに対して継続的なメンテナンスとアップグレードを実行する必要があります。同社はまた、コンピューティング能力を最適化することもできません。サーバーのメンテナンス費用は 100% 負担しますが、ストレージと処理能力の一部しか使用しません。
ハードウェアの効率的な使用
仮想化により、同社は単一の物理サーバー上に 3 つのデジタルサーバー (仮想マシン) を作成します。仮想マシンのオペレーティングシステム要件を指定し、物理サーバーのように使用できます。ただし、会社は現在、ハードウェアが少なくなり、関連する費用も低下しました。
Infrastructure as a Service
同社はさらに一歩進んで、AWS などのクラウドコンピューティングプロバイダーのクラウドインスタンスや仮想マシンを使用できます。AWS は基盤となるすべてのハードウェアを管理し、会社はさまざまな設定でサーバーリソースを要求できます。すべてのアプリケーションは、これらの仮想サーバー上で実行され、ユーザーは違いに気付くことはありません。また、企業の IT チームにとってもサーバー管理が容易になります。
仮想化の利点
仮想化は、あらゆる組織にいくつもの利点をもたらします。
リソースの効率的な使用
仮想化により、データセンターで使用されるハードウェアリソースが改善されます。例えば、1 つのコンピュータシステムで 1 つのサーバーを実行するのではなく、必要に応じてサーバーを使用してプールに戻すことにより、同じコンピュータシステム上に仮想サーバープールを作成できます。基盤となる物理サーバーの数を減らすことで、データセンターのスペースが解放され、電気、発電機、および冷却器具の費用を節約できます。
自動化された IT 管理
物理コンピュータが仮想化されたので、ソフトウェアツールを使用してそれらを管理できます。管理者は、デプロイおよび設定プログラムを作成して、仮想マシンテンプレートを定義します。インフラストラクチャを繰り返し一貫して複製し、エラーが発生しやすい手動設定を回避できます。
ディザスタリカバリの高速化
自然災害やサイバー攻撃などのイベントが事業運営に悪影響を及ぼした場合、IT インフラストラクチャへのアクセスを回復し、物理サーバーを交換または修正するには、数時間または数日かかることがあります。対照的に、仮想化環境ではこのプロセスにかかるのは数分です。この迅速な対応により、耐障害性が大幅に向上し、ビジネス継続性が促進され、予定どおりに運用を継続できます。
仮想化の仕組
仮想化では、ハイパーバイザーと呼ばれる特殊なソフトウェアを使用して、1 台の物理コンピュータ上に複数のクラウドインスタンスまたは仮想マシンを作成します。
クラウドインスタンスまたは仮想マシン
コンピュータに仮想化ソフトウェアをインストールしたら、1 つまたは複数の仮想マシンを作成できます。コンピュータ上の他のアプリケーションにアクセスするのと同じ方法で、仮想マシンにアクセスできます。 コンピュータはホストと呼ばれ、仮想マシンはゲストと呼ばれます。ホスト上で複数のゲストを実行できます。各ゲストには、ホストオペレーティングシステムと同じまたは異なる独自のオペレーティングシステムがあります。
ユーザーの観点からは、仮想マシンは一般的なサーバーのように動作します。仮想マシンには、設定、構成、およびインストールされたアプリケーションがあります。中央処理装置 (CPU)、ランダムアクセスメモリ (RAM)、ストレージなどのコンピューティングリソースは、物理サーバー上のものと同じように見えます。ホストオペレーティングシステムに影響を与えることなく、ゲストオペレーティングシステムとそのアプリケーションを必要に応じて設定および更新することもできます。
ハイパーバイザー
ハイパーバイザーは、物理マシンにインストールする仮想化ソフトウェアです。これは、仮想マシンと基盤となるハードウェアまたはホストオペレーティングシステムとの間の仲介者として機能するソフトウェアレイヤーです。ハイパーバイザーは物理環境へのアクセスを調整して、複数の仮想マシンが物理リソースの独自の共有部分にアクセスできるようにします。
例えば、仮想マシンがコンピュータの処理能力などのコンピューティングリソースを必要とする場合、リクエストは最初にハイパーバイザーに送信されます。次に、ハイパーバイザーは、タスクを実行する基盤となるハードウェアにリクエストを渡します。
以下は、ハイパーバイザーの 2 つの主なタイプです。
タイプ 1 ハイパーバイザー
タイプ 1 ハイパーバイザー (ベアメタルハイパーバイザーとも呼ばれます) は、コンピュータハードウェア上で直接実行されます。いくつかのオペレーティングシステム機能を備えており、物理リソースと直接対話するため、非常に効率的です。
タイプ 2 ハイパーバイザー
タイプ 2 ハイパーバイザーは、既存のオペレーティングシステムを備えたコンピュータハードウェア上でアプリケーションとして実行されます。1 台のマシンで複数のオペレーティングシステムを実行する場合は、このタイプのハイパーバイザーを使用します。
さまざまなタイプの仮想化
仮想化テクノロジーを使用すると、さまざまな種類の物理インフラストラクチャの機能と、仮想化環境のすべての利点を得ることができます。仮想マシンを超えて、仮想環境内に仮想リソースのコレクションを作成できます。
サーバー仮想化
サーバー仮想化は、物理サーバーを複数の仮想サーバーに分割するプロセスです。これは、サーバーリソースを使用し、組織内で IT サービスをデプロイするための効率的でコスト効果の高い方法です。サーバー仮想化がなければ、物理サーバーはその処理能力をわずかしか使用しないため、デバイスはアイドル状態のままになります。
ストレージ仮想化
ストレージ仮想化は、ネットワーク接続ストレージ (NAS) やストレージエリアネットワーク (SAN) などの物理ストレージデバイスの機能を結合します。異なるベンダーまたは異なるタイプのものであっても、データセンター内のストレージハードウェアをプールできます。ストレージ仮想化は、すべての物理データストレージを使用し、管理ソフトウェアを使用して割り当ておよび制御できる仮想ストレージの大規模なユニットを作成します。IT 管理者は、複数のネットワークストレージデバイスを仮想的に 1 つのストレージデバイスに結合できるため、アーカイブ、バックアップ、リカバリなどのストレージアクティビティを合理化できます。
ネットワークの仮想化
コンピュータネットワークには、スイッチ、ルーター、ファイアウォールなどのハードウェア要素があります。複数の地理的な場所にオフィスを持つ組織では、複数の異なるネットワークテクノロジーを連携させてエンタープライズネットワークを構築できます。ネットワーク仮想化は、これらすべてのネットワークリソースを組み合わせて管理タスクを一元化するプロセスです。管理者は、物理コンポーネントに触れることなくこれらの要素を仮想的に調整および制御できるため、ネットワーク管理が大幅に簡素化されます。
以下は、ネットワーク仮想化への 2 つのアプローチです。
ソフトウェア定義ネットワーキング
ソフトウェア定義ネットワーク (SDN) は、物理環境のデータルーティングからルーティング管理を引き継ぐことで、トラフィックルーティングを制御します。例えば、すべてのオンライン会議で一貫した通話品質を確保するために、アプリケーショントラフィックよりもビデオ通話トラフィックを優先するようにシステムをプログラムできます。
ネットワーク機能仮想化
ネットワーク機能仮想化技術は、連携するファイアウォール、ロードバランサー、トラフィックアナライザーなどのネットワークアプライアンスの機能を組み合わせて、ネットワークのパフォーマンスを向上させます。
データ仮想化
現代の組織は、複数のソースからデータを収集し、さまざまな形式で保存しています。また、クラウドインフラストラクチャやオンプレミスのデータセンターなど、さまざまな場所にデータを保存する場合もあります。データ仮想化は、このデータとそれを必要とするアプリケーションとの間にソフトウェア層を作成します。データ仮想化ツールは、アプリケーションのデータリクエストを処理し、適切な形式で結果を返します。したがって、組織はデータ仮想化ソリューションを使用して、データ統合の柔軟性を高め、機能横断的なデータ分析をサポートします。
アプリケーション仮想化
アプリケーション仮想化は、アプリケーションの機能を引き出して、アプリケーションが設計されたオペレーティングシステム以外のオペレーティングシステムで実行できるようにします。例えば、ユーザーは、マシンの設定を変更せずに、Linux マシンで Microsoft Windows アプリケーションを実行できます。アプリケーション仮想化を実現するには、次のプラクティスに従います。
- アプリケーションストリーミング – ユーザーはアプリケーションをリモートサーバーからストリーミングするため、アプリケーションは必要なときにエンドユーザーのデバイスでのみ実行されます。
- サーバーベースのアプリケーション仮想化 – ユーザーは、リモートアプリケーションをインストールせずに、ブラウザまたはクライアントインターフェイスからアクセスできます。
- ローカルアプリケーションの仮想化 – アプリケーションコードは独自の環境で発送され、変更なしですべてのオペレーティングシステムで実行できます。
デスクトップ仮想化
ほとんどの組織には、デスクトップオペレーティングシステムを使用して一般的なビジネスアプリケーションを実行する非技術スタッフがいます。例えば、次のスタッフがいるかもしれません。
- Windows 10 と顧客関係管理ソフトウェアを搭載したデスクトップコンピュータを必要とする顧客サービス チーム
- 販売アプリケーションに Windows Vista を必要とするマーケティングチーム
デスクトップ仮想化を使用して、これらのさまざまなデスクトップオペレーティングシステムを仮想マシンで実行し、チームがリモートでアクセスできます。このタイプの仮想化により、デスクトップ管理が効率的かつ安全になり、デスクトップハードウェアのコストを節約できます。以下は、デスクトップ仮想化のタイプです。
仮想デスクトップインフラストラクチャ
仮想デスクトップインフラストラクチャは、リモートサーバー上で仮想デスクトップを実行します。ユーザーは、クライアントデバイスを使用してアクセスできます。
ローカルデスクトップ仮想化
ローカルデスクトップ仮想化では、ローカルコンピュータでハイパーバイザーを実行し、別のオペレーティングシステムで仮想コンピュータを作成します。アプリケーションを切り替えるのと同じ方法で、ローカル環境と仮想環境を切り替えることができます。
仮想化とクラウドコンピューティングの違い
クラウドコンピューティングとは、従量制料金が設定されたコンピューティングリソースを、インターネットを通じてオンデマンドで提供することです。物理的なデータセンターを購入、所有、維持するのではなく、必要に応じてクラウドプロバイダーからコンピューティング能力、ストレージ、データベースなどのテクノロジーサービスを利用できます。
仮想化技術により、クラウドコンピューティングが可能になります。クラウドプロバイダーは、独自のデータセンターを設定して維持しています。これらは、基盤となるハードウェアリソースを使用するさまざまな仮想環境を作成します。その後、API を使用してこれらのクラウドリソースにアクセスするようにシステムをプログラムできます。インフラストラクチャのニーズは、フルマネージドサービスとして満たすことができます。
サーバー仮想化とコンテナ化の違い
コンテナ化は、アプリケーションコードをデプロイして、変更を加えずに任意の物理環境または仮想環境で実行する方法です。デベロッパーは、コードの実行に必要な関連ライブラリ、設定ファイル、およびその他の依存関係を含むアプリケーションコードをバンドルします。コンテナと呼ばれるこのソフトウェアの 1 つのパッケージは、どのプラットフォームでも独立して実行できます。コンテナ化は、アプリケーション仮想化の一種です。
サーバーの仮想化は、2 つの場所を結ぶ道路を構築することだと考えることができます。仮想環境全体を再作成してから、その上でアプリケーションを実行する必要があります。比較すると、コンテナ化は、それらの場所のいずれかに飛ぶことができるヘリコプターを構築するようなものです.アプリケーションはコンテナ内にあり、あらゆる種類の物理環境または仮想環境で実行できます。
AWS は仮想化とクラウドコンピューティングへの貢献
AWS を使用することで、最新のテクノロジーで迅速に構築、デプロイ、市場投入するためのさまざまな方法が使えます。例えば、次のサービスのいずれかを利用できます。
- Amazon Elastic Compute Cloud (Amazon EC2) を利用して、インフラストラクチャをきめ細かく制御します。必要なプロセッサ、ストレージ、およびネットワークを選択してください。
- サーバーレスコンピューティングに AWS Lambda を使用して、サーバーを考慮せずにコードを実行できるようにします。
- Amazon Lightsail を使用して、仮想サーバー、ストレージ、データベース、ネットワークを予測可能な低価格で実装します。
AWS アカウントを今すぐ作成して、仮想化とクラウドコンピューティングを始めましょう。