最終更新日: 2026 年 6 月 26 日
仮想マシン(VM)は、ホスト ハードウェア上に分離された環境を提供するソフトウェア ベースのコンピュータです。仮想マシンは、プログラムとオペレーティング システムの実行、データの保存、ネットワークへの接続、他のコンピューティング機能の実行が可能です。クラウド コンピューティングや AI など、現在活用されているテクノロジーの多くは、仮想マシンのコンセプトに基づいており、オペレーティング システムやソフトウェアを物理マシンから分離できます。たとえば、クラウド コンピューティングの VM は、クラウド サービス プロバイダのサーバーのリソースを仮想化するために使用されます。これにより、互いに分離されながらリソースを共有できるマルチテナント クラウド アーキテクチャが実現します。
仮想マシンは、仮想化技術を使用して仮想ハードウェア(物理マシン上のコンピュータの仮想バージョン)を作成します。VM が実行される物理マシンはホストマシンと呼ばれ、ホスト上で実行されている VM はゲストマシンと呼ばれます。
ハイパーバイザと呼ばれる軽量のソフトウェア レイヤが、CPU、GPU、TPU、メモリ(RAM)、ストレージ、ネットワークなどのホストマシンの物理ハードウェア リソースを分割します。ハイパーバイザは、これらのリソースを各ゲスト VM に割り当てます。これにより、1 台の「ホスト」マシン上で複数の「ゲスト」オペレーティング システムを同時に、かつ分離して実行できます。たとえば、Google Compute Engine は KVM ベースのハイパーバイザを使用して、作成した仮想マシンへのリソースの効率的な管理と割り当てを行っています。
各ゲスト VM は、他のゲストから完全に隔離された、ホスト上の分離パーティションで実行されます。単一のホストマシン(多くの場合はサーバー)上で、複数の VM をホストできます。ハイパーバイザは、ホストマシンの物理リソースをプールに抽象化することで、全体的な効率と柔軟性を高めます。これらのリソースは、特定の要件に基づいてプロビジョニングされ、ゲスト VM に動的に割り当てられます。
一般的に、仮想マシンにはプロセス VM とシステム VM の 2 つのタイプがあります。
アプリケーション仮想マシンまたはマネージド ランタイム環境(MRE)とも呼ばれるプロセス VM は、アプリまたは単一プロセスの実行中に OS の仮想環境を作成し、使用を終了すると同時にそれらを破棄します。プロセス VM を使用すると、プラットフォームに依存しない環境を作成し、どのプラットフォームでもアプリやプロセスを同じように実行できます。 その具体的な例が、Cloud Run 上の Node.js サーバーです。Cloud Run はフルマネージド環境を提供します。この環境では、アプリケーションがコンテナ内で実行され、基盤となるインフラストラクチャから抽象化されています。
ハードウェア仮想マシンとも呼ばれるシステム VM は、オペレーティング システム全体をシミュレートし、複数の OS 環境を同じマシン上で動作させることができます。一般的に「仮想マシン」と呼ばれているのは、このタイプの VM です。システム VM は独自の OS とアプリケーションを実行でき、ハイパーバイザは物理ホストマシンのリソースをモニタリングしてシステム VM 間で分散させます。
最近、クラウド内の仮想マシンやクラウド VM について議論されているのを耳にしたことがあるかもしれません。クラウド仮想マシンとは、クラウド上の仮想サーバーで実行される仮想マシンのことです。多くのクラウド サービス プロバイダでは、自社のインフラストラクチャでクラウド仮想マシンを作成して実行できるため、高性能のサーバーをホストマシンとして使用したり、メモリやネットワーク ストレージなどの他のソフトウェア定義サービスを活用したりできます。これらのクラウド VM は、通常、リソースの最適化によって次のように分類されます。
仮想マシンは物理コンピュータのソフトウェア エミュレーションですが、仮想デスクトップはリモート サーバーでホストされているデスクトップ環境にアクセスできるユーザー インターフェースです。主な違いは、仮想マシンがコンピュータ全体をエミュレートするのに対し、仮想デスクトップはデスクトップ環境へのリモート アクセスを提供するという点です。
仮想マシンは、ホストシステムと仮想マシンが分離されているため、一般的に安全です。これにより、マルウェアが拡散するリスクが軽減されます。ただし、その安全性は、適切な構成、定期的な更新、適切なセキュリティの実践に依存します。仮想マシンが適切に管理されていない場合、攻撃に対して脆弱な状態になる可能性があるため、セキュリティのベスト プラクティスに従うことが不可欠です。
はい。仮想マシンはホスト システムのストレージ容量を占有します。使用されるストレージの容量は、仮想ハードディスクのサイズ、オペレーティング システム、インストールされているアプリケーションによって異なります。さらに、仮想マシンは、必要に応じてストレージを動的に割り当てるように構成することも、固定量のストレージを使用するように構成することもできます。
VM とコンテナはどちらもアプリケーションを分離するために使用されますが、その方法は根本的に異なります。仮想マシンは、オペレーティング システムを含む物理ハードウェア スタック全体を仮想化します。これにより、各 VM は自己完結型の隔離された環境になりますが、VM が大きくなり、より多くのリソースを占有する傾向もあります。
対照的に、コンテナは OS レイヤのみを仮想化するため、より軽量です。コンテナは、各アプリケーションに完全なオペレーティング システムをバンドルするのではなく、ホストの OS カーネルを共有します。これにより、コンテナは VM よりも少ないリソースを使用し、分離された状態を維持しながらより高速に起動できます。そのため、コンテナはアプリケーションの新規開発において魅力的なものとなっています。過去 10 年間に開発されたアプリケーションの多くはコンテナ向けに作成されているため、e コマース、バックオフィス、AI などの多くのワークロードは「コンテナ ネイティブ」です。
VM は仮想化コンピューティング リソースの基本的な構成要素であり、クラウドとオンプレミスの両方で、アプリケーション、ツール、環境を構築するうえで主要な役割を担います。
以下に、企業が仮想マシンを使用する一般的な方法をいくつか示します。
複数の物理マシンを VM として再構成し、他の VM とともにホスト上で実行できるため、組織はリソースの無秩序な増加を抑えることができます。VM は、最もパフォーマンスが要求されるアプリケーションでも実行できることが長年にわたって証明されています。
中心となる IT 組織が各ビジネスユニットと各機能領域の VM をプロビジョニングして管理することで、リソースへのアクセスが迅速化され、企業の可視性が向上します。
VM は、テスト用と開発用の独立した環境として機能し、周囲のインフラストラクチャには影響を与えずに、完全な機能を備えています。
VM は簡単にオンまたはオフにしたり、移行や適応を行ったりして、開発とデプロイの柔軟性を最大限に高めることができます。
VM が提供する柔軟性とポータビリティは、移行の取り組みのスピードを上げるうえで重要です。
VM を使用してクラウド環境でシステムをレプリケーションすると、セキュリティと確実性のレイヤが追加されます。クラウド環境は継続的に更新することもできます。
VM は、オンプレミス環境と並行してクラウド環境を作成するための基盤を提供します。これにより、従来のシステムの使用を中断することなく、柔軟性の高い環境を実現できます。
VM を使用すると、1 台の物理マシンで異なるオペレーティング システムを実行できます。たとえば、主要な開発環境で Linux を使用している場合でも、Google Cloud の Compute Engine で Windows Server VM を実行できます。Google Cloud は、多様なニーズに対応するために、さまざまな OS イメージを提供しています。
VM を使用してクラウド環境でシステムをレプリケーションすると、セキュリティと確実性のレイヤが追加されます。クラウド環境は継続的に更新することもできます。
特にクラウド VM を選択した場合、仮想マシンには次のような多くのメリットがあります。
スケーラビリティ
クラウドベースの VM を使用すると、アプリケーションのスケーリングが容易になり、可用性とパフォーマンスが向上します。独自の物理サーバーに投資することなく、需要に応じて容量を増やすことができます。
移植性
仮想マシンは、ハードウェア リソース、オペレーティング システム、すべてのアプリケーションを含む単一のソフトウェア パッケージです。VM はサーバー間だけでなく、オンプレミスのハードウェアからクラウド環境へも簡単に移行できます。
フットプリントとコストの削減
VM を使用すると、1 台のマシンから複数の仮想環境を実行できるため、物理インフラストラクチャのフットプリント、電気代、メンテナンスと管理の費用を削減できます。
プロビジョニングの高速化
VM は簡単に複製できるため、ゼロからセットアップすることなく、新しい同一の環境をスピンアップできます。
信頼性
仮想マシンとそのコンポーネントは仮想的に存在し、他のゲスト VM から分離されています。VM がクラッシュしても、他のゲスト VM は動作を続け、物理ホストマシンは影響を受けません。
セキュリティの強化
仮想マシンを使用すると、ホスト オペレーティング システムに影響を与えることなく、複数のオペレーティング システムを実行できます。VM を使用すると、ホストマシンに対するリスクを抑えながら、アプリのテストやセキュリティの脆弱性の調査を行うための安全な仮想環境を作成できます。Google Cloud の Confidential VMs などの最新の VM サービスでは、ハードウェアベースの高信頼実行環境(TEE)を介して、メモリ内で処理されるデータの使用中の暗号化が提供されます。
ただし、VM を実行する場合に留意すべき考慮事項がいくつかあります。仮想マシンの最大の潜在的課題の 1 つは、ホストマシンの堅牢性が足りない場合に、複数のオペレーティング システムとハイパーバイザー レイヤーを実行するとパフォーマンスが低下する可能性があることです。また、仮想ハードウェアは物理マシンの物理ハードウェアと比べて効率性で劣る場合があります。最後に、ほとんどのクラウド プロバイダが提供する仮想マシンは、CPU とメモリが固定されているため、リソースを効率的に使用できません。
ただし、これらの懸念の多くは、クラウド サービス プロバイダが提供する VM を使用することを選択すれば解消できます。クラウド VM は、1 台のマシンではなく、データセンター全体のコンピュータのコンピューティング能力を活用できるため、従来の VM に比べて多くの利点があります。さらに、Google Compute Engine の仮想マシンサイズでは、カスタム マシンタイプが提供されています。過剰な容量が含まれている可能性のある事前定義されたマシンタイプから選択するのではなく、ワークロードに合わせて CPU とメモリの比率を調整できるため、実際に使用したリソースに対してのみ料金を支払うことができます。この的を絞ったアプローチにより、無駄を最小限に抑え、クラウド支出を大幅に削減できます。特に、オンプレミスから Google Cloud に移行する場合や、他のクラウド プロバイダから移行する場合に効果的です。 また、Compute Engine は、エンタープライズ ワークロード、メモリ消費量の多い構成、ML やハイ パフォーマンス コンピューティングなどの要求の厳しいワークロードに関するお客様の特定のニーズに応じて最適化された仮想マシンタイプも提供します。
Google Cloud では、VM インスタンスのセキュリティを強化し、整合性を検証できるように、Shielded VM も提供しています。Google Cloud の Shielded VMは、高度なプラットフォーム セキュリティ機能と制御を活用し、リモート攻撃、権限昇格、悪意のある内部関係者などの脅威から企業のワークロードを保護します。
特定のアプリケーションでは、デベロッパーは従来の VM を完全にバイパスすることを選択できます。コンテナ オーケストレーション(Google Kubernetes Engine - GKE)やサーバーレス コンピューティング(Cloud Run)などの最新のデプロイモデルは、特定のユースケースでは強力な代替手段となります。チームは VM オペレーティング システムの管理を回避し、デプロイ速度を向上させ、多くの場合、大幅な費用削減を実現できます。
仮想マシンの使用を開始する準備が整ったら、Google Cloud の Compute Engine を通じて仮想マシンを利用できます。Compute Engine は、Google のインフラストラクチャでホストされる柔軟なセルフマネージド VM インスタンスを提供します。Compute Engine で VM を作成して接続する手順の概要は次のとおりです。
課金が有効になっている Google Cloud プロジェクトが必要です。新規ユーザーは無料トライアルに登録できます。
この API は、VM の作成と管理に必要です。Google Cloud コンソールまたは gcloud CLI を使用して有効にできます。
VM インスタンスは、Google Cloud コンソールや gcloud CLI を使用して作成できます。
SSH(Linux VM): SSH を使用して Linux インスタンスに安全に接続します。
gcloud CLI を使用する: gcloud compute ssh コマンドを使用すると、ローカル ターミナルから簡単に接続できます。
OS Login の使用(推奨): セキュリティを強化し、SSH 認証鍵の管理を合理化するために、特に複数の VM やチームにわたる場合は、OS Login の有効化を検討してください。OS Login は、SSH アクセス制御を Google Cloud IAM と統合します。OS Login を有効にすると、SSH 認証鍵が Google ID にリンクされ、インスタンス メタデータに認証鍵を配布するのではなく、IAM 権限を使用してアクセスが管理されます。
OS Login を有効にするには、プロジェクトまたは個々のインスタンスで enable-oslogin メタデータキーを TRUE に設定します。

ソリューション
ソリューション