VPS・VM・VPCの違いは?意味と選び方
VMは仮想化技術、VPSはVMを貸し出すサービス、VPCはクラウド内のプライベートネットワークです。3つの違いと、目的に合う選び方を整理します。
VPS、VM、VPCを1つの段落で説明
VM(仮想マシン)は、ソフトウェアで構成されたコンピューターです。ハイパーバイザーが1台の物理サーバーを複数の独立したマシンに分割し、それぞれが独自のカーネルを実行します。VPS(仮想プライベートサーバー)は、これらの仮想マシンの1つを製品としてレンタルするサービスです。オペレーティングシステム、rootアクセス、月額料金が含まれます。VPC(仮想プライベートクラウド)は、サーバーではありません。クラウドアカウント内に定義するプライベートネットワークであり、その中にリソースを配置します。VMはテクノロジーです。VPSは製品です。VPCは製品を取り囲むネットワークです。
これらの用語のうち、2つはマシンを表します。残りの1つはネットワークを表します。3つを同じ棚に並ぶ製品のように比較するため、この違いによってほとんどの混乱が生じます。
VMとは何か
ハイパーバイザーは、ハードウェアをエミュレートする層です。各ゲストに仮想CPU、メモリ領域、仮想ディスク、仮想ネットワークカードを割り当て、ゲスト同士が互いを認識できないようにします。サーバーで一般的なハイパーバイザーには、KVM、Xen、Hyper-V、VMware ESXiがあります。最新のハイパーバイザーは、CPUの仮想化拡張機能(Intel VT-x、AMD-V)を利用します。そのため、ゲストの命令は解釈実行されず、実CPU上でネイティブに近い速度で実行されます。
システム管理者にとって重要なのはカーネルです。VMは独自のカーネルで起動します。そのため、ディストリビューションを選択し、カーネルモジュールを読み込み、自分のVMだけに適用されるsysctl値を設定できます。これはコンテナー(LXC、Docker)とは異なります。コンテナーはホストのカーネルを共有し、プロセスとファイルについて独自のビューだけを持ちます。
Linuxホストでは、1つのコマンドで確認できます。
systemd-detect-virtkvmは、KVMハイパーバイザー上の仮想マシンであることを示します。lxcまたはopenvzは、他者のカーネル上でコンテナーとして動作していることを示します。noneは、物理マシンを自分で所有していることを示します。コマンドがない場合は、lscpu | grep -i hypervisorでCPUフラグから同じ情報を確認できます。
VPSとは何か
VPSは、VMを商品として提供するためのサービスです。基盤となる技術は仮想化です。「VPS」という名称には、再インストール可能なOSイメージ、IPアドレス、帯域幅の上限、コントロールパネル、月額料金、ホスト障害時の問い合わせ先など、商品として提供するための要素が含まれます。「Private」は共有ホスティングと区別するための名称です。共有ホスティングでは、数百のサイトが1つのオペレーティングシステムと1つのPHP設定を共有します。
VPSは商品名であり、技術用語ではないため、必ずしも完全なVMを意味するとは限りません。低価格プランでは、同じ名称でコンテナを提供している場合があります。違いは、カーネルが必要になったときに初めて明確になります。コンテナベースのプランでは、カーネルがホスト側のもので変更できないため、sudo modprobe wireguardはRTNETLINK answers: Operation not supportedまたはmodprobe: FATAL: Module wireguard not foundで失敗します。KVMプランではモジュールが読み込まれ、トンネルが確立されます。Docker、VPN、カスタムカーネル、またはサーバー内で独自の仮想マシンを実行する予定がある場合は、購入前に仮想化方式を確認してください。VPS内で仮想マシンを実行することには、ホスト側でネスト仮想化を有効にしたKVMが必要です。そのため、対象となるプランはさらに限られます。
VPCとは
VPCは、クラウドプロバイダー内に構築するソフトウェア定義ネットワークです。10.0.0.0/16のようなCIDR表記でアドレス範囲を指定し、その範囲からサブネットを分割して、ルートテーブルを関連付け、内部のリソースの前段にファイアウォールルール(セキュリティグループ)を配置します。CPU、メモリ、ディスクはありません。ログインする対象もありません。VPC内のすべてのサーバーを削除しても、VPCは空の状態で残り、通常は料金もかかりません。
VPCによって得られるのは、プライベートアドレスです。同じVPC内の2台のサーバーは、プロバイダーの内部ネットワーク上で10.0.1.15のようなアドレスを使用して通信します。そのため、ネットワークトラフィックはパブリックインターネットを経由せず、インターネット向けの送信として課金されません。これにより、データベースはプライベートアドレスでのみ待ち受けでき、ポートを外部に一切公開しない構成にできます。
ip -4 addr show10.0.0.0/8、172.16.0.0/12、192.168.0.0/16内のアドレスはプライベートです。同じホストにパブリックアドレスがある場合、そのホストがどのネットワークオブジェクト内にあるかに関係なく、サーバーはインターネットから直接到達可能です。
VPCを使用するとサーバーはプライベートになりますか?
いいえ。これは、3つの用語について最も高くつく誤解です。VPCはルーティングとアドレス指定を制御します。マシンにインターネットから到達できるかどうかは決定しません。インスタンスにパブリックIPがあり、セキュリティルールで0.0.0.0/0からのport 22が許可されている場合、VPCを使用しているかどうかに関係なく、他のサーバーと同じように公開されています。VPCによる分離とは、リソースにパブリックアドレスを一切割り当てないことができる点と、どのsubnet間の通信を許可するかをルールで指定できる点です。
この3つの用語は、それぞれ異なる種類の分離を指します。VMはコンピュートを分離します。hypervisorがCPU時間とメモリを分離するため、別のゲストがRAMを読み取ることはできません。この分離はdiskとnetworkでは弱く、同じホスト上の負荷の高いneighborによって処理速度が低下することがあります。containerベースのVPSは1つのkernelを共有するため、kernelレベルのバグは共有リスクになります。VPCはコンピュートをまったく分離しません。ネットワークだけを構成します。
料金体系の考え方
VPSは通常、固定されたマシンに対する固定の月額料金で提供されます。月が始まる前に請求額が分かり、ディスクと転送量の上限も料金に含まれます。この予測しやすさが、小規模なワークロードでクラウドインスタンスではなくVPSを選ぶ主な理由です。
クラウドVMは従量課金です。インスタンスは1時間単位または1秒単位で課金され、ディスク、スナップショット、ロードバランサー、外向きトラフィックは個別に課金されます。VPC自体は通常無料ですが、VPCに接続するマネージドサービスは無料ではありません。プライベートインスタンスからインターネットへのアクセスを可能にするNAT gatewayは、時間単位およびギガバイト単位で課金されます。availability zone間のトラフィックも課金対象です。2026年7月時点でも、主要なクラウドサービスでは新しいインスタンスがすべてデフォルトVPCに自動的に配置されます。そのため、指定していなくてもVPCを使用することになります。
実際に必要なのはどれか
- Webサイト、アプリ、ゲームサーバー、VPNのいずれかを1台のサーバーで運用する場合: VPSです。プラン名よりも、新しいVPSで最初の10分間に行う作業のほうが重要です。
- プライベートアドレスで相互に接続する必要がある複数のサーバー: VPC、またはVPSプロバイダーが別の名称で提供しているプライベートネットワーク機能です。
- データセンター全体の停止に耐える必要があるワークロード: 複数のゾーンを持つクラウドです。これは、VPC内にVMを配置する構成を意味します。
- カーネルを完全に制御する場合、またはその上で独自のハイパーバイザーを実行する場合: KVMベースのVPSまたは専用サーバーです。比較中は、プランのディスクの種類も確認してください。
単一サーバーのプロジェクトのほとんどに、VPCは必要ありません。VPSに付属するプライベートネットワーク機能で、少数のマシンに対して同じ用途を満たせます。
FAQ
VPSはVMと同じものですか?
VPSは、誰かが提供するVMです。KVM、Xen、またはVMware上に構築されたVPSはすべて仮想マシンですが、すべての仮想マシンがVPSとは限りません。たとえば、VirtualBoxでラップトップ上に実行するVMは、誰かが提供する製品ではないためです。VPSと表示された安価なプランの中には、完全なVMではなくコンテナを使用するものがあります。そのため、カーネルへのアクセスを前提にする前に、systemd-detect-virtで確認してください。
VPSをVPC内に配置できますか?
通常はできません。VPCは1つのクラウドプロバイダーに固有の構成要素であり、同じアカウントで作成されたリソースだけを収容するためです。独立したプロバイダーのVPSは、そのプロバイダーのネットワーク上にあります。両者の間にプライベートリンクが必要な場合は、代わりに両者の間にVPNトンネルを構築します。その後、VPSはそのトンネル経由でプライベートサブネットにアクセスします。
同等のVPSよりクラウド料金が高いのはなぜですか?
インスタンス料金は費用の一部にすぎません。従量課金のクラウドでは、ストレージ、スナップショット、アウトバウンドトラフィック、ロードバランサー、NATゲートウェイが個別に課金されます。NATゲートウェイだけで、小規模なVPSの月額料金を上回ることもあります。定額のVPSでは、ディスクと転送量の上限が1つの料金に含まれます。そのため、同じワークロードでもVPSのほうが安く見えることがよくあります。
サーバーが実際のカーネルアクセスを持つかどうかを確認するにはどうすればよいですか?
systemd-detect-virtを実行して、結果を確認します。kvm、xen、またはvmwareの場合は、専用のカーネルがあり、modprobeが機能します。lxc、lxc-libvirt、またはopenvzの場合は、ホストのカーネルを共有しています。モジュールをロードするコマンドや/proc/sysに書き込むコマンドは、Operation not supportedで失敗します。別の確認方法はuname -rです。コンテナプランでは、ディストリビューションがリリースしたことのないカーネルバージョンが表示されることがあります。