VPS, VM e VPC: qual é a diferença?
Entenda a diferença entre VM, VPS e VPC: VM é a tecnologia, VPS é o servidor alugado e VPC é uma rede privada na cloud, não uma máquina.
VPS, VM e VPC num único parágrafo
Uma VM (máquina virtual) é um computador criado por software: um hypervisor divide um servidor físico em várias máquinas independentes, e cada uma executa o seu próprio kernel. Um VPS (servidor privado virtual) é um servidor alugado como produto, com um sistema operativo, normalmente acesso root e um preço mensal. A maioria dos planos VPS são máquinas virtuais, mas alguns fornecedores vendem contentores que partilham o kernel do host sob o mesmo nome. Uma VPC (cloud privada virtual) não é um servidor. É uma rede privada que define dentro de uma conta cloud e na qual coloca recursos. VM é a tecnologia habitual. VPS é o produto. VPC é a rede à volta do produto.
Duas destas palavras descrevem uma máquina. A terceira descreve uma rede. Quase toda a confusão resulta dessa diferença, porque as pessoas comparam os três termos como se fossem três produtos na mesma prateleira.
O que é uma VM
Um hypervisor é a camada que emula o hardware. Atribui a cada guest uma CPU virtual, uma quantidade de memória, um disco virtual e uma placa de rede virtual. Depois impede que os guests vejam uns aos outros. KVM, Xen, Hyper-V e VMware ESXi são os mais comuns em servidores. Os hypervisors modernos utilizam extensões de virtualização da CPU (Intel VT-x, AMD-V), por isso as instruções do guest são executadas na CPU real quase à velocidade nativa, em vez de serem interpretadas.
A parte relevante para um sysadmin é o kernel. Uma VM arranca o seu próprio kernel. Por isso, pode escolher a distribuição, carregar módulos do kernel e definir valores de sysctl que não se aplicam a mais ninguém. Isto é diferente de um container (LXC, Docker), que partilha o kernel do host e tem apenas a sua própria visão dos processos e ficheiros.
Pode ver a resposta em qualquer sistema Linux com um comando.
systemd-detect-virtkvm significa que está numa máquina virtual num hypervisor KVM. lxc ou openvz significa que está num container com o kernel de outro sistema. none significa que não foi detetada nenhuma virtualização suportada. Se o comando não existir, lscpu | grep -i hypervisor mostra informações sobre o hypervisor, mas não identifica containers.
O que é uma VPS
Uma VPS é uma oferta comercial baseada em um servidor isolado, geralmente uma VM. A tecnologia subjacente é a virtualização, e o termo "VPS" inclui os elementos que tornam o serviço comercializável: uma imagem de sistema operacional que pode ser reinstalada, um endereço IP, um limite de largura de banda, um painel de controle, um preço mensal e alguém para contatar quando o servidor hospedeiro falha. "Privada" serve para diferenciá-la da hospedagem compartilhada, na qual centenas de sites usam o mesmo sistema operacional e a mesma configuração do PHP.
Como VPS é o nome de um produto, e não um termo técnico, nem sempre significa uma VM completa. Alguns planos econômicos vendem contêineres com esse mesmo nome, e o OpenVZ, uma plataforma de contêineres usada por muitos desses serviços, descreve os próprios contêineres como "também conhecidos como servidores virtuais privados". A diferença aparece na primeira vez que você precisa do kernel. Em um plano baseado em contêiner, o kernel pertence ao servidor hospedeiro e você não pode alterá-lo. sudo modprobe wireguard falha se não conseguir encontrar o módulo no diretório de módulos do contêiner, mesmo que o servidor hospedeiro já o tenha carregado; carregar um módulo ausente também exige permissão para alterar o kernel do servidor hospedeiro. Se o kernel do servidor hospedeiro não tiver suporte a WireGuard, a criação da interface (ip link add dev wg0 type wireguard) falha com RTNETLINK answers: Operation not supported. wg-quick então usa como fallback uma implementação em espaço de usuário (wireguard-go por padrão), se houver uma instalada, exibindo "Missing WireGuard kernel module. Falling back to slow userspace implementation." Esse fallback ainda exige que o contêiner tenha permissão para usar o dispositivo TUN, o que nem todo servidor hospedeiro permite. Sem um binário de espaço de usuário, wg-quick para com o erro. Em um plano KVM, o kernel é seu: você instala o WireGuard, carrega o módulo se ele ainda não estiver carregado, configura a interface e o túnel é estabelecido. Se você pretende executar Docker, uma VPN, kernels personalizados ou suas próprias máquinas virtuais dentro do servidor, verifique o tipo de virtualização antes de comprar. Executar máquinas virtuais dentro de uma VPS exige KVM com a virtualização aninhada ativada no servidor hospedeiro, o que reduz ainda mais o conjunto de planos disponíveis.
O que é uma VPC
Uma VPC é uma rede definida por software dentro de um provedor de nuvem. Na maioria das nuvens, você atribui a ela uma faixa de endereços na notação CIDR, como 10.0.0.0/16, e depois cria sub-redes dentro dela (o Google Cloud não usa uma faixa para toda a rede e atribui a cada sub-rede regional a sua própria faixa). Você associa tabelas de rotas e coloca regras de firewall (grupos de segurança) na frente dos recursos internos. A VPC não tem CPU, memória nem disco. Não há nada nela para acessar. Excluir todos os servidores de uma VPC deixa a VPC no lugar, vazia e geralmente gratuita.
O que uma VPC oferece é endereçamento privado. Dois servidores na mesma VPC se comunicam por endereços como 10.0.1.15 na rede interna do provedor. Assim, esse tráfego nunca passa pela internet pública e não é cobrado como saída para a internet. Um banco de dados pode então escutar apenas no seu endereço privado, sem expor nenhuma porta ao mundo.
ip -4 addr showUm endereço dentro de 10.0.0.0/8, 172.16.0.0/12 ou 192.168.0.0/16 é privado. Ter apenas um endereço público não torna o servidor acessível pela internet: as regras de roteamento e de firewall também precisam permitir o acesso.
Uma VPC torna o meu servidor privado?
Não. Este é o mal-entendido mais dispendioso entre os três termos. Uma VPC controla o encaminhamento e o endereçamento. Não determina se a Internet pode alcançar uma máquina. Se uma instância tiver um IP público, a sub-rede tiver uma rota para a Internet e as regras de segurança permitirem a porta 22 a partir de 0.0.0.0/0, ela estará exposta exatamente como qualquer outro servidor, com ou sem VPC. Numa VPC predefinida, essa rota para a Internet já está configurada. O isolamento obtido com uma VPC consiste em poder atribuir a um recurso nenhum endereço público e em definir regras que indiquem quais as sub-redes que podem comunicar entre si.
As três expressões também correspondem a tipos diferentes de isolamento. Uma VM isola a computação: o hypervisor separa o tempo de CPU e a memória, para que outro guest não possa ler a sua RAM. Esse isolamento é mais fraco para o disco e a rede, onde um vizinho ocupado no mesmo host ainda pode tornar o servidor mais lento. Um VPS baseado em contentores partilha um kernel, pelo que um erro ao nível do kernel representa um risco partilhado. Uma VPC não isola nada ao nível da computação. Apenas estrutura a rede.
O modelo mental de preços
Uma VPS normalmente é vendida por um preço mensal fixo para uma máquina fixa. Você sabe o valor da fatura antes do início do mês, e o disco e a franquia de transferência estão incluídos nesse valor. Essa previsibilidade é o principal motivo para escolher uma VPS em vez de uma instância de nuvem para uma carga de trabalho pequena.
Uma VM na nuvem é cobrada conforme o uso. A instância é cobrada por hora ou por segundo, enquanto o disco, os snapshots, o balanceador de carga e o tráfego de saída são cobrados separadamente. A própria VPC normalmente é gratuita, mas os componentes gerenciados associados a ela não são: um gateway NAT que permite que instâncias privadas acessem a internet é cobrado por hora, e a forma de cobrança do tráfego depende do provedor. A AWS acrescenta uma cobrança por cada gigabyte processado pelo gateway NAT, enquanto a OVHcloud informa que o Public Cloud Gateway é cobrado por hora e conforme o uso, com o tráfego incluído. Na AWS, o tráfego que atravessa zonas de disponibilidade também é cobrado, enquanto o Azure não cobra pelo tráfego entre suas zonas na mesma região. Em 27 de outubro de 2026, o guia de AWS VPC informa que existe uma VPC padrão em cada região, enquanto o FAQ de AWS VPC informa que contas criadas antes de 18 de março de 2013 podem usar VPCs padrão em regiões habilitadas onde ainda não tenham iniciado instâncias EC2 nem provisionado recursos ELB, RDS, ElastiCache ou Redshift. Uma VPC padrão excluída pode ser recriada, mas não restaurada. O Google Cloud fornece uma rede padrão para cada novo projeto, a menos que um administrador desative essa opção, e o Azure cria uma rede virtual junto com uma nova VM se você não escolher uma existente. De qualquer forma, sua VM na nuvem fica dentro de uma dessas redes, tenha você solicitado isso ou não.
De qual deles você realmente precisa
- Um único servidor para um site, uma aplicação, um servidor de jogos ou uma VPN: um VPS. Os primeiros dez minutos num VPS novo são mais importantes do que o nome do plano.
- Vários servidores que precisam de comunicar entre si através de endereços privados: uma VPC ou a funcionalidade de rede privada que o seu fornecedor de VPS disponibiliza com outro nome.
- Uma carga de trabalho que tenha de continuar a funcionar mesmo que um datacenter inteiro fique indisponível: uma cloud com várias zonas, o que significa VMs dentro de uma VPC.
- Controlo total do kernel ou o seu próprio hypervisor sobre a infraestrutura: um VPS baseado em KVM, com virtualização aninhada ativada se quiser executar o hypervisor, ou um servidor dedicado. Durante a comparação, verifique também o tipo de disco usado pelo plano.
A maioria dos projetos com um único servidor nunca precisa de uma VPC. A funcionalidade de rede privada incluída num VPS cumpre a mesma função para algumas máquinas.
FAQ
Um VPS é a mesma coisa que uma VM?
Geralmente, mas nem sempre. Todo VPS criado com KVM, Xen ou VMware é uma máquina virtual, mas nem toda máquina virtual é um VPS, porque a VM executada no seu laptop com VirtualBox não é produto de ninguém. Nem todo VPS é uma VM: planos baseados em OpenVZ ou LXC são containers que compartilham o kernel do host, e o próprio OpenVZ chama seus containers de virtual private servers. Confirme com systemd-detect-virt antes de depender do acesso ao kernel.
Posso colocar um VPS dentro de uma VPC?
Normalmente não, porque uma VPC é uma construção de um único provedor de nuvem; a AWS também permite compartilhar suas subnets entre contas da mesma organização. Um VPS de um provedor independente fica na rede desse provedor. Se você precisar de links privados entre os dois, crie um túnel VPN entre eles; o VPS então acessará as subnets privadas por esse túnel.
Por que minha conta da nuvem é mais alta que a de um VPS equivalente?
O preço da instância é apenas uma parte do custo. Storage, snapshots, tráfego de saída, load balancers e NAT gateways são itens separados em uma nuvem com cobrança por uso, e um NAT gateway sozinho pode custar mais por mês que um VPS pequeno. Um VPS com preço fixo inclui o disco e uma franquia de transferência em um único valor, por isso a mesma carga de trabalho costuma parecer mais barata nele.
Como verifico se meu servidor tem acesso real ao kernel?
Execute systemd-detect-virt e leia a resposta. kvm, xen ou vmware (ou amazon em instâncias EC2 mais novas) significam que você tem seu próprio kernel e modprobe pode carregar módulos nele. lxc, lxc-libvirt ou openvz significam que você compartilha o kernel do host; carregar módulos exige privilégios no kernel do host, enquanto as configurações com namespace em /proc/sys, incluindo as configurações de rede, continuam configuráveis quando o host permite. Uma segunda confirmação é uname -r, que em um plano de container frequentemente informa uma versão do kernel que a sua distribuição nunca lançou.