VPS, VM ve VPC Arasındaki Farklar Nelerdir?
VM bir teknolojiyken VPS kiralanan bir sunucu ürünü, VPC ise bulut içindeki özel bir ağdır. Bu rehberde üç terimin teknik tanımlarını ve birbirlerinden farklarını öğrenin.
VPS, VM ve VPC tek bir paragrafta
VM (sanal makine), yazılımdan oluşan bir bilgisayardır: Bir hipervizör, fiziksel bir sunucuyu birbirinden bağımsız birkaç makineye böler ve her biri kendi çekirdeğini çalıştırır. VPS (sanal özel sunucu), size bir ürün olarak kiralanan; işletim sistemi, genellikle root erişimi ve aylık fiyatı olan bir sunucudur. Çoğu VPS planı sanal makinedir, ancak bazı sağlayıcılar aynı isim altında ana makinenin çekirdeğini paylaşan konteynerler satar. VPC (sanal özel bulut) ise bir sunucu değildir. Bir bulut hesabı içinde tanımladığınız ve içine kaynaklarınızı yerleştirdiğiniz özel bir ağdır. VM kullanılan teknolojidir. VPS satılan üründür. VPC ise ürünün etrafındaki ağdır.
Bu terimlerden ikisi bir makineyi, üçüncüsü ise bir ağı tanımlar. Karmaşanın neredeyse tamamı bu uyumsuzluktan kaynaklanır; çünkü insanlar bunları tek bir raftaki üç ürünmüş gibi kıyaslar.
Sanal makine nedir
Hypervisor, donanım gibi davranan katmandır. Her konuk sisteme sanal bir CPU, bellek bloğu, sanal disk ve sanal ağ kartı tahsis eder; ardından konukların birbirini görmesini engeller. KVM, Xen, Hyper-V ve VMware ESXi sunucularda yaygın olarak kullanılanlardır. Modern hypervisor'lar CPU sanallaştırma uzantılarına (Intel VT-x, AMD-V) dayanır; bu sayede konuk komutları yorumlanmak yerine gerçek CPU üzerinde yerel hıza yakın bir performansla çalıştırılır.
Sistem yöneticisi için önemli olan kısım çekirdektir (kernel). Bir VM kendi çekirdeğini başlatır; bu nedenle dağıtımı siz seçer, çekirdek modüllerini siz yükler ve yalnızca sizi ilgilendiren sysctl değerlerini siz belirlersiniz. Bu durum, ana makinenin çekirdeğini paylaşan ve yalnızca süreçler ile dosyalar üzerinde kendi görünümüne sahip olan container (LXC, Docker) yapısından farklıdır.
Cevabı herhangi bir Linux makinesinde tek bir komutla görebilirsiniz.
systemd-detect-virtkvm, bir KVM hypervisor üzerinde sanal makine olduğunuz anlamına gelir. lxc veya openvz, başka birinin çekirdeği üzerinde bir container içinde olduğunuzu gösterir. none, desteklenen bir sanallaştırma algılanmadığı anlamına gelir. Komut eksikse, lscpu | grep -i hypervisor hypervisor bilgilerini gösterir ancak container'ları tanımlamaz.
VPS nedir
VPS, izole edilmiş bir sunucu etrafına sarılmış ticari bir pakettir; genellikle bir VM'dir. Temelindeki teknoloji sanallaştırmadır ve "VPS" terimi, onu satılabilir kılan özellikleri ifade eder: yeniden kurulabilir bir OS imajı, bir IP adresi, bant genişliği kotası, bir kontrol paneli, aylık fiyatlandırma ve ana sunucu çöktüğünde iletişime geçilecek bir destek birimi. "Private" (özel) ifadesi, yüzlerce sitenin tek bir işletim sistemini ve tek bir PHP yapılandırmasını paylaştığı paylaşımlı barındırma (shared hosting) hizmetlerinden ayrılmasını sağlar.
VPS bir ürün adı olup teknik bir terim olmadığından, her zaman tam bir VM anlamına gelmez. Bazı bütçe dostu planlar, konteynerleri aynı isimle satar; bunların birçoğunun arkasındaki konteyner platformu olan OpenVZ, kendi konteynerlerini "sanal özel sunucular olarak da bilinir" şeklinde tanımlar. Fark, çekirdeğe (kernel) ihtiyaç duyduğunuz ilk anda ortaya çıkar. Konteyner tabanlı bir planda çekirdek, ana sunucuya aittir ve onu değiştirmenize izin verilmez. sudo modprobe wireguard, ana sunucu modülü yüklemiş olsa bile konteynerin modül dizininde ilgili modülü bulamazsa başarısız olur; eksik bir modülü yüklemek de ana sunucu çekirdeğini değiştirme izni gerektirir. Ana sunucu çekirdeğinde WireGuard desteği yoksa, arayüz oluşturma (ip link add dev wg0 type wireguard) işlemi RTNETLINK answers: Operation not supported hatasıyla başarısız olur. wg-quick, eğer yüklüyse bir kullanıcı alanı (userspace) uygulamasına (varsayılan olarak wireguard-go) geri döner ve "Missing WireGuard kernel module. Falling back to slow userspace implementation." mesajını yazdırır. Bu geri dönüş mekanizması bile konteynerin TUN cihazını kullanma iznine sahip olmasını gerektirir ki her ana sunucu buna izin vermez; kullanıcı alanı ikili dosyası (binary) yoksa wg-quick hata vererek durur. KVM tabanlı bir planda çekirdek size aittir: WireGuard'ı kurar, yüklü değilse modülü yükler, arayüzü yapılandırırsınız ve tünel ayağa kalkar. Sunucu içerisinde Docker, VPN, özel çekirdekler veya kendi sanal makinelerinizi çalıştırmayı planlıyorsanız, satın almadan önce sanallaştırma türünü kontrol edin. Bir VPS içinde sanal makineler çalıştırmak, ana sunucuda iç içe sanallaştırmanın (nested virtualisation) açık olduğu KVM desteği gerektirir; bu da daha kısıtlı bir plan seçeneğidir.
VPC nedir
VPC, bir bulut sağlayıcısı içindeki yazılım tanımlı bir ağdır. Çoğu bulut platformunda, 10.0.0.0/16 gibi CIDR notasyonunda bir adres aralığı tanımlar ve ardından bu aralıktan alt ağlar (subnet) oluşturursunuz (Google Cloud, ağ genelindeki aralık adımını atlar ve her bölgesel alt ağa kendi aralığını verir). VPC içine yönlendirme tabloları ekler ve içindeki kaynakların önüne güvenlik duvarı kuralları (güvenlik grupları) koyarsınız. VPC'nin CPU, bellek veya diski yoktur. İçine giriş yapılabilecek bir sistem değildir. Bir VPC içindeki tüm sunucuları silmek, VPC'nin boş ve genellikle ücretsiz bir şekilde orada kalmasına neden olur.
VPC size özel adresleme imkanı sağlar. Aynı VPC içindeki iki sunucu, sağlayıcının dahili yapısı üzerinde 10.0.1.15 gibi adresler üzerinden haberleşir; böylece trafik asla genel internete çıkmaz ve internet çıkış trafiği olarak ücretlendirilmez. Bir veritabanı yalnızca kendi özel adresi üzerinden dinleme yapabilir ve hiçbir port dünyaya açılmaz.
ip -4 addr show10.0.0.0/8, 172.16.0.0/12 veya 192.168.0.0/16 içindeki bir adres özeldir. Yalnızca genel bir adres, sunucuyu internetten erişilebilir kılmaz: yönlendirme ve güvenlik duvarı kurallarının da erişime izin vermesi gerekir.
VPC sunucumu özel (private) hale getirir mi?
Hayır; bu, üç terim arasındaki en maliyetli yanlış anlaşılmadır. VPC, yönlendirme ve adreslemeyi kontrol eder. İnternetin bir makineye erişip erişemeyeceğine karar vermez. Eğer bir instance genel (public) bir IP adresine sahipse, subnet'i internete yönlendirme yapıyorsa ve güvenlik kuralları 0.0.0.0/0 üzerinden 22 numaralı porta izin veriyorsa, bu sunucu VPC içinde olsun ya da olmasın aynı derecede dış dünyaya açıktır. Varsayılan bir VPC üzerinde internete giden bu yol zaten tanımlıdır. VPC ile elde ettiğiniz yalıtım, bir kaynağa hiç genel adres vermeme yeteneği ve hangi subnet'in hangisiyle iletişim kurabileceğini belirleyen kurallardır.
Bu üç kavram farklı türde yalıtım vaat eder. Bir VM, işlem gücünü yalıtır: hipervizör, CPU süresini ve belleği ayırır; böylece başka bir konuk sistem RAM'inizi okuyamaz. Bu yalıtım disk ve ağ tarafında daha zayıftır; aynı ana makine üzerindeki yoğun bir komşu, sisteminizi yavaşlatabilir. Container tabanlı bir VPS ise tek bir kernel'ı paylaşır; bu nedenle kernel seviyesindeki bir hata ortak bir risktir. VPC ise işlem gücüyle ilgili hiçbir şeyi yalıtmaz. Yalnızca ağ yapısını şekillendirir.
Fiyatlandırma zihinsel modeli
Bir VPS genellikle sabit bir makine için sabit bir aylık fiyatla satılır. Ay başlamadan önce faturayı bilirsiniz; disk ve veri transferi kotası bu fiyata dahildir. Bu öngörülebilirlik, küçük iş yükleri için insanların bulut örneği yerine VPS tercih etmesinin temel nedenidir.
Bulut VM'leri ise kullanıma göre ücretlendirilir. Örnek saatlik veya saniyelik olarak faturalandırılır; disk, snapshot, yük dengeleyici ve dışa giden trafik ayrı ayrı ücretlendirilir. VPC'nin kendisi genellikle ücretsizdir ancak ona bağlı yönetilen parçalar ücretlidir: özel örneklerin internete erişmesini sağlayan bir NAT gateway saatlik olarak faturalandırılır ve trafik ücretlendirmesi sağlayıcıya göre değişir. AWS, NAT gateway üzerinden geçen her gigabayt için ek ücret alırken, OVHcloud Public Cloud Gateway'in saatlik ve kullanım bazlı ücretlendirildiğini, trafiğin ise dahil olduğunu belirtir. AWS'de kullanılabilirlik alanları (availability zones) arasında geçen trafik de faturalandırılırken, Azure aynı bölgedeki bölgeler arası trafik için ücret almaz. 27 Ekim 2026 itibarıyla AWS VPC kılavuzu, her bölgede varsayılan bir VPC'niz olduğunu belirtirken, AWS VPC FAQ sayfası 18 Mart 2013'ten önce oluşturulan hesapların, daha önce EC2 örneği başlatmadıkları veya ELB, RDS, ElastiCache ya da Redshift kaynağı sağlamadıkları etkin bölgelerde varsayılan VPC'leri kullanabileceğini ifade eder. Silinen bir varsayılan VPC yeniden oluşturulabilir ancak geri yüklenemez. Google Cloud, bir yönetici devre dışı bırakmadığı sürece her yeni projeye varsayılan bir ağ tanımlar; Azure ise mevcut bir sanal ağ seçmediğiniz takdirde yeni bir VM ile birlikte bir sanal ağ oluşturur. Her iki durumda da bulut VM'niz, siz isteseniz de istemeseniz de bu ağlardan birinin içinde yer alır.
Gerçekte hangisine ihtiyacınız var
- Bir web sitesi, uygulama, oyun sunucusu veya VPN için tek bir sunucu: bir VPS. Yeni bir VPS üzerindeki ilk on dakika, planın üzerindeki etiketten daha önemlidir.
- Birbirine özel adresler üzerinden ulaşması gereken birden fazla sunucu: bir VPC veya VPS sağlayıcınızın farklı bir isimle sunduğu özel ağ özelliği.
- Tüm bir veri merkezinin devre dışı kalması durumunda bile çalışmaya devam etmesi gereken bir iş yükü: birden fazla bölgeye sahip bir bulut yapısı; bu da bir VPC içindeki sanal makineler (VM) anlamına gelir.
- Çekirdek üzerinde tam kontrol veya üzerinde kendi hipervizörünüzü çalıştırma ihtiyacı: KVM tabanlı bir VPS (hipervizör istiyorsanız iç içe sanallaştırma/nested virtualisation etkinleştirilmiş şekilde) veya fiziksel bir sunucu; karşılaştırma yaparken planın arkasındaki disk türünü kontrol edin.
Çoğu tek sunuculu proje asla bir VPC'ye ihtiyaç duymaz. Bir VPS ile birlikte sunulan özel ağ özelliği, birkaç makine için aynı işi görür.
FAQ
VPS ile VM aynı şey midir?
Genellikle öyledir ancak her zaman değil. KVM, Xen veya VMware üzerinde oluşturulan her VPS bir sanal makinedir (VM); ancak her sanal makine bir VPS değildir. Örneğin, dizüstü bilgisayarınızda VirtualBox üzerinde çalışan bir VM, ticari bir ürün değildir. Her VPS de bir VM değildir: OpenVZ veya LXC üzerinde oluşturulan planlar, ana makinenin çekirdeğini (kernel) paylaşan konteynerlerdir; OpenVZ ise kendi konteynerlerini "sanal özel sunucu" olarak adlandırır. Çekirdek erişimine ihtiyaç duyduğunuz durumlarda, işleme başlamadan önce systemd-detect-virt ile durumu teyit edin.
Bir VPS'i VPC içine yerleştirebilir miyim?
Genellikle hayır; çünkü VPC, tek bir bulut sağlayıcısının sunduğu bir yapıdır. AWS, alt ağlarını aynı organizasyon içindeki hesaplar arasında paylaşmayı destekler. Bağımsız bir sağlayıcıdan alınan VPS, o sağlayıcının ağında barınır. İki yapı arasında özel bağlantılara ihtiyaç duyarsanız, aralarında bir VPN tüneli kurmanız gerekir; VPS, özel alt ağlara bu tünel üzerinden erişim sağlar.
Bulut faturam neden eşdeğer bir VPS'ten daha yüksek?
Instance fiyatı maliyetin yalnızca bir parçasıdır. Depolama, snapshot'lar, dışa giden trafik, yük dengeleyiciler ve NAT gateway'ler, ölçümlü bulut sistemlerinde ayrı kalemlerdir. Tek başına bir NAT gateway, küçük bir VPS'in aylık maliyetinden daha pahalı olabilir. Sabit fiyatlı bir VPS ise disk ve veri transferi limitini tek bir fiyatta birleştirir; bu nedenle aynı iş yükü, VPS üzerinde genellikle daha ekonomik görünür.
Sunucumun gerçek çekirdek erişimine sahip olup olmadığını nasıl kontrol ederim?
systemd-detect-virt komutunu çalıştırın ve çıktıyı inceleyin. kvm, xen veya vmware (veya daha yeni EC2 instance'larında amazon) değerleri, kendi çekirdeğinize sahip olduğunuzu ve modprobe ile bu çekirdeğe modül yükleyebileceğinizi gösterir. lxc, lxc-libvirt veya openvz değerleri, ana makinenin çekirdeğini paylaştığınız anlamına gelir; modül yüklemek ana makine yetkileri gerektirir. Ağ ayarları dahil olmak üzere /proc/sys altındaki isim alanı (namespace) ayarları, ana makine izin verdiği sürece yapılandırılabilir durumdadır. İkinci bir doğrulama yöntemi olarak uname -r kullanılabilir; bu komut, konteyner tabanlı planlarda genellikle dağıtımınızın hiçbir zaman sunmadığı bir çekirdek sürümü rapor eder.