Bu çalışma materyali, Amazon EC2 hizmetine ilişkin ders slaytları ve sesli ders transkriptinden derlenmiştir.
Amazon EC2 Temelleri: Kapsamlı Çalışma Materyali 📚
1. Amazon EC2'ye Genel Bakış 🌐
Amazon EC2 (Elastic Compute Cloud), Amazon Web Services'ın (AWS) en popüler ve temel hizmetlerinden biridir. "Hizmet Olarak Altyapı" (IaaS) modelini temsil eder ve kullanıcılara bulut üzerinde ölçeklenebilir sanal bilgi işlem kaynakları sağlar. EC2'yi anlamak, bulut bilişimin genel işleyişini kavramak için kritik öneme sahiptir.
✅ Temel Yetenekler:
- Sanal Makineler Kiralama (EC2 Örnekleri): Bulutta sanal sunucular oluşturma ve yönetme.
- Sanal Sürücülerde Veri Depolama (EBS): EC2 örnekleri için kalıcı depolama sağlama.
- Yük Dengeleme (ELB): Gelen trafiği birden fazla makineye dağıtarak hizmet sürekliliğini ve performansını artırma.
- Otomatik Ölçeklendirme (ASG): Hizmetleri talep doğrultusunda dinamik olarak ölçeklendirme.
2. EC2 Örnek Yapılandırma ve Boyutlandırma Seçenekleri ⚙️
EC2 örnekleri, farklı iş yükleri ve performans gereksinimleri için çeşitli özelliklerle yapılandırılabilir.
✅ Yapılandırma Parametreleri:
- İşletim Sistemi (OS): Linux, Windows veya Mac OS.
- İşlem Gücü (CPU): Çekirdek sayısı ve işlem gücü.
- Bellek (RAM): Rastgele erişimli bellek miktarı.
- Depolama Alanı:
- Ağa bağlı depolama (EBS - Elastic Block Store, EFS - Elastic File System).
- Donanıma bağlı depolama (EC2 Instance Store).
- Ağ Kartı: Ağ hızı ve Genel IP adresi.
- Güvenlik Kuralları: Güvenlik Grupları aracılığıyla tanımlanan güvenlik duvarı kuralları.
- Önyükleme Betiği (EC2 Kullanıcı Verisi): Örnek ilk başlatıldığında çalıştırılacak komutlar.
2.1. EC2 Kullanıcı Verisi (EC2 User Data) 💡
EC2 Kullanıcı Verisi, bir EC2 örneği ilk kez başlatıldığında otomatik olarak komutları çalıştırmak için kullanılan bir önyükleme betiğidir. Bu betik yalnızca bir kez çalışır ve genellikle aşağıdaki görevler için kullanılır:
- Güncellemeleri yükleme.
- Yazılım kurma.
- İnternetten dosya indirme.
- Örnek başlatma sırasında otomasyon gerektiren her türlü görev. Bu betik, root kullanıcısı yetkileriyle çalışır.
3. EC2 Örnek Türleri 📊
AWS, farklı kullanım senaryoları için optimize edilmiş çeşitli EC2 örnek türleri sunar. Örnek adlandırma kuralı m5.2xlarge gibi olup, m örnek sınıfını, 5 nesli ve 2xlarge ise sınıf içindeki boyutu belirtir.
✅ Başlıca Örnek Türleri:
- Genel Amaçlı (General Purpose):
- Açıklama: İşlem, bellek ve ağ arasında dengeli bir performans sunar. Web sunucuları veya kod depoları gibi çeşitli iş yükleri için idealdir.
- Örnek:
t2.micro(genellikle ücretsiz katmanda kullanılır).
- İşlem Optimize Edilmiş (Compute Optimized):
- Açıklama: Yüksek performanslı işlemciler gerektiren yoğun işlem görevleri için tasarlanmıştır.
- Kullanım Alanları: Toplu işleme, medya dönüştürme, yüksek performanslı web sunucuları, bilimsel modelleme, makine öğrenimi.
- Bellek Optimize Edilmiş (Memory Optimized):
- Açıklama: Bellekte büyük veri kümelerini işleyen iş yükleri için hızlı performans sağlar.
- Kullanım Alanları: Yüksek performanslı ilişkisel/ilişkisel olmayan veritabanları, dağıtılmış web ölçekli önbellek depoları, iş zekası için bellek içi veritabanları.
- Depolama Optimize Edilmiş (Storage Optimized):
- Açıklama: Yerel depolamada yüksek, sıralı okuma ve yazma erişimi gerektiren depolama yoğun görevler için uygundur.
- Kullanım Alanları: Yüksek frekanslı çevrimiçi işlem işleme (OLTP) sistemleri, ilişkisel ve NoSQL veritabanları, veri ambarı uygulamaları.
4. Ağ Güvenliği: Güvenlik Grupları 🔒
Güvenlik Grupları, AWS'de ağ güvenliğinin temelini oluşturur. EC2 örneklerinize gelen veya giden trafiğin nasıl izin verildiğini kontrol eden sanal güvenlik duvarlarıdır.
✅ Güvenlik Gruplarının Özellikleri:
- Kural Tabanlı: Yalnızca izin verme kuralları içerir.
- Trafik Kontrolü: Portlara erişimi ve yetkili IP aralıklarını (IPv4 ve IPv6) düzenler.
- Yön Kontrolü: Gelen (inbound) ve giden (outbound) ağ trafiğini kontrol eder.
- Esneklik: Kurallar IP adresleri veya diğer güvenlik grupları referans alınarak tanımlanabilir.
- Konum: EC2 örneğinin "dışında" çalışır; trafik engellenirse, EC2 örneği bu trafiği görmez.
- Çoklu Atama: Bir güvenlik grubu birden fazla EC2 örneğine atanabilir.
- Bölgesel: Bir bölge/VPC kombinasyonuna kilitlenmiştir.
- Varsayılan Kurallar: Tüm gelen trafik varsayılan olarak engellenirken, tüm giden trafik varsayılan olarak yetkilidir.
- Sorun Giderme İpuçları:
- Uygulamanız erişilemiyorsa (zaman aşımı), genellikle bir güvenlik grubu sorunudur.
- Uygulamanız "bağlantı reddedildi" hatası veriyorsa, bu bir uygulama hatası veya uygulamanın başlatılmamış olduğu anlamına gelir.
5. Klasik Portlar ve SSH Erişimi 🔑
Ağ iletişiminde kullanılan bazı standart portlar ve EC2 örneklerine erişim yöntemleri şunlardır:
✅ Klasik Portlar:
- 22 (SSH - Secure Shell): Linux örneklerine güvenli giriş.
- 21 (FTP - File Transfer Protocol): Dosya paylaşımına dosya yükleme.
- 22 (SFTP - Secure File Transfer Protocol): SSH kullanarak dosya yükleme.
- 80 (HTTP): Güvenli olmayan web sitelerine erişim.
- 443 (HTTPS): Güvenli web sitelerine erişim.
- 3389 (RDP - Remote Desktop Protocol): Windows örneklerine giriş.
5.1. EC2 Örneklerine SSH Erişimi 💻
SSH, uzak bir makineyi komut satırı aracılığıyla kontrol etmek için kritik bir fonksiyondur.
- Mac / Linux: Doğrudan SSH komutları kullanılabilir.
- Windows: Putty gibi üçüncü taraf araçlar veya Windows 10 ve üzeri sürümlerde yerleşik SSH istemcisi kullanılabilir.
- EC2 Instance Connect: Anahtar dosyasına ihtiyaç duymadan, tarayıcı içinden EC2 örneğine bağlanmayı sağlayan bir AWS hizmetidir. AWS tarafından EC2 üzerine geçici bir anahtar yüklenmesiyle çalışır ve özellikle Amazon Linux 2 ile sorunsuz çalışır. Port 22'nin açık olması gerekir.
6. EC2 Satın Alma Seçenekleri 💰
EC2 örnekleri için farklı iş yükleri ve maliyet optimizasyonları için tasarlanmış çeşitli satın alma seçenekleri mevcuttur.
-
İsteğe Bağlı Örnekler (On-Demand Instances):
- Açıklama: Kullanım başına ödeme modeli. En yüksek maliyetli ancak peşin ödeme veya uzun vadeli taahhüt gerektirmez.
- Uygunluk: Kısa süreli, öngörülemeyen ve kesintisiz iş yükleri için idealdir.
- Fiyatlandırma: Linux için saniye başına, diğer işletim sistemleri için saat başına faturalandırılır.
-
Rezerve Edilmiş Örnekler (Reserved Instances - RIs):
- Açıklama: 1 veya 3 yıllık taahhütlerle İsteğe Bağlı fiyatlara göre %72'ye varan indirimler sunar. Belirli bir örnek türü, bölge, işletim sistemi ve kiracılık için rezervasyon yapılır.
- Uygunluk: Veritabanları gibi kararlı durumdaki uygulamalar için önerilir.
- Türleri:
- Standart RIs: Belirli bir örnek türüne kilitlidir.
- Dönüştürülebilir RIs: Örnek türü, ailesi, işletim sistemi ve kiracılık gibi özelliklerde esneklik sunar.
-
Tasarruf Planları (Savings Plans):
- Açıklama: 1 veya 3 yıllık kullanım taahhüdüne dayalı indirimler sağlar (RIs ile benzer indirimler). Belirli bir saatlik kullanım miktarına ($/saat) taahhüt edilir.
- Esneklik: Belirli bir örnek ailesi ve AWS bölgesine kilitli olsa da, örnek boyutu, işletim sistemi ve kiracılıkta esneklik sunar.
- Uygunluk: Uzun vadeli, öngörülebilir iş yükleri için.
-
Spot Örnekleri (Spot Instances):
- Açıklama: İsteğe Bağlı fiyatlara göre %90'a varan indirimlerle en uygun maliyetli seçenektir. Ancak, mevcut spot fiyatı maksimum fiyatınızdan yüksekse örnekler herhangi bir zamanda kaybedilebilir (2 dakikalık uyarı süresiyle).
- Uygunluk: Toplu işler, veri analizi, görüntü işleme veya hataya dayanıklı dağıtılmış iş yükleri gibi kesintiye dayanıklı uygulamalar için idealdir. Kritik işler veya veritabanları için uygun değildir.
- Spot Blokları: Belirli bir süre (1-6 saat) kesintisiz spot örnekleri "engelleme" seçeneği sunar.
-
Ayrılmış Ana Bilgisayarlar (Dedicated Hosts):
- Açıklama: EC2 örnek kapasitesinin tamamen sizin kullanımınıza ayrıldığı fiziksel sunuculardır. En pahalı seçenektir.
- Uygunluk: Uyumluluk gereksinimlerini karşılamak ve mevcut sunucuya bağlı yazılım lisanslarını (BYOL - Kendi Lisansını Getir) kullanmak için idealdir.
-
Ayrılmış Örnekler (Dedicated Instances):
- Açıklama: Donanımın size özel olduğu, ancak aynı AWS hesabı içindeki diğer örneklerle donanımı paylaşabileceği bir seçenektir. Örnek yerleşimi üzerinde kontrol yoktur.
-
Kapasite Rezervasyonları (Capacity Reservations):
- Açıklama: Belirli bir Kullanılabilirlik Bölgesi'nde (AZ) İsteğe Bağlı örnek kapasitesini herhangi bir süre için rezerve etmenizi sağlar. Herhangi bir zaman taahhüdü yoktur ve faturalandırma indirimi sağlamaz.
- Uygunluk: Kısa süreli, kesintisiz iş yükleri için, belirli bir AZ'de kapasiteye her zaman erişim garantisi gerektiğinde kullanılır. Örnekleri çalıştırsanız da çalıştırmasanız da İsteğe Bağlı fiyat üzerinden ücretlendirilirsiniz.
6.1. Spot Filolar (Spot Fleets) 🚀
Spot Filolar, Spot Örnekleri ve isteğe bağlı olarak İsteğe Bağlı Örnekleri bir araya getirerek, fiyat kısıtlamaları dahilinde hedef kapasiteyi karşılamaya çalışır.
- Çalışma Prensibi: Birden fazla başlatma havuzu (örnek türü, OS, AZ) tanımlanabilir, böylece filo en uygun olanı seçebilir. Hedef kapasiteye veya maksimum maliyete ulaşıldığında örnek başlatmayı durdurur.
- Tahsis Stratejileri:
lowestPrice: En düşük fiyatlı havuzdan (maliyet optimizasyonu, kısa iş yükleri).diversified: Tüm havuzlara dağıtılmış (yüksek erişilebilirlik, uzun iş yükleri).capacityOptimized: En uygun kapasiteye sahip havuz (önerilen).priceCapacityOptimized: En yüksek kapasiteye sahip havuzları seçer, ardından en düşük fiyatlı havuzu tercih eder (çoğu iş yükü için en iyi seçim).
Özet Analoji (Otel Benzetmesi):
- İsteğe Bağlı: Otele istediğimiz zaman gelip kalmak, tam fiyat ödemek.
- Rezerve Edilmiş: Önceden planlama yapmak, uzun süre kalırsak indirim almak.
- Tasarruf Planları: Belirli bir süre boyunca saatlik belirli bir miktar ödemek ve herhangi bir oda tipinde kalabilmek.
- Spot Örnekleri: Otelin boş odaları için teklif vermek; en yüksek teklifi veren kalır, ancak istediği zaman otelden çıkarılabilir.
- Ayrılmış Ana Bilgisayarlar: Otelin tüm bir binasını rezerve etmek.
- Kapasite Rezervasyonları: Bir oda ayırtmak ve kalmasanız bile tam fiyatını ödemek.








