VPS, VM e VPC: differenze e quale scegliere
VM è la tecnologia, VPS è la macchina virtuale venduta come servizio, VPC è la rete privata nel cloud: ecco le differenze e cosa ti serve davvero.
VPS, VM e VPC in un solo paragrafo
Una VM (macchina virtuale) è un computer realizzato tramite software: un hypervisor divide un server fisico in diverse macchine indipendenti e ciascuna esegue il proprio kernel. Un VPS (server virtuale privato) è una di queste macchine virtuali offerta in noleggio come prodotto, con un sistema operativo, accesso root e un prezzo mensile. Una VPC (cloud privato virtuale) non è affatto un server. È una rete privata definita all’interno di un account cloud, nella quale si inseriscono le risorse. VM è la tecnologia. VPS è il prodotto. VPC è la rete che circonda il prodotto.
Due di questi termini descrivono una macchina. Il terzo descrive una rete. Quasi tutta la confusione deriva da questa differenza, perché vengono messi a confronto come se fossero tre prodotti sullo stesso scaffale.
Che cos’è una VM
Un hypervisor è il livello software che emula l’hardware. Assegna a ogni guest una CPU virtuale, una quantità di memoria, un disco virtuale e una scheda di rete virtuale, quindi impedisce ai guest di vedersi tra loro. KVM, Xen, Hyper-V e VMware ESXi sono gli hypervisor più comuni sui server. Gli hypervisor moderni usano le estensioni della CPU per la virtualizzazione (Intel VT-x, AMD-V), quindi le istruzioni del guest vengono eseguite dalla CPU reale a una velocità prossima a quella nativa, invece di essere interpretate.
Per un sysadmin, la parte importante è il kernel. Una VM avvia il proprio kernel, quindi puoi scegliere la distribuzione, caricare i moduli del kernel e impostare valori sysctl che si applicano soltanto alla VM. È diverso da un container (LXC, Docker), che condivide il kernel dell’host e dispone soltanto di una propria vista dei processi e dei file.
Puoi verificarlo su qualsiasi sistema Linux con un solo comando.
systemd-detect-virtkvm indica che ti trovi su una macchina virtuale gestita da un hypervisor KVM. lxc o openvz indica che ti trovi in un container che usa il kernel di un altro sistema. none indica che il server fisico è tuo. Se il comando non è disponibile, lscpu | grep -i hypervisor mostra la stessa informazione tramite i flag della CPU.
Che cos'è un VPS
Un VPS è un prodotto commerciale basato su una VM. La tecnologia sottostante è la virtualizzazione, mentre il termine "VPS" comprende gli elementi che rendono il servizio vendibile: un'immagine del sistema operativo che puoi reinstallare, un indirizzo IP, una quantità di banda inclusa, un pannello di controllo, un prezzo mensile e un contatto a cui scrivere quando l'host si arresta. Il termine "privato" serve a distinguerlo dall'hosting condiviso, in cui centinaia di siti usano lo stesso sistema operativo e la stessa configurazione PHP.
Poiché VPS è il nome di un prodotto e non un termine tecnico, non indica sempre una VM completa. Alcuni piani economici offrono container usando lo stesso termine. La differenza emerge la prima volta che devi usare il kernel. In un piano basato su container, sudo modprobe wireguard non riesce con RTNETLINK answers: Operation not supported o modprobe: FATAL: Module wireguard not found, perché il kernel appartiene all'host e non puoi modificarlo. In un piano KVM il modulo viene caricato e il tunnel viene stabilito. Se prevedi di eseguire Docker, una VPN, kernel personalizzati o macchine virtuali personali all'interno del server, verifica il tipo di virtualizzazione prima dell'acquisto. Eseguire macchine virtuali all'interno di un VPS richiede KVM con la virtualizzazione annidata abilitata sull'host, una condizione disponibile in un numero ancora più limitato di piani.
Che cos'è una VPC
Una VPC è una rete definita via software all'interno di un provider cloud. Le si assegna un intervallo di indirizzi in notazione CIDR, ad esempio 10.0.0.0/16, quindi si creano le subnet, si associano le tabelle di routing e si applicano regole firewall (security group) davanti alle risorse contenute nella VPC. Non dispone di CPU, memoria o disco. Non c'è nulla a cui accedere. Se si eliminano tutti i server di una VPC, la VPC resta vuota e in genere non genera costi.
Il vantaggio principale di una VPC è l'indirizzamento privato. Due server nella stessa VPC comunicano tramite indirizzi come 10.0.1.15 sulla rete interna del provider; il traffico non attraversa mai Internet pubblico e non viene fatturato come traffico in uscita verso Internet. Un database può quindi restare in ascolto soltanto sul proprio indirizzo privato e nessuna porta viene esposta pubblicamente.
ip -4 addr showUn indirizzo appartenente a 10.0.0.0/8, 172.16.0.0/12 o 192.168.0.0/16 è privato. Un indirizzo pubblico sulla stessa macchina significa che il server è raggiungibile direttamente da Internet, indipendentemente dall'oggetto di rete in cui si trova.
Una VPC rende privato il mio server?
No. Questo è l'equivoco più costoso tra i tre termini. Una VPC gestisce il routing e l'indirizzamento. Non determina se Internet può raggiungere una macchina. Se un'istanza ha un indirizzo IP pubblico e le regole di sicurezza consentono l'accesso alla porta 22 da 0.0.0.0/0, è esposta esattamente come qualsiasi altro server, con o senza VPC. L'isolamento offerto da una VPC consiste nella possibilità di assegnare a una risorsa nessun indirizzo pubblico, oltre che nel definire regole che stabiliscono quali subnet possono comunicare tra loro.
I tre termini indicano inoltre diversi tipi di isolamento. Una VM isola le risorse di calcolo: l'hypervisor separa il tempo CPU e la memoria, quindi un altro guest non può leggere la RAM della macchina. Questo isolamento è più debole per il disco e la rete, dove un vicino che utilizza intensamente le risorse sullo stesso host può comunque rallentare il sistema. Un VPS basato su container condivide un unico kernel, quindi un bug a livello di kernel costituisce un rischio comune. Una VPC non isola affatto le risorse di calcolo. Modella soltanto la rete.
Il modello mentale dei prezzi
Un VPS viene normalmente venduto a un prezzo mensile fisso per una macchina con caratteristiche definite. Conosci il costo prima dell’inizio del mese e il disco e la quota di trasferimento dati sono inclusi. Questa prevedibilità è il motivo principale per cui, per un carico di lavoro ridotto, si sceglie un VPS invece di un’istanza cloud.
Una VM cloud viene fatturata a consumo. L’istanza viene addebitata su base oraria o al secondo, mentre il disco, gli snapshot, il load balancer e il traffico in uscita vengono fatturati separatamente. La VPC è normalmente gratuita, ma i componenti gestiti collegati a essa non lo sono: un NAT gateway che consente alle istanze private di raggiungere Internet viene addebitato su base oraria e per gigabyte, e anche il traffico tra availability zone viene fatturato. A luglio 2026, i principali cloud inseriscono ancora automaticamente ogni nuova istanza in una VPC predefinita. Quindi ne utilizzi una indipendentemente dal fatto che tu l’abbia richiesta o meno.
Quale soluzione ti serve davvero
- Un solo server per un sito web, un'applicazione, un game server o una VPN: un VPS. I primi dieci minuti su un nuovo VPS sono più importanti dell'etichetta del piano.
- Più server che devono raggiungersi tramite indirizzi privati: una VPC oppure la funzionalità di rete privata offerta dal provider VPS con un nome diverso.
- Un carico di lavoro che deve continuare a funzionare anche se un intero datacenter diventa indisponibile: un cloud con più zone, quindi VM all'interno di una VPC.
- Controllo completo del kernel oppure un hypervisor proprio eseguito sopra l'infrastruttura: un VPS basato su KVM o un server dedicato. Durante il confronto, verifica anche il tipo di disco incluso nel piano.
La maggior parte dei progetti con un solo server non richiede una VPC. La funzionalità di rete privata inclusa in un VPS svolge lo stesso compito per un numero ridotto di macchine.
FAQ
Un VPS è la stessa cosa di una VM?
Un VPS è una VM che qualcuno ti vende. Ogni VPS basato su KVM, Xen o VMware è una macchina virtuale, ma non ogni macchina virtuale è un VPS, perché la VM in esecuzione sul tuo laptop tramite VirtualBox non è un prodotto offerto da qualcuno. Alcuni piani economici etichettati come VPS sono in realtà container, non VM complete. Verifica quindi con systemd-detect-virt prima di fare affidamento sull'accesso al kernel.
Posso inserire un VPS in una VPC?
Di norma no, perché una VPC è una struttura di uno specifico provider cloud e contiene soltanto risorse create nello stesso account. Un VPS di un provider indipendente si trova sulla rete di quel provider. Se ti servono collegamenti privati tra i due ambienti, devi creare un tunnel VPN tra loro. Il VPS potrà quindi raggiungere le subnet private attraverso il tunnel.
Perché la mia fattura cloud è più alta di quella di un VPS equivalente?
Il prezzo dell'istanza è solo una parte del costo. In un cloud con fatturazione a consumo, storage, snapshot, traffico in uscita, load balancer e NAT gateway sono voci separate. Un NAT gateway, da solo, può costare più al mese di un VPS di piccole dimensioni. Un VPS a prezzo fisso include il disco e una quantità di traffico trasferibile in un unico importo. Per questo, lo stesso carico di lavoro spesso risulta più economico su un VPS.
Come posso verificare se il mio server ha un accesso effettivo al kernel?
Esegui systemd-detect-virt e leggi la risposta. kvm, xen o vmware indicano che hai un kernel dedicato e che modprobe funziona. lxc, lxc-libvirt o openvz indicano invece che condividi il kernel dell'host. I comandi che caricano moduli o scrivono in /proc/sys falliranno con Operation not supported. Una seconda verifica consiste nell'eseguire uname -r. In un piano basato su container, questo comando spesso restituisce una versione del kernel che la tua distribuzione non ha mai rilasciato.