İçeriğe geç
Mert Yılmaz
CVEnglishİletişim
Tüm yazılar

AWS yönetilen servislerden VPS'e geçiş nasıl yapılır

Yayın

Kısa cevap

Önce her AWS servisinin sana ne sağladığını listele, gerçek yüke yetecek bir VPS seç, uygulamayı, veritabanını, ters proxy'yi, yedeği ve izlemeyi yeniden kur, veriyi kısa bir bakım penceresinde taşı ve DNS'i en son değiştir. Qrispy'de AWS yönetilen servislerini VPS'e taşıyarak maliyeti düşürdüm. Güncellemeleri, yedekleri ve izlemeyi kendin üstlenebiliyorsan yap; yoksa yönetilen servis hâlâ doğru seçim olabilir.

Taşımaya değer mi?

Yönetilen servisler yama, yedek ve ölçekleme işini senin yerine yapar ve bunun için ücret alır. Yükün sabit ve tahmin edilebilirse bir VPS aynı işi çok daha az paraya görebilir. Karşılığında bu işlerin sorumluluğu sana geçer. Tek sunucu, tek hata noktası da demektir.

Her şeyi taşımak zorunda değilsin. Çeviri ya da konuşmayı metne dönüştürme gibi AWS'ye özgü servisleri kullanmaya devam edip yalnızca uygulamayı ve veritabanını taşıyabilirsin.

1. Envanter çıkar

  • Hangi AWS servisleri kullanılıyor ve her biri tam olarak ne iş yapıyor?
  • Gerçek trafik, CPU, bellek ve disk kullanımı ne kadar?
  • Hangi veriler nerede duruyor ve ne kadar yer kaplıyor?
  • Hangi servisler birbirine hangi adreslerle bağlı?

2. Sunucuyu kur ve sağlamlaştır

Root ile çalışma. Normal bir kullanıcı aç, SSH'ı yalnızca anahtarla ve bu kullanıcıyla aç, güvenlik duvarında sadece gerekli portları bırak ve otomatik güvenlik güncellemelerini aç.

ufw default deny incoming
ufw allow OpenSSH
ufw allow 80,443/tcp
ufw enable

Uygulamayı Docker Compose ile çalıştırırsan ortamı yeniden kurmak kolaylaşır. Otomatik HTTPS için Caddy gibi bir ters proxy kullanabilirsin.

example.com {
  reverse_proxy app:3000
}

3. Veritabanını taşı ve yedekle

Veritabanını dışa aktar, yeni sunucuya aktar ve uygulamayı önce orada test et. MySQL için tutarlı bir döküm almak üzere --single-transaction kullan. Yedeği sadece almak yetmez: geri yüklemeyi de deneyerek doğrula.

mysqldump --single-transaction --routines -u USER -p DBNAME > backup.sql

Gece yedeğini sunucunun dışında, ayrı bir depolama alanına gönder. Sunucu diskinde duran yedek, sunucu kaybolunca onunla birlikte kaybolur.

4. Geçişi yap

  1. Geçişten birkaç gün önce DNS kaydının TTL değerini düşür.
  2. Kısa bir bakım penceresi duyur ve eski uygulamayı yazmaya kapat.
  3. Son veritabanı dökümünü al, yeni sunucuya yükle ve doğrula.
  4. DNS'i yeni sunucuya çevir.
  5. Eski ortamı bir hafta kadar açık tut ki sorun çıkarsa geri dönebilesin.

5. Geçişten sonra izle

Bir çalışma süresi kontrolü, disk ve bellek uyarıları ve düzenli log incelemesi kur. Yönetilen serviste bunları AWS yapıyordu; artık senin işin.

Sık sorulanlar

VPS her zaman AWS'den ucuz mudur?
Yükü sabit ve tahmin edilebilir uygulamalarda genellikle öyledir. Ama yama, yedek ve izleme işini kendin üstlendiğin için zaman maliyetin artar.
Tek bir VPS yeterince güvenilir mi?
Tek sunucu tek hata noktasıdır. Düzenli yedek, sunucu dışı depolama ve geri yükleme testiyle riski azaltırsın.
AWS servislerinin bir kısmını kullanmaya devam edebilir miyim?
Evet. Uygulamayı ve veritabanını VPS'e taşıyıp çeviri ya da konuşmayı metne dönüştürme gibi servisleri AWS'de bırakabilirsin.

Bu konuda çalışıyorum

Yazan: Mert Yılmaz, freelance fullstack geliştirici.