Bir sunucuya ilk kez sahip olmak, yazılım geliştirme yolculuğunda önemli bir eşiktir. Kendi projen, bir API ya da basit bir web uygulaması artık paylaşılan bir hosting hesabında değil, kendi kontrolündeki bir sunucuda çalışmaya başlar. DigitalOcean, bu adımı atmak isteyen geliştiriciler için en sade ve anlaşılır seçeneklerden biri. Bu yazıda DigitalOcean üzerinde sıfırdan bir Droplet’in (sanal sunucu) nasıl açıldığını, SSH anahtarının nasıl oluşturulduğunu ve terminal üzerinden sunucuya nasıl bağlanıldığını adım adım anlatıyorum.
Droplet Nedir, Neden Tercih Edilir
Droplet, DigitalOcean’ın sanal sunucu ürününün adı. AWS’deki EC2 instance’ına ya da Google Cloud’daki Compute Engine’e karşılık geliyor diyebiliriz. Fakat DigitalOcean’ı farklı kılan şey, arayüzünün ve fiyatlandırmasının çok daha anlaşılır olması. Karmaşık ağ yapılandırmaları, onlarca hizmet seçeneği arasında kaybolmak yerine birkaç tıkla bir sunucu ayağa kaldırılabiliyor.
Küçük ve orta ölçekli projeler için, kişisel bir web sitesi, bir Node.js API’si, bir Django uygulaması ya da test amaçlı bir geliştirme ortamı için Droplet gayet yeterli bir çözüm. İhtiyaç büyüdükçe daha güçlü bir plana geçmek de birkaç saniye içinde mümkün oluyor.
Hesap Açmadan Önce Bilinmesi Gerekenler
DigitalOcean’a kayıt olurken kredi kartı bilgisi istenir, çünkü kaynak kullanımı bu bilgiye bağlı olarak faturalandırılır. Droplet’ler artık saniye bazlı faturalandırılıyor, yani bir sunucu birkaç saatliğine açılıp kapatıldığında sadece o süre kadar ücret ödeniyor. Bu, özellikle test ortamları ya da kısa süreli işler çalıştırmak isteyenler için avantajlı bir sistem.
Bir hesap açmak istersen referans linkim üzerinden kayıt olarak bana da destek olmuş olursun. Kayıt işlemi standart bir form doldurmaktan ibaret, e-posta adresi ve ödeme bilgisi girildikten sonra panele erişim sağlanıyor.
Adım 1: Yeni Bir Droplet Oluşturma
Hesaba giriş yapıldıktan sonra panelin sol üst köşesindeki Create butonuna, ardından Droplets seçeneğine tıklanır. Karşına birkaç ayarın tamamlanması gereken bir sayfa çıkacak.
İşletim sistemi seçimi: Yeni başlayanlar için Ubuntu LTS sürümlerinden biri önerilebilir. Topluluk desteği geniş, dokümantasyon bol ve çoğu kurulum rehberi Ubuntu üzerinden anlatılıyor.
Plan seçimi: Basic plan, çoğu küçük proje için yeterli oluyor. 1 vCPU ve 1 GB RAM içeren en düşük paket bile bir blog, küçük bir API ya da geliştirme ortamı için sorunsuz çalışıyor. Trafiği yüksek ya da veritabanı ağırlıklı bir proje planlanıyorsa bir üst pakete geçmek daha sağlıklı olur.
Bölge (Region) seçimi: Sunucunun fiziksel olarak nerede barındırılacağını belirler. Kullanıcı kitlesi Türkiye ve çevresindeyse Frankfurt ya da Amsterdam veri merkezleri genellikle en düşük gecikmeyi sağlıyor.
Kimlik doğrulama yöntemi: Burada iki seçenek var, şifre ya da SSH anahtarı. SSH anahtarı önerilir, çünkü hem daha güvenli hem de her seferinde şifre girme zahmetinden kurtarıyor. Bir sonraki bölümde bu adım detaylı anlatılıyor.
Adım 2: SSH Anahtarı Oluşturma
SSH anahtarı, sunucuya şifre girmeden, güvenli bir şekilde bağlanmayı sağlayan bir kimlik doğrulama yöntemi. Kendi bilgisayarda bir özel anahtar (private key), sunucuda ise bunun eşleşen bir genel anahtarı (public key) bulunur.
Daha önce hiç SSH anahtarı oluşturulmadıysa, terminal üzerinden şu komut çalıştırılabilir:
ssh-keygen -t ed25519 -C "eposta@adresin.com"
Bu komut bir dosya konumu ve isteğe bağlı bir parola (passphrase) ister. Varsayılan konumun kabul edilip parolanın boş bırakılması, ilerleyen adımları kolaylaştırır. İşlem tamamlandığında ~/.ssh/id_ed25519.pub dosyasının içeriği şu komutla görüntülenebilir:
cat ~/.ssh/id_ed25519.pub
Çıktı kopyalanıp DigitalOcean panelindeki SSH anahtarı ekleme alanına yapıştırılır. Bu adım bir kez tamamlandıktan sonra, oluşturulacak her yeni Droplet’te aynı anahtar tekrar kullanılabilir.
Adım 3: Droplet’i Oluşturma ve IP Adresini Not Alma
Tüm ayarlar tamamlandıktan sonra sayfanın altındaki Create Droplet butonuna tıklanır. Sunucunun hazırlanması genellikle bir dakikadan kısa sürer. İşlem bittiğinde panelde sunucunun IP adresi görünür. Bu adresin not alınması gerekiyor, çünkü sunucuya bağlanırken bu bilgi kullanılacak.
Adım 4: Terminal Üzerinden SSH ile Bağlanma
Sunucu hazır olduktan sonra terminal açılıp şu komut yazılır:
ssh root@sunucu_ip_adresi
SSH anahtarı doğru şekilde eklendiyse, herhangi bir şifre sorulmadan doğrudan sunucuya bağlanılır. İlk bağlantıda terminal sunucunun parmak izini (fingerprint) gösterip onay isteyebilir, bu durumda yes yazılıp devam edilir.
Bağlantı başarılı olduğunda karşına sunucunun komut satırı gelir. Artık apt update, apt upgrade gibi komutlarla sistem güncellenebilir, ihtiyaç duyulan yazılımlar kurulabilir ve proje bu sunucu üzerinde çalıştırılmaya başlanabilir.
Sık Karşılaşılan Sorunlar
Permission denied (publickey) hatası: Genellikle SSH anahtarının panele doğru şekilde eklenmediği ya da terminalde farklı bir anahtar kullanıldığı durumlarda ortaya çıkar. ssh -i ~/.ssh/id_ed25519 root@sunucu_ip_adresi komutuyla anahtar dosyası açıkça belirtilerek tekrar denenebilir.
Bağlantı zaman aşımına uğruyor: Bu durum genellikle sunucunun henüz tam olarak hazır olmadığı ya da yerel ağda bir engelleme olduğu anlamına gelir. Birkaç dakika beklenip tekrar denenmesi çoğu zaman sorunu çözer.
Yanlış bölge seçimi nedeniyle yüksek gecikme: Sunucu oluşturulduktan sonra bölge değiştirilemez, bu yüzden yeni bir Droplet açılıp verilerin taşınması gerekir. İlk kurulumda bölge seçimine dikkat edilmesi ileride zaman kaybını önler.
Sonraki Adımlar
Sunucu artık ayakta ve bağlantı hazır. Buradan sonra yapılabilecekler projeye göre değişir. Bir web uygulaması yayınlanacaksa Nginx kurulup bir alan adı sunucuya yönlendirilebilir, bir veritabanı ihtiyacı varsa PostgreSQL ya da MySQL kurulumuna geçilebilir. Bu konuların her biri ayrı yazılarda detaylı olarak ele alınacak.
Kendi sunucunu açıp denemek istersen, bu referans linki üzerinden kayıt olarak bana destek olabilirsin.
Tüm projelerim ve üzerinde çalıştığım konuları incelemek istersen https://hub.barisgunduz.com/ adresini ziyaret edebilirsin.