Yıllardır kişisel projelerim müşteri sitelerinin durduğu paylaşımlı sunucuda barınıyordu. Pratikti. Ve yanlıştı.
Eylül başında ayırdım: Hetzner’de küçük bir sunucu — emre-vps — ve üstünde bir WireGuard tüneli.
Neden ayırdım
Teknik gerekçe ikincil. Asıl sebep sorumluluk:
- Kaynak karışması. Denediğim bir şeyin CPU’yu yemesi, müşteri sitelerinin yavaşlaması demek.
- Risk karışması. Kişisel bir denemede açtığım bir port, müşteri verisinin durduğu makinede açılmış oluyor.
- Olay ayrımı. Bir gün bir güvenlik olayı olsa, “bu benim denememden mi yoksa bir müşteri sitesinden mi geldi” sorusunu cevaplayamıyorsun.
Üçüncüsü belirleyici oldu. Paylaşımlı sunucuda bir kez gerçek bir olay yaşadım; o gün her şeyi tek tek ayıklamak günler sürmüştü.
Bu sunucuda müşteri işi barınmaz. Kurumsal işler ve müşteri hesapları eski sunucuda kalır. Sınır tek cümle ve istisnası yok — istisna olduğu anda ayrım biter.
Donanım seçimi: rakamlarla
İstediğim en ucuz sınıf tamamen tükenmişti. Bir üstü dört katı fiyattaydı. Ortadaki paketi aldım.
Konum seçimi ölçümle yapıldı:
| konum | PC’den gecikme | karar |
|---|---|---|
| Falkenstein | 46 ms | seçildi |
| Helsinki | 79 ms | — |
Ayrıca eski sunucuyla aynı veri merkezinde olması, ikisi arasındaki gecikmeyi de en aza indirdi — ileride bir şey taşımam gerekirse.
Web sunucusu tercihinde de aynı mantık: eski sunucudaki siteler .htaccess kullanıyor. Aynı web sunucusunu kurmak, taşımayı bir kopyala-yapıştıra indiriyor. Bu trafikte performans farkı ölçülebilir değil; taşıma kolaylığı ölçülebilir.
Tünel
WireGuard seçmemin sebebi basit: yapılandırması on beş satır, bağlantı kurulumu neredeyse anlık, ve mobilde pil tüketmiyor.
Üç istemci var ve üçü farklı:
emre-vps-pc-full.conf PC — tüm trafik tünelden
emre-vps-pc-split.conf PC — yalnız iç ağa giden trafik
emre-vps-phone-full.conf telefon — tam tünel
emre-vps-quest-full.conf VR başlığı — tam tünel
PC için ikisi de var, çünkü ikisi de gerekiyor:
- Tam tünel — otel ya da kafe ağındayken. Her şey tünelden, hiçbir şey ortada.
- Bölünmüş tünel — evdeyken. Yalnız sunucuya giden trafik tünelden; video akışı ve indirmeler doğrudan. Gecikme ve bant genişliği korunuyor.
Ve VR başlığı
En eğlenceli kısım buydu. Bir VR başlığında VPN uygulaması mağazada yok. Ama cihaz Android tabanlı, yani uygulamayı geliştirici modunda yan yükleyebiliyorsun.
Bunun için bir kurulum betiği yazdım: cihazı bağlıyor, istemciyi yüklüyor, yapılandırmayı gönderiyor.
Sonra tüneli ölçtüm — “bağlandı” demek yeterli değil:
başlıktan sunucuya ping → 10.10.10.4 cevap verdi
aktarılan trafik → ~11 MB
uçtan uca doğrulandı ✓
Arayüz yeşil yanabiliyor ama trafik hiç geçmiyor olabilir — yanlış yönlendirme, DNS sızıntısı, ya da anahtar eşleşmesi. Tek gerçek test karşı taraftan bir cevap almak ve aktarılan bayt sayısını görmek.
Bu, gözcünün yanlış aşamayı sayması ile aynı hata sınıfı: durum göstergesi ile gerçeklik farklı şeyler.
Kurulumda çıkan gerçek engeller
İkinci bir sunucu daha aldım (test için) ve orada beklemediğim bir duvara çarptım.
Sağlayıcı, parolayla açılan sunucularda ilk girişte parola değişimini zorunlu kılıyor. Bu otomatik araçlarla aşılamıyor: hiçbiri gerçek bir terminal sağlayamıyor ve süreç “terminal yok” diyerek düşüyor.
İlk giriş etkileşimli olmak zorunda. Bir kez elle girip parolayı değiştirdikten sonra gerisi otomatikleşti.
Bu, otomasyonun sınırını gösteren güzel bir örnek: bazı adımlar bilerek otomatikleştirilemez hale getirilmiş.
Sunucuda AI oturumu
Test sunucusuna bir Claude Code oturumu kurdum — kalıcı bir terminal oturumu içinde, kopunca ölmeyecek şekilde.
Ve orada ilginç bir tuzak çıktı: kabuk başlangıç dosyasında bayat bir kimlik jetonu duruyordu ve her yeni oturum onu miras alıyordu. Sonuç: hesap oturumu eziliyor ve uzaktan erişim bozuluyordu.
Çözüm o değişkeni açıkça temizlemek oldu. Aynı desen sesli asistanda da karşıma çıktı: bir alt süreç, kendisini kimin başlattığından etkilenmemeli.
Ne öğrendim
Ayrı bir sunucu kurmanın maliyeti aylık birkaç kahve. Karşılığında aldığım şey kapasite değil — zihinsel ayrım.
Artık bir şeyi denerken “acaba müşteri sitesini etkiler mi?” diye düşünmüyorum. O tereddüt kalktığında denenen şey sayısı arttı.