メインコンテンツに移動

仮想マシンとは

仮想マシン (VM) は、独自の仮想ハードウェアリソースとオペレーティングシステムを備えた独立システムとして機能する物理マシンのデジタル版です。ラップトップや物理サーバーなどの物理マシンには、通常、アプリケーションを実行するためのハードウェアを調整する単一のオペレーティングシステムが搭載されています。しかし、基盤となる物理リソースは、単一のシステムで使用できる電力よりもはるかに多くの電力を供給できます。

仮想マシンを使用すると、1 台の物理マシン上に複数の分離環境を作成して、さまざまなオペレーティングシステムを並行して実行できます。同じハードウェア上で複数のアプリケーションを実行し、リソースをより効率的に利用できます。現代のクラウドインスタンスでは、クラウド内のフルマネージドサービスとして仮想マシンにアクセスできます。

仮想マシンの仕組み

仮想化とは、物理ハードウェアの役割を果たすソフトウェアのことです。ソフトウェアは、実際の基盤となる物理ハードウェアにアクセスして使用するため、物理ハードウェアと同じように動作できます。仮想マシンが実際の物理コンピュータで実行されるのと同じように、大容量の仮想ストレージが複数の物理ストレージデバイスの代わりになります。仮想化テクノロジーにより、ハードウェアの構成、テンプレート化、繰り返し実行が容易になり、物理的な管理が最小限に抑えられます。

仮想マシン (VM) は、オペレーティングシステム、アプリ、プロセス、およびカスタム構成を実行するソフトウェア定義の完全に機能するシステムです。仮想マシンはゲストオペレーティングシステムとも呼ばれ、仮想マシンが実行される物理コンピュータはホストマシンと呼ばれます。複数の仮想マシンが 1 台の物理コンピューター上で複数のオペレーティングシステムを実行し、必要に応じてサーバーのハードウェアリソースを使用するようにネゴシエートできます。

仮想マシンの種類

作成して使用する仮想マシンの種類は、目的と基盤となるシステムのハードウェアリソースによって異なります。 

例:

  • 強力なネイティブ LLM で仮想マシンを実行するには、強力な GPU を搭載した基盤となるホストマシンが必要です。
  • デスクトップの Mac で Windows アプリをときどき実行するということは、ホストコンピューターの Type 2 ハイパーバイザーアプリ上で Windows オペレーティングシステムの VM を実行することを意味します。
  • ソフトウェア生産用にテストサーバーと開発サーバーを稼働させるということは、2 つのゲストオペレーティングシステムを並行して実行し、十分なリソースを備えたホストマシン上で複数のユーザーを受け入れることを意味します。

システム仮想マシン

システム仮想マシン (SVM) は、「仮想マシン」というより一般的な用語の別名です。この種の VM には、独自のオペレーティングシステムを含むシステム環境全体が含まれています。

プロセス仮想マシン

一方、プロセス仮想マシン (PVM) は、完全なプログラミング言語環境を提供することにより、単一のプロセスまたはアプリケーションを実行します。プロセス仮想マシンの一般的な例としては、Java プログラムを実行する Java 仮想マシンや、Python アプリを実行する Python インタープリターなどがあります。PVM を使用すると、ほとんどすべてのホストコンピュータで特定の言語のアプリケーションを実行できます。

仮想マシンを使用する利点

ほぼすべての組織が仮想マシンを使用することで利点が得られます。新しい組織では、セットアップを迅速に行い、費用対効果の高いスケーリングを実現するために、クラウドインスタンスを直接開始するのが最適です。

仮想マシンは、既存のオンプレミスインフラストラクチャを持つ組織に次のメリットをもたらします。

コンピューティングリソースの効率

複数の仮想マシンを使用する最大の利点は、基盤となるハードウェアの ROI が向上することです。CPU が常に 25% の容量でしか使用されていない場合、その CPU は十分に活用されていません。複数のオペレーティングシステムが重要なタスクを同時に実行する場合、これらのワークロードを 1 台のマシンにまとめると、リソースを節約できます。 

自動管理

仮想マシンのイメージをハードウェアで明示的に構成するのではなく、ソフトウェアで構成することで、管理が自動化され、繰り返しが可能になり、簡単に変更できるようになります。 

高い移植性

