Cheatsheet

1. Amazon EC2 (Elastic Compute Cloud) Nedir?
Amazon EC2, AWS bulut ortamında güvenli ve yeniden boyutlandırılabilir sanal sunucular (Virtual Machines - VM) sağlayan bir web hizmetidir.
- Altyapı: EC2 instance'ları, fiziksel sunucular üzerinde çalışan sanallaştırma teknolojisi (Xen/Nitro hipervizörleri) ile oluşturulan izole sanal makinelerdir.
- Multi-tenancy: Aynı fiziksel donanım üzerinde birden fazla VM çalışabilir.
Ana Özellikler
- Esneklik: Dakikalar içinde yeni sunucular başlatabilir veya durdurabilirsiniz.
- Ölçeklenebilirlik: İhtiyaca göre sunucu sayısını otomatik artırıp azaltabilirsiniz.
- Öde-Kullan: Yalnızca sunucunun açık kaldığı süre kadar ödeme yaparsınız.
2. EC2 Örnek (Instance) Türleri
Farklı iş yükleri için optimize edilmiş instance aileleri bulunmaktadır:
| Instance Tipi | Güçlü Yönü | Kullanım Alanları | Hangi Sektör? |
|---|---|---|---|
| General Purpose | Dengeli (CPU, RAM, Ağ) | Web siteleri, test ortamları, uygulama sunucuları | E-ticaret, Startup, KOBİ |
| Compute Optimized | Güçlü CPU | Video işleme (encoding), oyun sunucuları, bilimsel hesaplama | Medya, Oyun, Finans, Araştırma |
| Memory Optimized | Yüksek RAM | Büyük veritabanları, cache sistemleri, gerçek zamanlı analiz | Bankacılık, Telekom, Büyük Veri |
| Accelerated Computing | GPU / Özel Donanım | Yapay zeka (AI/ML), derin öğrenme, 3D render | AI şirketleri, Otomotiv, Grafik |
| Storage Optimized | Hızlı Disk I/O | NoSQL veritabanları, veri ambarı (Data warehouse) | Veri Merkezleri, IoT |

3. EC2 Bileşenleri ve Yapılandırma
AMI (Amazon Machine Image)
Bir EC2 instance'ı başlatmak için gereken temel şablondur. İşletim sistemi, uygulama sunucusu ve uygulamaları içerir.
- AWS tarafından sağlanan hazır AMI'ler (Amazon Linux, Ubuntu, Windows vb.) kullanılabilir.
- AWS Marketplace üzerinden üçüncü tarafların hazırladığı özel AMI'ler satın alınabilir.

Güvenlik ve Erişim
- Security Groups (Güvenlik Grupları): Instance için sanal bir güvenlik duvarıdır (firewall). Gelen ve giden trafiği kontrol eder.
- Öneri: Erişimi sadece bilinen IP adreslerine (örn. kendi IP'niz) izin verecek şekilde kısıtlayın.

- Key Pair (Anahtar Çifti): Sunucuya güvenli bir şekilde bağlanmak (SSH/RDP) için kullanılır (Private/Public key mantığı).

Kullanıcı Verisi (User Data)
Instance ilk kez başlatıldığında (boot) otomatik olarak çalışacak komut dosyalarıdır (script). Örneğin, sunucu açılır açılmaz bir web sunucusu (Nginx/Apache) kurmak için kullanılır.

Paylaşılan Sorumluluk Modeli (Shared Responsibility)
EC2 yönetilmeyen (unmanaged) bir hizmettir.
- AWS'in Sorumluluğu: Donanım, küresel altyapı ve sanallaştırma yazılımı.
- Müşterinin Sorumluluğu: İşletim sistemi yamaları, güvenlik duvarı ayarları, uygulama yönetimi ve veri şifreleme.
4. Fiyatlandırma Modelleri
Maliyet ve kullanım süresine göre 5 temel model vardır:
| Model | Açıklama |
|---|---|
| On-Demand (İsteğe Bağlı) | Taahhüt yok. Kullandığın kadar öde. Kısa süreli ve kesintili işler için idealdir. |
| Reserved Instances (RI) | 1 veya 3 yıllık taahhüt verilir. %75'e varan indirim sağlanır. 7/24 çalışan sistemler içindir. |
| Savings Plans | Belirli bir kullanım tutarı (örneğin saatlik $10) taahhüt edilir. Esneklik sağlar (Instance tipi değişebilir). |
| Spot Instances | AWS'in boş kapasitesini kullanır. Çok ucuzdur (%90 indirim) ama AWS sunucuyu her an geri alabilir. |
| Dedicated Host / Instance | Fiziksel sunucunun size özel ayrılmasıdır. Lisans (BYOL) gereksinimleri veya regülasyonlar için kullanılır. |
5. Ölçeklenebilirlik ve Auto Scaling
Sistemin artan yüke uyum sağlamasıdır.
- Dikey Ölçekleme (Scale Up): Makineyi güçlendirmek (RAM/CPU artırmak).
- Yatay Ölçekleme (Scale Out): Makine sayısını artırmak (Daha fazla instance).
EC2 Auto Scaling
Uygulama talebine göre EC2 sayısını otomatik olarak ayarlar.
- Dinamik Ölçeklendirme: Anlık talep değişikliklerine yanıt verir (CPU %80'i geçerse sunucu ekle).
- Öngörülü Ölçeklendirme: Geçmiş veriye bakarak gelecek trafiği tahmin eder.
Auto Scaling Grubu Ayarları:
- Minimum Kapasite: Asla altına düşülmeyecek sunucu sayısı.
- İstenen (Desired) Kapasite: İdeal sunucu sayısı.
- Maksimum Kapasite: Çıkılabilecek en üst sınır (Maliyet kontrolü için).
6. Elastik Yük Dengeleme (ELB)
Gelen uygulama trafiğini birden fazla EC2 instance'ı arasında otomatik olarak dağıtır.
- Tek bir giriş noktası olarak çalışır.
- Auto Scaling ile entegre çalışarak yüksek erişilebilirlik (High Availability) sağlar.

Yönlendirme Yöntemleri:
- Round Robin: Sırayla dağıtma.
- Least Connections: En az bağlantısı olana gönderme.
- IP Hash: Aynı kullanıcıyı hep aynı sunucuya gönderme.
7. Uygulama Mimarisi ve İletişim Servisleri
Monolitik vs. Mikroservisler
- Monolitik: Tüm bileşenler (DB, UI, Server) sıkı sıkıya bağlıdır. Biri çökerse hepsi çöker.
- Mikroservisler: Bileşenler ayrıştırılmıştır (Decoupling). Biri arızalansa da sistem çalışmaya devam eder.
AWS İletişim Servisleri (Decoupling Tools)
- Amazon SQS (Simple Queue Service):
- Mesaj kuyruğu hizmetidir. Mesajları tamponlar (buffer).
- İşlevi: Üretici mesajı kuyruğa atar, tüketici uygun olduğunda işler. Kaybolmayı önler.
- Amazon SNS (Simple Notification Service):
- Yayınla/Abone ol (Pub/Sub) mantığıyla çalışır.
- İşlevi: Tek bir mesajı (Notification) aynı anda binlerce aboneye (Email, Lambda, SMS) iletir.
- Amazon EventBridge:
- Sunucusuz olay (event) yönlendirme hizmetidir.
- İşlevi: Farklı kaynaklardan gelen olayları filtreleyip ilgili servislere yönlendirir (Örn: Sipariş geldiğinde hem kargoya hem faturaya haber ver).

Comments
Loading comments...