Разница между VPS, VM и VPC: простыми словами
Разбираем ключевые отличия: VM как технология виртуализации, VPS как готовый сервер в аренду и VPC как изолированная сеть в облаке. Поймите, что именно вам нужно для работы.
VPS, VM и VPC в одном абзаце
VM (виртуальная машина) — это компьютер, созданный программными средствами: гипервизор разделяет один физический сервер на несколько независимых машин, каждая из которых запускает собственное ядро. VPS (виртуальный выделенный сервер) — это сервер, который предоставляется вам как продукт, с операционной системой, обычно с доступом root и ежемесячной оплатой. Большинство тарифов VPS — это виртуальные машины, но некоторые хостинг-провайдеры продают под этим же названием контейнеры, использующие общее ядро хоста. VPC (виртуальное частное облако) — это вообще не сервер. Это частная сеть, которую вы определяете внутри облачного аккаунта и в которую помещаете ресурсы. VM — это технология. VPS — это продукт. VPC — это сеть вокруг продукта.
Два из этих терминов описывают машину. Третий описывает сеть. Почти вся путаница возникает из-за этого несоответствия, так как люди сравнивают их, будто это три продукта на одной полке.
Что такое виртуальная машина
Гипервизор — это уровень, который имитирует аппаратное обеспечение. Он предоставляет каждой гостевой системе виртуальный процессор, блок оперативной памяти, виртуальный диск и виртуальную сетевую карту, а также изолирует гостевые системы друг от друга. KVM, Xen, Hyper-V и VMware ESXi — наиболее распространенные решения на серверах. Современные гипервизоры используют аппаратные расширения виртуализации процессора (Intel VT-x, AMD-V), поэтому инструкции гостевой системы выполняются на реальном процессоре почти с нативной скоростью, а не интерпретируются.
Для системного администратора важнее всего ядро. Виртуальная машина загружает собственное ядро, поэтому вы выбираете дистрибутив, загружаете модули ядра и устанавливаете значения sysctl, которые применяются только к вашей системе. Это отличается от контейнеров (LXC, Docker), которые используют общее ядро хоста и получают лишь собственное представление процессов и файлов.
Вы можете узнать ответ на любой Linux-системе с помощью одной команды.
systemd-detect-virtkvm означает, что вы находитесь в виртуальной машине на гипервизоре KVM. lxc или openvz означают, что вы работаете в контейнере на чужом ядре. none означает, что поддерживаемая виртуализация не обнаружена. Если команда отсутствует, lscpu | grep -i hypervisor покажет информацию о гипервизоре, но не определит контейнеры.
Что такое VPS
VPS — это коммерческая оболочка для изолированного сервера, чаще всего виртуальной машины. В основе лежит технология виртуализации, а термин «VPS» добавляет характеристики, делающие услугу товарной: образ ОС с возможностью переустановки, IP-адрес, лимит трафика, панель управления, ежемесячная оплата и техническая поддержка на случай отказа хоста. Слово «Private» (частный) отличает VPS от виртуального хостинга, где сотни сайтов используют одну операционную систему и общую конфигурацию PHP.
Поскольку VPS — это название продукта, а не технический термин, он не всегда означает полноценную виртуальную машину. Некоторые бюджетные тарифы продают под этим же названием контейнеры; например, OpenVZ, платформа контейнеризации, лежащая в основе многих таких решений, описывает свои контейнеры как «также известные как виртуальные частные серверы». Разница проявляется в тот момент, когда вам требуется доступ к ядру. В контейнерном тарифе используется ядро хоста, и изменять его запрещено. sudo modprobe wireguard завершается ошибкой, если не может найти модуль в каталоге модулей контейнера, даже если хост уже загрузил его; загрузка отсутствующего модуля также требует прав на изменение ядра хоста. Если в ядре хоста нет поддержки WireGuard, создание интерфейса (ip link add dev wg0 type wireguard) завершается с ошибкой RTNETLINK answers: Operation not supported. wg-quick в этом случае переключается на реализацию в пространстве пользователя (по умолчанию wireguard-go), если она установлена, выводя сообщение «Missing WireGuard kernel module. Falling back to slow userspace implementation». Для такого резервного варианта контейнеру всё равно требуется разрешение на использование устройства TUN, что разрешено не на каждом хосте, а при отсутствии бинарного файла в пространстве пользователя wg-quick останавливается с ошибкой. В тарифе KVM ядро принадлежит вам: вы устанавливаете WireGuard, загружаете модуль, если он ещё не загружен, настраиваете интерфейс, и туннель поднимается. Если вы планируете запускать Docker, VPN, собственные ядра или свои виртуальные машины внутри сервера, уточните тип виртуализации перед покупкой. Запуск виртуальных машин внутри VPS требует KVM с включенной на хосте вложенной виртуализацией (nested virtualisation), что встречается ещё реже.
Что такое VPC
VPC — это программно-определяемая сеть внутри облачного провайдера. В большинстве облаков вы задаете для нее диапазон адресов в нотации CIDR, например 10.0.0.0/16, а затем разбиваете его на подсети (Google Cloud не требует общего диапазона для всей сети и назначает каждой региональной подсети свой собственный диапазон). Вы подключаете таблицы маршрутизации и размещаете правила межсетевого экрана (группы безопасности) перед ресурсами внутри сети. У VPC нет процессора, оперативной памяти или диска. В нее невозможно войти. Удаление всех серверов в VPC оставляет саму VPC пустой, и обычно это бесплатно.
VPC обеспечивает использование частной адресации. Два сервера в одной VPC взаимодействуют через адреса вида 10.0.1.15 по внутренней инфраструктуре провайдера, поэтому трафик никогда не выходит в публичный интернет и не тарифицируется как исходящий интернет-трафик. База данных может принимать подключения только на свой частный адрес, и ни один порт не будет открыт для внешнего мира.
ip -4 addr showАдрес внутри 10.0.0.0/8, 172.16.0.0/12 или 192.168.0.0/16 является частным. Наличие публичного адреса само по себе не делает сервер доступным из интернета: маршрутизация и правила межсетевого экрана также должны разрешать доступ.
Делает ли VPC мой сервер приватным?
Нет, и это самое дорогостоящее заблуждение из трех терминов. VPC управляет маршрутизацией и адресацией. Он не определяет, может ли интернет получить доступ к машине. Если экземпляр имеет публичный IP-адрес, его подсеть имеет маршрут в интернет, а правила безопасности разрешают порт 22 из 0.0.0.0/0, он подвержен риску точно так же, как и любой другой сервер, независимо от наличия VPC. В VPC по умолчанию этот маршрут в интернет уже настроен. Изоляция, которую вы получаете от VPC, заключается в возможности вообще не назначать ресурсу публичный адрес, а также в правилах, определяющих, какие подсети могут взаимодействовать друг с другом.
Эти три понятия также обещают разные виды изоляции. Виртуальная машина изолирует вычислительные ресурсы: гипервизор разделяет процессорное время и память, поэтому другой гость не может прочитать вашу оперативную память. Эта изоляция слабее для диска и сети, где сосед по хосту с высокой нагрузкой всё ещё может замедлить вашу работу. VPS на основе контейнеров использует одно ядро, поэтому ошибка на уровне ядра является общим риском. VPC вообще не изолирует вычислительные ресурсы. Он только формирует сеть.
Модель ценообразования
VPS обычно продается по фиксированной ежемесячной цене за фиксированную конфигурацию машины. Вы знаете сумму счета до начала месяца, а объем диска и лимит трафика уже включены в стоимость. Эта предсказуемость — главная причина, по которой для небольших рабочих нагрузок выбирают VPS, а не облачный инстанс.
Облачная VM тарифицируется по факту использования. Инстанс оплачивается по часам или секундам, а диск, снимки (snapshots), балансировщик нагрузки и исходящий трафик оплачиваются отдельно. Сама VPC обычно бесплатна, но подключенные к ней управляемые компоненты — нет: NAT gateway, который позволяет приватным инстансам выходить в интернет, оплачивается по часам, а порядок оплаты трафика через него зависит от провайдера. AWS добавляет плату за каждый гигабайт, обработанный NAT gateway, в то время как OVHcloud указывает, что их Public Cloud Gateway оплачивается почасово и в зависимости от использования, при этом трафик включен в стоимость. В AWS трафик, пересекающий границы зон доступности (availability zones), также оплачивается, тогда как Azure не взимает плату за трафик между своими зонами в пределах одного региона. По состоянию на 27 октября 2026 года, руководство по AWS VPC гласит, что в каждом регионе есть VPC по умолчанию, а FAQ по AWS VPC уточняет: аккаунты, созданные до 18 марта 2013 года, могут использовать VPC по умолчанию в тех включенных регионах, где они ранее не запускали инстансы EC2 и не подготавливали ресурсы ELB, RDS, ElastiCache или Redshift. Удаленную VPC по умолчанию можно создать заново, но нельзя восстановить. Google Cloud предоставляет каждому новому проекту сеть по умолчанию, если администратор не отключит эту опцию, а Azure создает виртуальную сеть вместе с новой VM, если вы не выберете существующую. В любом случае ваша облачная VM находится внутри одной из этих сетей, независимо от того, запрашивали вы это или нет.
Что именно вам нужно
- Один сервер для веб-сайта, приложения, игрового сервера или VPN: VPS. Первые десять минут на новом VPS важнее, чем название тарифного плана.
- Несколько серверов, которые должны взаимодействовать друг с другом по приватным адресам: VPC или функция частной сети, которую провайдер VPS может называть иначе.
- Нагрузка, которая должна пережить выход из строя целого дата-центра: облако с несколькими зонами доступности, что подразумевает использование виртуальных машин внутри VPC.
- Полный контроль над ядром или собственный гипервизор: VPS на базе KVM (с включенной вложенной виртуализацией, если нужен гипервизор) или выделенный сервер. При сравнении обязательно проверьте тип диска, используемый в тарифе.
Большинству проектов на одном сервере VPC не требуется. Функция частной сети, входящая в состав VPS, выполняет ту же задачу для небольшого количества машин.
FAQ
Является ли VPS тем же самым, что и VM?
Обычно да, но не всегда. Любой VPS, созданный на базе KVM, Xen или VMware, является виртуальной машиной, но не каждая виртуальная машина — это VPS, так как VM, запущенная на вашем ноутбуке в VirtualBox, не является коммерческим продуктом. Не каждый VPS также является VM: тарифные планы на базе OpenVZ или LXC — это контейнеры, использующие общее ядро хоста, при этом сама OpenVZ называет свои контейнеры виртуальными частными серверами. Уточните информацию с помощью systemd-detect-virt, прежде чем рассчитывать на доступ к ядру.
Могу ли я разместить VPS внутри VPC?
Обычно нет, так как VPC — это конструкция конкретного облачного провайдера; AWS также поддерживает совместное использование подсетей между аккаунтами в рамках одной организации. VPS от независимого провайдера находится в сети этого провайдера. Если вам нужны частные каналы связи между ними, создайте VPN-туннель, через который VPS сможет обращаться к частным подсетям.
Почему мой счет за облачные услуги выше, чем за аналогичный VPS?
Цена инстанса — это лишь часть расходов. Хранилище, снимки (snapshots), исходящий трафик, балансировщики нагрузки и NAT-шлюзы — это отдельные статьи расходов в облачных системах с тарификацией по факту использования, и один только NAT-шлюз может стоить в месяц дороже, чем небольшой VPS. VPS с фиксированной ценой включает диск и лимит трафика в одну сумму, поэтому одна и та же рабочая нагрузка там часто обходится дешевле.
Как проверить, есть ли у моего сервера реальный доступ к ядру?
Выполните systemd-detect-virt и ознакомьтесь с ответом. kvm, xen или vmware (либо amazon на новых инстансах EC2) означают, что у вас собственное ядро и вы можете загружать в него модули с помощью modprobe. lxc, lxc-libvirt или openvz означают, что вы используете общее ядро хоста; загрузка модулей требует прав ядра хоста, в то время как настройки в пространстве имен (namespaced settings) в /proc/sys, включая сетевые параметры, остаются доступными для изменения, если это разрешено хостом. Вторым подтверждением служит uname -r, который на тарифных планах с контейнерами часто сообщает версию ядра, которая никогда не поставлялась с вашим дистрибутивом.