- EC2 sunucusu kurmadan önce bilinmesi gerekenler
- Adım adım: konsoldan ilk instance'ı başlatmak
- Instance tipi nasıl seçilir?
- Güvenlik grubu, anahtar çifti ve ağ ayarları
- Sunucuya bağlanmak ve ilk kontroller
- Yönetim: durdurma, sonlandırma ve maliyet kontrolü
- Öğrenme yolu: temelden mimariye
- Sık sorulan sorular
EC2 ile bulutta sanal sunucu açmak: kurulumdan yönetime
AWS EC2 üzerinde sanal sunucu açmanın adımları: imaj, instance tipi, anahtar çifti, güvenlik grubu, depolama, bağlantı ve güvenli işletim alışkanlıkları.
EC2 sunucusu kurmadan önce bilinmesi gerekenler
Amazon EC2, AWS bulutunda sanal sunucu (instance) kiralamanın temel yoludur. Bir sunucuyu fiziksel olarak almak yerine, bir imajdan türetilen sanal makineyi birkaç dakikada ayağa kaldırır, işiniz bitince kapatırsınız. Kurulum sırasında verdiğiniz her karar, sonradan değiştirmesi kolay ya da zor olan bir şeyi belirler; bu yüzden önce parçaları tanımak gerekir.
AWS'nin başlangıç kılavuzu bir instance'ın beş parçadan oluştuğunu anlatır: yazılımı taşıyan bir imaj, kimliğinizi kanıtlayan bir anahtar çifti, sunucunun bağlandığı bir sanal ağ (VPC), gelen ve giden trafiği süzen bir güvenlik grubu ve işletim sistemini barındıran bir EBS kök diski. Konsoldaki sihirbaz bu parçaların her birini ayrı bir başlık altında sorar. Sihirbazı gezmek yerine her başlığın ne işe yaradığını bilmek, hata yaptığınızda nereye bakacağınızı da söyler.
Bir de bölge (Region) seçimi vardır. Konsolun üst çubuğunda seçili bölge, sunucunun fiziksel olarak nerede çalışacağını belirler; kullanıcılarınıza yakın bir bölge gecikmeyi azaltır, veri yerleşimi kuralınız varsa seçim zorunluluğa da dönüşebilir. Kaynaklar bölgeye bağlıdır: bir bölgede açtığınız sunucuyu başka bir bölgenin listesinde görmezsiniz. Yeni başlayanların en sık yaşadığı şaşkınlık budur.
Adım adım: konsoldan ilk instance'ı başlatmak
Konsolda EC2 sayfasını açın, Launch instance düğmesine basın ve sihirbazı şu sırayla doldurun:
- Name and tags: sunucuya anlamlı bir ad verin. Ekip büyüdüğünde "web-prod-uygulama" gibi bir ad, rastgele bir kimlikten çok daha değerlidir.
- Application and OS Images: bir işletim sistemi imajı (AMI) seçin. İlk deneme için Amazon Linux gibi hazır bir imaj uygundur.
- Instance type: sunucunun işlemci ve bellek kapasitesini belirler (aşağıda ayrıntısı var).
- Key pair (login): SSH ile bağlanmak için anahtar çifti oluşturun ya da var olanı seçin. Özel anahtar dosyasını yalnız bir kez indirebilirsiniz; kaybederseniz sunucuya aynı yolla giremezsiniz.
- Network settings: VPC, alt ağ ve güvenlik grubunu belirleyin.
- Configure storage: kök diskin boyutunu ve türünü seçin, gerekiyorsa veri diski ekleyin.
- Advanced details: isteğe bağlı olarak user data alanına ilk açılışta çalışacak bir betik yazabilirsiniz.
Summary panelini kontrol edip Launch instance'a bastığınızda durum önce pending, ardından running olur. Status and alarms sekmesindeki durum denetimleri geçtiğinde sunucu bağlantıya hazırdır.
Örneğin kurumsal bir web uygulaması için ilk açılışta paket güncellemesi ve web sunucusu kurulumunu user data betiğine yazarsanız, aynı imajdan açılan her yeni sunucu aynı hazırlıkla gelir. Elle yapılan kurulum bir kez çalışır, betikle yapılan kurulum tekrarlanabilir.
Instance tipi nasıl seçilir?
Instance tipi, ailenin harfi, neslin numarası ve boyutun adından oluşan bir etikettir. Aile, donanımın hangi işe göre dengelendiğini söyler: genel amaçlı aileler işlemci ile belleği dengeli tutar, hesaplama odaklı aileler işlemciye, bellek odaklı aileler RAM'e, depolama odaklı aileler disk verimine, hızlandırıcılı aileler ise grafik işlemciye ağırlık verir. Boyut (small, large, xlarge gibi) aynı ailenin içinde kapasiteyi büyütür.
Seçimde pratik yöntem şudur:
- İş yükünü tanıyın: web sunucusu çoğunlukla işlemci ve ağ harcar, bellek içi önbellek RAM harcar, veritabanı disk gecikmesine duyarlıdır.
- Genel amaçlı bir tiple başlayın ve izleme verisine bakarak ayarlayın. CloudWatch'taki işlemci ve bellek kullanımı sürekli düşükse tip gereğinden büyüktür, sürekli tavandaysa küçüktür.
- Boyutu değiştirmek için sunucuyu durdurup tipi düzenleyebilirsiniz; bu yüzden ilk seçimde mükemmeli aramak yerine ölçmek daha verimlidir.
- Yeni nesil tipler genellikle aynı iş için daha iyi verimlilik sunar; güncel liste ve özellikler için AWS belgelerindeki instance tipi sayfasına bakın. AWS ayrıca konsolda instance type finder ile öneri sunar.
Satın alma modeli de ayrı bir karardır: On-Demand kullandıkça öder, Spot boşta kapasiteyi daha ucuza verir ama kesilebilir, Savings Plans ve Reserved seçenekleri öngörülebilir yük için bağlılık karşılığında indirim sağlar. Güncel fiyatlar AWS fiyatlandırma sayfasında yayımlanır.
Güvenlik grubu, anahtar çifti ve ağ ayarları
Güvenlik grubu, instance'ın sanal güvenlik duvarıdır. Başlangıç sihirbazında internetteki herkese SSH açan bir kural önerilir, ancak AWS bunun yalnızca kısa süreli test ortamında kabul edilebilir olduğunu, üretimde erişimin belirli bir IP ya da adres aralığıyla sınırlanması gerektiğini açıkça uyarır. Burada Anywhere yerine Custom seçip kendi ofis ağınızı yazmak ilk güvenlik alışkanlığıdır.
Birkaç kural işinizi kolaylaştırır:
- Web sunucusu için yalnızca gerekli portları açın; yönetim portları (SSH, RDP) genel internete değil, sınırlı bir kaynağa açılmalıdır.
- Veritabanı sunucusuna dışarıdan erişim vermeyin; yalnızca uygulama sunucusunun güvenlik grubundan gelen trafiğe izin verin. Güvenlik grupları birbirine referans verebilir.
- Genel IP gereken sunucuyu genel alt ağa, gerekmeyeni özel alt ağa koyun. Özel alt ağdaki sunucuyu yönetmek için Systems Manager Run Command gibi araçlar, genel erişim açmadan uzaktan komut çalıştırmanın bir yoludur.
- Özel anahtar dosyasını paylaşılan bir klasöre, e-postaya ya da kod deposuna koymayın.
Windows sunucuda SSH yerine RDP kullanılır; ilk yönetici parolası konsolda Connect ekranından özel anahtar dosyasıyla çözülerek alınır.
Sunucuya bağlanmak ve ilk kontroller
Linux instance'a bağlanmak için konsolda sunucuyu seçip Connect düğmesine basın, SSH client sekmesindeki örnek komutu kullanın. Komutun yapısı şöyledir:
chmod u=r,go= anahtar-adi.pem ssh -i anahtar-adi.pem kullanici@sunucunun-genel-dns-adi
Özel anahtar dosyasının izinlerini daraltmak zorunludur; geniş izinli anahtarı SSH reddeder. Kullanıcı adı imaja göre değişir ve konsoldaki örnek komutta yazar. İlk bağlantıda parmak izi sorusuna evet demeden önce, konsolda Actions menüsünden sistem günlüğünü alıp parmak izini karşılaştırabilirsiniz; AWS ortadaki adam saldırısına karşı bunu önerir.
Bağlandıktan sonra bir kontrol listesi izleyin:
- Paketleri güncelleyin ve gereksiz hizmetleri kapatın.
- Disk, bellek ve işlemci kullanımını gözleyin.
- CloudWatch alarmı tanımlayın: işlemci tavanda kalırsa ve durum denetimi başarısız olursa haberiniz olsun.
- Kök diskin anlık görüntüsünü (snapshot) alın ya da AWS Backup ile yedek planı bağlayın.
- Sunucunun elle yapılan her ayarını bir betiğe ya da şablona taşıyın; aksi halde sunucu kaybolduğunda aynısını kuramazsınız.
Yönetim: durdurma, sonlandırma ve maliyet kontrolü
Instance'ın yaşam döngüsünde üç eylem karıştırılır. Stop sunucuyu kapatır, disk saklanır; çalışma ücreti durur ama disk ücreti devam eder. Reboot yeniden başlatır. Terminate kalıcıdır: sunucu silinir ve silinme sırasında kaldırılacak şekilde işaretlenen EBS diskleri de gider; instance store üzerindeki veri geri döndürülemez biçimde kaybolur. AWS belgesi bunu ayrıca uyarı olarak vurgular, bu yüzden sonlandırmadan önce kalıcı veriyi yedeklemek gerekir.
Maliyet tarafında en sık yapılan hatalar şunlardır:
- Deneme için açılan sunucuyu kapatmayı unutmak. Boşta duran çalışan instance da ücretlenir.
- Kullanılmayan diskleri, anlık görüntüleri ve sabit IP adreslerini silmemek.
- Yük küçükken büyük tip seçip bir daha izlememek.
- Aynı işi gören birçok sunucuyu elle yönetmek; bu noktada Auto Scaling grubu ve yük dengeleyici daha uygun bir modeldir.
Ücretsiz katman kuralları ve limitler zamanla değişir; güncel koşulları AWS Free Tier sayfasında okuyun. Kalıcı bir uygulama için sunucuyu tek başına bırakmak yerine imajdan ve şablondan yeniden üretilebilir kılmak, yönetimin asıl hedefidir.
Öğrenme yolu: temelden mimariye
Başlangıç düzeyinde hedef, konsoldan bir instance açıp bağlanmak ve kapatmaktır. Ardından aynı işi AWS CLI ile yapmayı deneyin; komutla yapılan kurulum betiğe dönüştürülebilir. Orta düzeyde launch template, IAM rolü, EBS anlık görüntüsü, CloudWatch alarmı ve özel imaj üretmek gelir. İleri düzeyde ise instance'ı tek başına değil, yük dengeleyici ve Auto Scaling ile birlikte, birden çok erişilebilirlik bölgesine yayılmış bir mimarinin parçası olarak düşünürsünüz.
Mindset'in AWS Solutions Architect Associate Hazırlık programında Hesaplama Mimarisi ve Ölçeklendirme ile Depolama Mimarisi modülleri bu geçişi sınav senaryolarıyla ele alır. AWS Sertifikasyon Hazırlık (Cloud Practitioner) programının Temel AWS Hesaplama Hizmetleri modülü ise bulutla yeni tanışan, yöneticiler ve destek ekipleri gibi teknik olmayan roller için hesaplama hizmetlerine giriş sunar. Kurumsal ekipler için bu iki program, önce ortak dil kurup sonra mimari karar becerisine ilerleyen bir sıra olarak düşünülebilir.
İlgili Mindset programı
AWS Solutions Architect Associate Hazırlık
Sık sorulan sorular
EC2 instance'ı kurmak için kod yazmam gerekir mi?
Hayır, konsoldaki sihirbaz kod yazmadan sunucu açmaya yeter. Ancak tekrar edilebilir kurulum istiyorsanız AWS CLI, launch template ya da altyapıyı kodla tanımlayan araçlara geçmek gerekir. Elle tıklayarak kurulan sunucuyu aynen yeniden üretmek zordur, bu nedenle ilk denemeden sonra ayarları betiğe taşımak iyi bir alışkanlıktır.
Instance'ı durdurmak ile sonlandırmak arasındaki fark nedir?
Durdurduğunuzda sunucu kapanır ve disk saklanır, sonra yeniden başlatabilirsiniz. Sonlandırma kalıcıdır: sunucu silinir, silinmeye ayarlı diskler de gider ve geri alınamaz. Kalıcı veriyi sonlandırmadan önce anlık görüntü ya da başka bir depolama alanına aldığınızdan emin olun.
SSH ile bağlanamıyorum, nereye bakmalıyım?
Önce güvenlik grubunda kendi IP adresinizden SSH trafiğine izin veren bir kural olup olmadığına bakın. Sonra sunucunun genel IP'si olan bir alt ağda ve internet çıkışı bulunan bir VPC'de olduğunu, özel anahtar dosyasının doğru olduğunu ve izinlerinin daraltıldığını, kullanıcı adının imaja uygun yazıldığını kontrol edin.
Küçük bir web sitesi için hangi instance tipi uygundur?
Önce genel amaçlı küçük bir tiple başlayıp CloudWatch'taki işlemci ve bellek kullanımını izlemek en sağlıklısıdır. Kullanım sürekli düşükse küçültür, sürekli tavandaysa büyütürsünüz. Tip değiştirmek için sunucuyu durdurup düzenlemek yeterli olduğundan ilk seçimin kusursuz olması gerekmez.
EC2 yerine ne zaman başka bir hizmet düşünmeliyim?
İşletim sistemine, kurulan yazılıma ve ağ ayarlarına tam denetim gerekiyorsa EC2 uygundur. Sunucu yönetmek istemiyor, yalnızca kodu çalıştırmak istiyorsanız sunucusuz ya da konteyner tabanlı hizmetler daha az operasyon yükü getirebilir. Seçim, ekibin yönetme kapasitesine ve uygulamanın gereksinimine bağlıdır.