物理ハードウェアとは異なり、仮想マシンはほとんどどこでも簡単にインスタンス化できます。VM は北米のマシンで実行しながら、設定を変更することなく、同時にオーストラリアのマシンでも実行できます。

さまざまなオペレーティングシステム

組織はその環境全体で特定のオペレーティングシステムを優先する場合もありますが、異なるオペレーティングシステムを使用する必要がある場合や、その利点が得られる場合もあります。仮想マシンソフトウェアを使用すると、異なるオペレーティングシステムで複数の仮想マシンを一度に実行できます。

仮想マシンとコンテナの違い

VM は、アプリケーションのデプロイに関して、コンテナと比較されます。コンテナが登場する前、ソフトウェア開発者は、ユーザーが特定の VM にインストールできるように、ライブラリとサービスをアプリにバンドルして、アプリケーションを実行できるようにする必要がありました。コンテナを使用すると、イメージを読み込むだけで、ソフトウェアが実行でき、インストールの必要はありません。

VM とコンテナはどちらも仮想化を使用します。VM は基盤となる物理マシンを仮想化する一方、コンテナはアプリケーションが実行されるサーバー環境を仮想化します。

仮想マシンは、適切なハイパーバイザーを備えた任意の物理マシン上で実行できる、分離されたオペレーティングシステム環境を提供します。コンテナは、どこでも実行できる完全で独立したアプリ環境を提供します。コンテナでは、適切なコンテナマネージャをインストールして設定すれば、どのシステムでも実行に必要なアプリケーションのライブラリとサービスがすべて揃います。

コンテナ化は、アプリケーションを実行する VM を実行するよりもリソース効率が高い場合があります。ただし、すべてのアプリケーションを簡単にコンテナ化できるわけではありません。アプリケーションはコンテナ用にパッケージ化する必要があり、GUI や永続ストレージを使用するアプリケーションなど、一部のアプリケーションはステートレスでコンテナベースの操作を行うために作り直す必要があります。サードパーティのアプリケーションには、コンテナ化されたオプションがないことがよくあります。

AWS での仮想マシン要件のサポート

AWS では、ほぼすべてのビジネスニーズに対応する 800 種類以上のインスタンスタイプを提供しています。インスタンスを、プロセッサ、ストレージ、ネットワーク、オペレーティングシステム、購入モデルに合わせてカスタマイズすることで、ワークロードのニーズに最適なものになります。AWS では、コンプライアンス要件を満たすために物理的に分離および隔離された複数のインスタンス用に 108 のアベイラビリティーゾーンを用意しています。

AWS インスタンスタイプのセレクションは、複数のオペレーティングシステム環境で複数の仮想マシンを実行するように設定されています。

Amazon Elastic Compute Cloud (Amazon EC2) は、オンデマンドインスタンス、ハードウェア専有インスタンス、スポットインスタンスを選択できる、最も幅広く奥行きのあるコンピューティングプラットフォームを提供します。EC2 には、汎用インスタンス、コンピューティング最適化インスタンス、ストレージ最適化インスタンス、メモリ最適化インスタンス、アクセラレーテッドコンピューティングがあります。EC2 は Intel、AMD、Arm 製プロセッサを複数のオペレーティングシステムでサポートしており、オンデマンド EC2 Mac オペレーティングシステムインスタンスと 400 Gbps イーサネットネットワークを備えた唯一のクラウドです。

AWS Nitro System は、最新の EC2 インスタンスの基盤です。Nitro System を用いて、仮想化インフラストラクチャを全面的に再構成しました。従来のハイパーバイザーは物理的なハードウェアと BIOS を保護し、CPU、ストレージ、およびネットワーキングを仮想化し、豊富な管理機能を提供します。そこに Nitro System が加わったことで、そのような機能を分割し、専用のハードウェアとソフトウェアに負荷を分散して、サーバーのほぼすべてのリソースをお客様のインスタンスに割り当てることにより、コストを減らせるようになりました。

Amazon Lightsail は、使いやすい仮想プライベートサーバー (VPS) インスタンス、コンテナ、ストレージ、データベースなどを費用効果の高い月額料金で提供します。Lightsail は、シンプルな Web アプリケーション、カスタム Web サイト、および小規模ビジネスアプリケーション向けに設計されています。

今すぐ無料の AWS アカウントを作成して始めましょう。