Takip et

AWS EC2: Bulut Sunucularını Verimli Yönetin ve Ölçeklendirin

Bulut bilişimin yükselen yıldızı AWS Elastic Compute Cloud (EC2) ile sanal sunucuları anında kurabilir, projenizin ihtiyaçlarına göre esnekçe ölçekleyebilir ve maliyetleri optimize edebilirsiniz. Bu rehberle AWS EC2’ye baştan sona hakim olun, sistemlerinizi buluta taşıyın ve modern uygulamalar geliştirmenin kapılarını aralayın.

Günümüzün hızla değişen dijital dünyasında, işletmelerin çevik, ölçeklenebilir ve uygun maliyetli BT altyapılarına sahip olması hayati önem taşımaktadır. Geleneksel sunucu kurulumları haftalar hatta aylar sürebilirken, AWS Elastic Compute Cloud (EC2) bu süreyi dakikalara indirerek devrim niteliğinde bir çözüm sunar. Peki, AWS EC2 tam olarak nedir ve iş yükleriniz için sunduğu avantajlar nelerdir?

AWS EC2, Amazon Web Services’ın temel bulut bilişim servislerinden biridir. Kullanıcılara bulut üzerinde sanal sunucular (örnekler – instances) sağlama yeteneği sunar. Bu sanal sunucular, geleneksel fiziksel sunucuların tüm işlevselliğine sahiptir ancak çok daha esnektir. İşletmeler, ihtiyaç duydukları anda işlem gücünü, depolama alanını ve ağ kapasitesini saniyeler içinde artırabilir veya azaltabilir. Böylece, yalnızca kullandıkları kaynaklar için ödeme yaparlar ve gereksiz donanım yatırımlarından kurtulurlar.

EC2’nin temel avantajlarından biri, sunduğu olağanüstü esnekliktir. Örneğin, bir web siteniz varsa ve Kara Cuma gibi yoğun bir dönemde ani trafik artışı bekliyorsanız, EC2 sayesinde ek sunucuları otomatik olarak devreye alabilir ve ziyaretçilerinize kesintisiz bir deneyim sunabilirsiniz. Yoğunluk azaldığında ise bu sunucuları otomatik olarak kapatarak maliyet tasarrufu sağlarsınız. Bu dinamik ölçeklenebilirlik, birçok sektörde rekabet avantajı yaratır.

Ayrıca, AWS’nin geniş küresel altyapısı sayesinde EC2 örneklerinizi dünyanın dört bir yanındaki farklı bölgelerde ve erişilebilirlik alanlarında dağıtabilirsiniz. Bu coğrafi dağıtım, hem uygulamalarınızın son kullanıcılara daha yakın olmasını sağlayarak gecikmeyi azaltır hem de yüksek erişilebilirlik ve felaket kurtarma senaryoları için güçlü bir temel oluşturur. Bir bölgedeki bir arıza durumunda bile, uygulamanız başka bir bölgedeki örnekler aracılığıyla çalışmaya devam edebilir.

EC2 sadece bir sanal sunucu sağlamakla kalmaz; aynı zamanda geniş bir ekosistemle entegre çalışır. Amazon Machine Image (AMI) ile önceden yapılandırılmış işletim sistemlerini ve uygulama katmanlarını saniyeler içinde dağıtabilir, Elastic Block Store (EBS) ile kalıcı depolama alanları oluşturabilir ve güvenlik grupları ile ağ trafiğini ince taneli bir şekilde kontrol edebilirsiniz. Tüm bunlar, geliştiricilere ve sistem yöneticilerine güçlü bir kontrol ve otomasyon imkanı sunar.

Özetle, AWS EC2, işletmelere donanım maliyetlerini düşürme, operasyonel verimliliği artırma, çevikliği yakalama ve küresel çapta yüksek performanslı uygulamalar sunma yeteneği verir. Yeni bir projeye başlarken veya mevcut altyapınızı modernize ederken, EC2’nin sunduğu bu kapsamlı özellikler listesi, onu modern bulut çözümlerinin vazgeçilmez bir parçası haline getirir.

EC2 Örnek Tipleri ve AMI’ler: İhtiyaçlarınıza Göre Doğru Seçimi Nasıl Yaparsınız?

AWS EC2’nin sunduğu esnekliğin kalbinde, farklı iş yükleri ve performans gereksinimleri için tasarlanmış geniş yelpazedeki örnek tipleri ve Amazon Machine Image (AMI) seçenekleri yatar. Doğru örnek tipini ve AMI’yi seçmek, uygulamanızın performansını, maliyetini ve genel verimliliğini doğrudan etkiler. Peki, bu seçenekler arasında doğru kararı nasıl verebilirsiniz?

Farklı EC2 Örnek Tipleri Nelerdir ve Ne Zaman Kullanılır?

EC2 örnek tipleri, işlemci (CPU), bellek (RAM), depolama ve ağ performansı açısından farklı konfigürasyonlar sunar. AWS bunları genel olarak aşağıdaki ailelere ayırır:

  • Genel Amaçlı Örnekler (M, T Ailesi): Web sunucuları, geliştirme ortamları ve küçük veritabanları gibi dengeli işlemci ve bellek gereksinimleri olan uygulamalar için idealdir. Özellikle T serisi (T2, T3, T4g), “burstable” performans sunarak düşük CPU kullanımı olan ancak zaman zaman yüksek CPU’ya ihtiyaç duyan iş yükleri için maliyet etkin bir çözümdür.
  • İşlem Yoğun Örnekler (C Ailesi): Yüksek performanslı hesaplama (HPC), bilimsel modelleme, dağıtık analizler ve medya kod dönüştürme gibi yoğun işlemci gücü gerektiren uygulamalar için tasarlanmıştır. Yüksek saat hızı ve çekirdek sayısı sunarlar.
  • Bellek Yoğun Örnekler (R, X, Z Ailesi): Büyük in-memory veritabanları, gerçek zamanlı büyük veri analizi ve bilimsel simülasyonlar gibi yüksek bellek kapasitesi ve performansı gerektiren uygulamalar için optimize edilmiştir.
  • Hızlandırılmış Bilişim Örnekleri (P, G Ailesi): Makine öğrenimi, derin öğrenme, yüksek performanslı grafikler ve video işleme gibi özel donanım hızlandırıcılara (GPU’lar) ihtiyaç duyan iş yükleri için kullanılır.
  • Depolama Yoğun Örnekler (I, D H Ailesi): Büyük veri depoları, dağıtık dosya sistemleri ve veri ambarları gibi yüksek I/O performansına sahip yerel depolama gerektiren uygulamalar için optimize edilmiştir.

Seçim yaparken, uygulamanızın CPU, RAM, depolama ve ağ ihtiyaçlarını detaylıca analiz etmeniz önemlidir. Örneğin, sadece statik bir web sitesi barındıracaksanız bir T3 mikro örnek yeterli olabilirken, büyük bir e-ticaret sitesi için M5 veya C5 serisi daha uygun olacaktır. Performans testleri ve maliyet-fayda analizi, doğru kararı vermenizde size yardımcı olacaktır.

Amazon Machine Image (AMI) Nedir ve Nasıl Seçilir?

Amazon Machine Image (AMI), bir EC2 örneği başlatmak için gerekli olan tüm bilgileri (işletim sistemi, uygulama sunucusu, uygulamalar ve konfigürasyon ayarları gibi) içeren önceden yapılandırılmış bir şablondur. Bir AMI seçtiğinizde, sanal sunucunuz bu şablonun bir kopyası olarak başlatılır ve böylece sunucu kurulum süreci büyük ölçüde hızlanır.

AMI türleri şunları içerir:

  • AWS Tarafından Sağlanan AMI’ler: Amazon Linux, Ubuntu, Windows Server gibi popüler işletim sistemlerinin temiz ve güncel versiyonlarıdır. Genellikle yeni bir projeye başlarken veya özel bir konfigürasyona ihtiyacınız yoksa tercih edilir.
  • Topluluk AMI’leri: AWS topluluğu tarafından oluşturulan ve paylaşılan AMI’lerdir. Bunlar önceden yüklenmiş belirli yazılımlar veya daha özel konfigürasyonlar içerebilir. Ancak, güvenlik ve güvenilirlik açısından dikkatli olunmalı, doğrulanmış kaynaklardan seçilmelidir.
  • AWS Marketplace AMI’leri: Üçüncü taraf satıcılar tarafından sunulan, lisanslı yazılımları (örneğin, belirli bir veritabanı yazılımı veya güvenlik duvarı çözümü) içeren AMI’lerdir. Genellikle ek maliyetlidirler ancak hızlı kurulum ve entegrasyon sağlarlar.
  • Kendi Oluşturduğunuz AMI’ler: Mevcut bir EC2 örneğinizin anlık görüntüsünü (snapshot) alarak kendi özel AMI’nizi oluşturabilirsiniz. Bu, uygulamanızın belirli bir yapılandırmasını veya önceden yüklü yazılımlarını içeren kopyaları hızlıca çoğaltmak için harikadır. Sürekli entegrasyon/sürekli teslimat (CI/CD) süreçlerinde sıkça kullanılır.

AMI seçimi yaparken, kullanmak istediğiniz işletim sistemine, gerekli uygulama yazılımlarına ve güvenlik gereksinimlerinize dikkat etmelisiniz. Kendi AMI’nizi oluşturmak, özellikle birden fazla aynı yapılandırmaya sahip sunucuya ihtiyacınız olduğunda veya bir uygulama sürümünü dağıtırken zaman kazandırır.

Doğru örnek tipini ve AMI’yi seçmek, bulut altyapınızın temelini oluşturur. Bu kararları verirken performans gereksinimlerinizi, maliyet kısıtlamalarınızı ve gelecekteki büyüme potansiyelinizi göz önünde bulundurmak, uzun vadede size önemli avantajlar sağlayacaktır.

Uzman İpucu: Örnek tiplerini ve AMI’leri seçerken sadece mevcut ihtiyaçlarınızı değil, uygulamanızın gelecekteki büyüme ve performans gereksinimlerini de göz önünde bulundurun. Maliyet optimizasyonu için ‘burstable’ (T serisi) örnekleri test etmeyi unutmayın.

Bir EC2 Örneği Adım Adım Nasıl Oluşturulur ve Yönetilir?

AWS EC2’nin temelini oluşturan sanal sunucuları (örnekler) başlatma süreci, AWS Yönetim Konsolu üzerinden oldukça sezgiseldir. Bu bölümde, ilk EC2 örneğinizi nasıl başlatacağınızı, temel ayarlarını nasıl yapılandıracağınızı ve yaşam döngüsünü nasıl yöneteceğinizi adım adım ele alacağız. Bu adımlar, yeni başlayanlar için bile kolayca takip edilebilir bir rehber niteliğindedir.

Adım 1: AWS Yönetim Konsolu’na Giriş ve EC2 Servisine Erişim

İlk olarak, AWS hesabınızla AWS Yönetim Konsolu‘na giriş yapın. Arama çubuğuna “EC2” yazarak veya “Compute” kategorisi altından “EC2” servisine tıklayarak EC2 kontrol paneline erişin. Karşınıza, aktif örnekleriniz, anahtar çiftleriniz ve güvenlik gruplarınız gibi bilgileri gösteren bir özet ekran gelecektir.

Adım 2: Örnek Başlatma (Launch Instance)

EC2 kontrol panelinde, genellikle sağ üstte veya ortada bulunan “Launch instance” düğmesine tıklayın. Bu, yeni bir örnek başlatma sihirbazını açacaktır.

  1. AMI Seçimi: İlk adım, Amazon Machine Image (AMI) seçmektir. Genellikle “Amazon Linux 2 AMI” veya “Ubuntu Server AMI” gibi ücretsiz kullanım katmanına (Free Tier) uygun bir AMI seçerek başlayabilirsiniz. Bu, sunucunuzda çalışacak işletim sistemini belirler.
  2. Örnek Tipi Seçimi: Bir sonraki adımda, sunucunuzun işlemci, bellek ve depolama kaynaklarını belirleyen örnek tipini seçersiniz. Free Tier için genellikle “t2.micro” veya “t3.micro” seçenekleri mevcuttur. İş yükünüze uygun bir seçim yapmanız önemlidir.
  3. Örnek Yapılandırma Detayları: Bu adımda, örneğinizin ağ ayarlarını (VPC, alt ağ), IP adresi atamasını, başlatma betiklerini (user data) ve daha fazlasını yapılandırabilirsiniz. Çoğu durumda, varsayılan ayarlar başlangıç için yeterlidir. Örneğinizi bir web sunucusu olarak kullanacaksanız, genel erişimli bir IP adresi (Public IP) atanmasına dikkat edin.
  4. Depolama Ekleme: Örneğiniz için kök birimi (root volume) olarak kullanılan Elastic Block Store (EBS) diskinin boyutunu ve tipini belirlersiniz. Free Tier kapsamında 30 GB’a kadar ücretsiz depolama alabilirsiniz. İhtiyaç duyarsanız, ek EBS birimleri de ekleyebilirsiniz.
  5. Etiket Ekleme: Sunucularınızı kolayca organize etmek ve maliyet takibi yapmak için etiketler (key-value çiftleri) ekleyebilirsiniz. Örneğin, Name: MyWebServer gibi.
  6. Güvenlik Grubu Yapılandırma: Bu kritik adımda, örneğinize hangi ağ trafiğinin erişebileceğini belirleyen bir güvenlik grubu oluşturur veya mevcut bir güvenlik grubunu seçersiniz. Bir web sunucusu için, HTTP (80) ve HTTPS (443) portlarına genel erişime izin vermeniz gerekebilir. SSH (22) portuna ise yalnızca kendi IP adresinizden erişime izin vermek iyi bir güvenlik uygulamasıdır.
  7. Gözden Geçir ve Başlat: Tüm ayarları gözden geçirdikten sonra “Launch” düğmesine tıklayın.

Adım 3: Anahtar Çifti (Key Pair) Oluşturma veya Seçme

Örneğinizin güvenli bir şekilde erişilebilmesi için bir anahtar çifti oluşturmanız veya mevcut bir anahtar çiftini seçmeniz istenecektir. Bu anahtar çifti, SSH üzerinden Linux örneklerine veya RDP (Remote Desktop Protocol) üzerinden Windows örneklerine erişim için kullanılır. Yeni bir anahtar çifti oluşturursanız, .pem uzantılı özel anahtar dosyasını indirmeniz ve güvenli bir yerde saklamanız önemlidir. Bu dosya olmadan sunucunuza erişemezsiniz.

Anahtar çiftini seçtikten sonra, “Launch Instances” düğmesine tıklayarak örneğinizin başlatılmasını sağlayın.

Adım 4: Örneğe Bağlanma

Örnek başlatıldıktan sonra “View Instances” düğmesine tıklayarak örnekler listesine geri dönebilirsiniz. Örneğinizin durumu “pending” (beklemede) durumundan “running” (çalışıyor) durumuna geçecektir. Örneğinizi seçin ve “Connect” düğmesine tıklayın. Burada SSH istemcisi, EC2 Instance Connect veya Session Manager gibi farklı bağlantı yöntemleri sunulur.

Örneğin, SSH ile bağlanmak için Linux/macOS terminalinizde aşağıdaki komutu kullanabilirsiniz:


ssh -i "anahtar_adi.pem" ec2-user@ornek_genel_ip_adresi

Burada anahtar_adi.pem, indirdiğiniz özel anahtar dosyasının yolu, ec2-user, Amazon Linux için varsayılan kullanıcı adı (Ubuntu için ubuntu, diğerleri için değişebilir) ve ornek_genel_ip_adresi ise örneğinizin atanmış genel IP adresidir.

EC2 Örneği Yaşam Döngüsünü Yönetme

Bir örnek başlatıldıktan sonra, onu çeşitli şekillerde yönetebilirsiniz:

  • Durdurma (Stop): Örneği geçici olarak durdurur. Bellek içeriği kaybolur, ancak EBS depolama birimi kalır. Genel IP adresi değişebilir. Durdurulduğunda örnek için ücret ödemezsiniz (depolama hariç).
  • Başlatma (Start): Durdurulmuş bir örneği yeniden başlatır.
  • Yeniden Başlatma (Reboot): Örneği işletim sistemi seviyesinde yeniden başlatır. Tüm bellek içeriği korunur.
  • Sonlandırma (Terminate): Örneği kalıcı olarak siler. Tüm veriler (EBS depolama birimi silinmediyse hariç) kaybolur ve geri alınamaz. Genellikle bir örneğe ihtiyacınız kalmadığında maliyetlerden kaçınmak için sonlandırmanız gerekir.

Bu adımlarla, AWS EC2 üzerinde kendi sanal sunucunuzu kolayca başlatabilir, yapılandırabilir ve yönetebilirsiniz. Bu temel yetkinlik, bulut tabanlı projelerinizin başlangıç noktası olacaktır.

EC2 Güvenliği: Güvenlik Grupları ve Ağ Erişim Kontrol Listeleri (NACLS) Neden Önemli?

AWS EC2 örneklerinizin güvenliği, bulut altyapınızın genel sağlığı ve bütünlüğü için hayati öneme sahiptir. AWS, bu güvenliği sağlamak için katmanlı bir yaklaşım sunar ve bunun temelini güvenlik grupları ile Ağ Erişim Kontrol Listeleri (NACL'ler) oluşturur. Bu iki özellik, sunucularınıza gelen ve giden ağ trafiğini kontrol etmenizi sağlayarak yetkisiz erişimi engeller ve potansiyel güvenlik açıklarını sınırlar.

Güvenlik Grupları (Security Groups) Nedir ve Nasıl Çalışır?

Güvenlik grupları, bir veya daha fazla EC2 örneğine atayabileceğiniz sanal bir güvenlik duvarı görevi görür. Bunlar, örneklere gelen (inbound) ve giden (outbound) trafiği port, protokol ve kaynak/hedef IP adresi bazında filtreleyen kurallar içerir. Güvenlik grupları, durum bilgisi olan (stateful) bir yapıya sahiptir; yani bir kurala izin verdiğinizde, ilişkili geri dönüş trafiği otomatik olarak izin verilir. Örneğin, bir web sunucusuna gelen HTTP (80) trafiğine izin verdiğinizde, web sunucusundan istemciye giden yanıt trafiği için ayrı bir kural tanımlamanıza gerek kalmaz.

Güvenlik Grubu Kuralları Nasıl Yapılandırılır?

Bir güvenlik grubu oluştururken veya düzenlerken, aşağıdaki gibi kurallar tanımlarsınız:

  • Tür (Type): Hangi protokolün trafiğini kontrol ettiğiniz (örneğin, SSH, HTTP, HTTPS, TCP, UDP).
  • Port Aralığı (Port Range): Hangi port numaralarının veya port aralığının etkilendiği (örneğin, 22, 80, 443, 1024-65535).
  • Kaynak (Source) / Hedef (Destination): Trafiğin nereden gelebileceği (gelen trafik için) veya nereye gidebileceği (giden trafik için). Bu genellikle bir IP adresi (tek bir IP veya CIDR bloğu) veya başka bir güvenlik grubudur.

Örnek bir güvenlik grubu kuralı listesi:

Tür Protokol Port Aralığı Kaynak Açıklama
SSH TCP 22 0.0.0.0/0 SSH erişimine izin ver (Tüm IP'ler) - Test için kullanılır, üretimde kendi IP'niz olmalı.
HTTP TCP 80 0.0.0.0/0 Web sunucusu için HTTP erişimine izin ver
HTTPS TCP 443 0.0.0.0/0 Web sunucusu için HTTPS erişimine izin ver
Tüm Trafik Tümü Tümü sg-0123456789abcdef0 Bu güvenlik grubundan gelen tüm trafiğe izin ver (uygulama içi iletişim)

Önemli Not: Varsayılan olarak, güvenlik grupları tüm gelen trafiği engeller ve tüm giden trafiğe izin verir. Gelen trafiğe izin vermek için açıkça kurallar tanımlamanız gerekir. Ayrıca, bir örneğe birden fazla güvenlik grubu atayabilirsiniz ve bu güvenlik gruplarının kuralları birleştirilir.

Ağ Erişim Kontrol Listeleri (NACL'ler) Nedir ve Nasıl Çalışır?

NACL'ler, güvenlik gruplarından farklı olarak alt ağ (subnet) seviyesinde çalışan durum bilgisiz (stateless) güvenlik duvarlarıdır. Güvenlik grupları örnek seviyesinde bir koruma sağlarken, NACL'ler bir alt ağa gelen ve giden tüm trafiği kontrol eder. Durum bilgisiz olmaları, hem gelen hem de giden trafik için ayrı ayrı kurallar tanımlamanız gerektiği anlamına gelir. Örneğin, bir web sunucusuna gelen HTTP (80) trafiğine izin verdiğinizde, web sunucusundan istemciye giden yanıt trafiği için de (genellikle dinamik yüksek portlarda) açıkça kural tanımlamanız gerekir.

NACL Kuralları Nasıl Yapılandırılır?

NACL kuralları, numaralandırılmış bir listede belirtilir ve en düşük numaralı kuraldan başlanarak işlenir. Bir kural eşleştiğinde, diğer kurallar değerlendirilmez. Bu nedenle, kural sıralaması çok önemlidir. NACL'ler hem izin verme (allow) hem de reddetme (deny) kurallarına sahip olabilir.

Örnek bir NACL kuralı listesi:

Kural Numarası Tür Protokol Port Aralığı Kaynak/Hedef İzin Ver/Reddet
100 HTTP TCP 80 0.0.0.0/0 İzin Ver
110 HTTPS TCP 443 0.0.0.0/0 İzin Ver
120 Ephemeral Ports TCP 1024-65535 0.0.0.0/0 İzin Ver (Giden yanıtlar için)
* Tüm Trafik Tümü Tümü 0.0.0.0/0 Reddet (Varsayılan olarak son kural)

Farklılıklar ve En İyi Uygulamalar:

  • Kapsam: Güvenlik grupları örnek seviyesinde, NACL'ler alt ağ seviyesindedir.
  • Durum: Güvenlik grupları durum bilgisidir (stateful), NACL'ler durum bilgisizdir (stateless).
  • Kurallar: Güvenlik grupları yalnızca izin verme kurallarına sahiptir, NACL'ler hem izin verme hem de reddetme kurallarına sahiptir.
  • Varsayılan Davranış: Güvenlik grupları tüm gelen trafiği reddeder, tüm giden trafiğe izin verir. NACL'ler, oluşturduğunuzda varsayılan olarak tüm trafiğe izin verir, ancak özel NACL'ler oluşturduğunuzda son olarak tüm trafiği reddeden örtük bir kural içerir.

Genellikle, güvenlik grupları uygulamanızın belirli bileşenleri için daha ince taneli güvenlik sağlarken, NACL'ler bir alt ağdaki tüm örnekler için daha geniş bir ağ erişim kontrolü katmanı sunar. En iyi uygulama, her iki mekanizmayı da birlikte kullanarak katmanlı bir güvenlik stratejisi oluşturmaktır. Örneğin, bir web sunucusu alt ağındaki NACL'lerde sadece HTTP/HTTPS trafiğine izin verip, bu alt ağdaki EC2 örneğine atanan güvenlik grubunda SSH erişimini belirli bir IP'ye kısıtlayabilirsiniz. Bu, derinlemesine savunma ilkesini uygulayarak altyapınızı daha güvenli hale getirir.

Depolama Çözümleri: EBS, EFS ve S3 ile Verilerinizi Nasıl Saklarsınız?

AWS EC2 örneklerinizin kendisi, geçici depolama birimleri sunsa da, kalıcı ve ölçeklenebilir veri depolama için AWS'nin çeşitli depolama hizmetlerinden faydalanmak kritik öneme sahiptir. Amazon Elastic Block Store (EBS), Amazon Elastic File System (EFS) ve Amazon Simple Storage Service (S3) gibi çözümler, farklı ihtiyaçlara yönelik olarak tasarlanmıştır. Bu bölümde, hangi depolama çözümünü ne zaman kullanmanız gerektiğini ve her birinin temel özelliklerini inceleyeceğiz.

Amazon Elastic Block Store (EBS): Sanal Diskleriniz

EBS, EC2 örneklerine takılabilen yüksek performanslı, kalıcı blok depolama birimleri sağlar. Tıpkı fiziksel bir sunucuya bağladığınız bir sabit disk gibi düşünebilirsiniz. Bir EBS birimi, bir EC2 örneğinden bağımsız olarak çalışabilir, yani örneğiniz sonlandırılsa bile verileriniz EBS biriminde güvende kalır (örnek sonlandırılırken EBS biriminin de silinmemesi için ayar yapmanız gerekir). Bu, özellikle işletim sistemi, veritabanları veya sık erişilen uygulama verileri gibi performans hassasiyeti olan iş yükleri için idealdir.

EBS Birim Tipleri:

  • SSD Destekli Depolama (IOPS yoğun iş yükleri için):
    • Genel Amaçlı SSD (gp2/gp3): Çoğu iş yükü için dengeli bir performans ve maliyet sunar. Genellikle sistem önyükleme birimleri, geliştirme ortamları ve küçük-orta ölçekli veritabanları için tercih edilir. gp3, daha düşük maliyetle daha iyi performans kontrolü sunar.
    • Sağlanmış IOPS SSD (io1/io2/io2 Block Express): Özellikle kritik, I/O yoğun iş yükleri (büyük veritabanları gibi) için tasarlanmıştır. Belirli bir IOPS (saniyedeki giriş/çıkış işlemleri) seviyesi garanti eder.
  • HDD Destekli Depolama (Throughput yoğun iş yükleri için):
    • Cold HDD (sc1): Seyrek erişilen veriler ve düşük maliyetli depolama gerektiren iş yükleri (arşivleme gibi) için uygundur.
    • Throughput Optimized HDD (st1): Büyük veri setlerinin sık erişildiği (örneğin, büyük veri analizi, günlük işleme) iş yükleri için tasarlanmıştır. Yüksek ardışık okuma/yazma performansı sunar.

Önemli Özellikler: EBS anlık görüntüleri (snapshots) ile verilerinizi yedekleyebilir, yeni EBS birimleri oluşturabilir veya mevcut birimlerin boyutunu artırabilirsiniz. Ayrıca, farklı şifreleme seçenekleri ile verilerinizin güvenliğini sağlayabilirsiniz.

Amazon Elastic File System (EFS): Ölçeklenebilir Paylaşımlı Dosya Sistemi

EFS, birden fazla EC2 örneğinin aynı anda erişebileceği, esnek ve tamamen yönetilen bir dosya depolama hizmetidir. Ağ Dosya Sistemi (NFS) protokolünü kullanarak Linux tabanlı EC2 örneklerine kolayca bağlanabilir. Web sunucusu kümeleri, geliştirme ortamları, içerik yönetim sistemleri veya büyük veri analizi gibi ortak dosya erişimi gerektiren senaryolar için mükemmeldir.

EFS'nin en büyük avantajı, talep üzerine otomatik olarak ölçeklenebilmesidir. Yani, depolama alanını manuel olarak sağlamanıza gerek kalmaz; verileriniz büyüdükçe EFS otomatik olarak genişler. Ayrıca, verileri birden fazla erişilebilirlik alanı genelinde yedekli olarak saklayarak yüksek erişilebilirlik sunar.

Kullanım Alanları: İçerik depoları, ana dizinler (home directories), genel uygulama yapılandırma dosyaları, geliştirme ve test ortamları.

Amazon Simple Storage Service (S3): Nesne Depolama

S3, neredeyse sınırsız ölçeklenebilirlik, yüksek dayanıklılık ve düşük maliyet sunan bir nesne depolama hizmetidir. Dosyaları (nesneleri) "bucket" adı verilen konteynerlerde saklar. Web siteleri için statik içerik barındırma, yedekleme ve arşivleme, büyük veri analizi için veri gölleri (data lakes) ve uygulama çıktılarının depolanması gibi birçok farklı kullanım senaryosuna sahiptir.

S3, doğrudan bir işletim sistemi tarafından monte edilemez ve bir dosya sistemi gibi davranmaz; bunun yerine REST API aracılığıyla erişilir. Bu nedenle, bir EC2 örneğinin işletim sistemi veya uygulamaları tarafından doğrudan dosya sistemi olarak kullanılmaz. Ancak, uygulamalar S3 API'lerini kullanarak nesneleri okuyabilir ve yazabilir.

S3 Depolama Sınıfları:

  • S3 Standard: Sık erişilen veriler için yüksek performans ve düşük gecikme süresi sunar.
  • S3 Intelligent-Tiering: Erişimi bilinmeyen veya değişen veriler için verileri otomatik olarak en uygun depolama katmanına taşır.
  • S3 Standard-IA (Infrequent Access): Daha az sıklıkla erişilen ancak gerektiğinde hızlı erişim gerektiren veriler için.
  • S3 One Zone-IA: Tek bir erişilebilirlik alanında depolanır, daha düşük maliyetlidir ancak bölge arızasına karşı daha az dayanıklıdır.
  • S3 Glacier & Glacier Deep Archive: Uzun süreli arşivleme ve çok düşük maliyetli depolama için. Erişimi daha uzun sürebilir.

Farklı Kullanım Senaryoları:

  • EBS: Bir sunucuya bağlamanız gereken işletim sistemi ve veritabanları gibi kritik performans gerektiren veriler.
  • EFS: Birden fazla sunucunun aynı anda erişmesi gereken paylaşımlı dosya sistemleri.
  • S3: Statik web siteleri, yedeklemeler, arşivler, log dosyaları, medya dosyaları gibi nesne tabanlı depolama ihtiyaçları.

Doğru depolama çözümünü seçmek, uygulamanızın performansını, maliyetini ve veri dayanıklılığını optimize etmek açısından kilit öneme sahiptir. İş yüklerinizin gereksinimlerini dikkatlice değerlendirerek en uygun AWS depolama hizmetini seçmelisiniz.

Ölçeklenebilirlik ve Yüksek Erişilebilirlik: Auto Scaling ve Yük Dengeleme ile Uygulamalarınızı Nasıl Optimize Edersiniz?

Modern bulut uygulamalarının en önemli gereksinimlerinden ikisi, değişken yüklere uyum sağlayabilen ölçeklenebilirlik ve hizmet kesintilerini minimuma indiren yüksek erişilebilirliktir. AWS, bu hedeflere ulaşmak için Amazon EC2 Auto Scaling ve Elastic Load Balancing (ELB) gibi güçlü araçlar sunar. Bu hizmetleri bir arada kullanarak, uygulamalarınızın performansını ve sürekliliğini önemli ölçüde artırabilirsiniz.

Amazon EC2 Auto Scaling: Otomatik Ölçeklenme

EC2 Auto Scaling, uygulamanızın trafiğine veya kaynak kullanımına göre EC2 örneklerinin sayısını otomatik olarak ayarlayan bir AWS hizmetidir. Bu sayede, yoğun dönemlerde ek kapasite sağlayarak performans düşüşlerini engellerken, düşük yoğunluklu dönemlerde örnekleri azaltarak maliyet tasarrufu sağlar. Manuel müdahaleye gerek kalmadan altyapınızı optimize etmenizi mümkün kılar.

Auto Scaling Nasıl Çalışır?

  1. Başlatma Şablonu (Launch Template) veya Başlatma Konfigürasyonu (Launch Configuration): Auto Scaling grubunun yeni örnekleri nasıl başlatacağını tanımlar. Bu şablonlar, kullanılacak AMI, örnek tipi, anahtar çifti, güvenlik grupları ve kullanıcı verisi (user data) gibi bilgileri içerir. Başlatma Şablonları daha yeni ve esnek bir seçenektir.
  2. Auto Scaling Grubu (Auto Scaling Group - ASG): Başlatma şablonunu kullanarak örnekleri başlatan ve yöneten gruptur. ASG, belirlediğiniz minimum, maksimum ve istenen kapasite (desired capacity) değerlerine göre örnek sayısını korur.
  3. Ölçeklendirme Politikaları (Scaling Policies): Ne zaman ve nasıl ölçekleneceğini belirleyen kurallardır.
    • Basit Ölçeklendirme (Simple Scaling): Bir CloudWatch alarmı tetiklendiğinde örnek sayısını artırır veya azaltır. (Örn: CPU kullanımı %70'i aşarsa 2 örnek ekle)
    • Adım Ölçeklendirme (Step Scaling): CloudWatch alarmının büyüklüğüne bağlı olarak farklı artırma/azaltma adımları tanımlamanıza olanak tanır.
    • Hedef Takip Ölçeklendirme (Target Tracking Scaling): Bir metrik (örneğin, ortalama CPU kullanımı) için belirli bir hedef değeri korumaya çalışır. Bu, genellikle en kolay ve verimli ölçeklendirme yöntemidir.
    • Zamanlanmış Ölçeklendirme (Scheduled Scaling): Belirli bir zamanda (örneğin, her iş günü sabah 9'da) kapasiteyi ayarlamak için kullanılır.
  4. Sağlık Kontrolleri (Health Checks): Auto Scaling grubu, örneklerin sağlıklı olup olmadığını düzenli olarak kontrol eder ve sağlıksız örnekleri otomatik olarak sonlandırıp yenilerini başlatır.

Vaka Analizi: E-ticaret Sitesi
Bir e-ticaret sitesi, Kara Cuma indirimleri sırasında normalin 10 katı trafik alabilir. Manuel olarak yüzlerce sunucu kurmak ve ardından kapatmak imkansızdır. Auto Scaling ile, web sunucularının ortalama CPU kullanımının %60'ı aştığında otomatik olarak yeni EC2 örnekleri başlatacak bir hedef takip politikası tanımlanır. Trafik normale döndüğünde, CPU kullanımı düşer ve Auto Scaling örnek sayısını tekrar minimize eder. Bu, hem sürekli yüksek performansı garanti eder hem de işletmeye büyük maliyet tasarrufu sağlar.

Elastic Load Balancing (ELB): Yük Dengeleme

Elastic Load Balancing (ELB), gelen ağ trafiğini birden fazla hedefe (EC2 örnekleri gibi) otomatik olarak dağıtan bir hizmettir. Bu, uygulamanızın tek bir hata noktasını ortadan kaldırır, uygulamanızın performansını ve erişilebilirliğini artırır.

ELB Türleri:

  • Application Load Balancer (ALB): HTTP ve HTTPS trafiği için en uygun seçenektir. Gelişmiş yönlendirme özellikleri sunar (URL tabanlı, ana bilgisayar tabanlı yönlendirme gibi). Mikroservisler ve kapsayıcı tabanlı uygulamalar için idealdir.
  • Network Load Balancer (NLB): Ultra yüksek performans ve düşük gecikme süresi ile TCP, UDP ve TLS trafiği için tasarlanmıştır. Yüksek işlem hacmine sahip iş yükleri ve statik IP adresleri gerektiren senaryolar için uygundur.
  • Classic Load Balancer (CLB): Eski nesil yük dengeleyicidir. Artık yeni uygulamalar için ALB veya NLB tercih edilmelidir.

ELB'nin Faydaları:

  • Yüksek Erişilebilirlik: Trafiği birden fazla erişilebilirlik alanına yayarak tek bir hata noktasını ortadan kaldırır.
  • Ölçeklenebilirlik: Gelen trafiğe göre otomatik olarak ölçeklenir.
  • Sağlık Kontrolleri: Yalnızca sağlıklı örneklere trafik yönlendirir. Bir örnek başarısız olursa, trafiği diğer sağlıklı örneklere yönlendirir.
  • SSL/TLS Sonlandırma: Şifreleme/şifre çözme yükünü örneklerden alarak performansı artırır.

Auto Scaling ve ELB Entegrasyonu:
Bu iki hizmet birbiriyle mükemmel bir uyum içinde çalışır. Bir Auto Scaling grubundaki örnekler genellikle bir Elastic Load Balancer'ın arkasına yerleştirilir. ELB, gelen trafiği ASG'deki sağlıklı örneklere dağıtırken, ASG örnek sayısını dinamik olarak ayarlar. Bu entegrasyon, uygulamanızın hem performansını optimize eder hem de yüksek erişilebilirliğini garanti eder. Örneğin, bir web uygulaması için ALB'yi kullanarak gelen HTTP/HTTPS trafiğini Auto Scaling grubu içindeki web sunucularına yönlendirebilirsiniz. Bu kurulum, yoğunluk ne olursa olsun uygulamanızın sorunsuz çalışmasını sağlar.

Bu güçlü kombinasyon sayesinde, bulut altyapınızı "kendi kendini iyileştiren" ve "otomatik olarak ölçeklenen" bir yapıya dönüştürebilirsiniz. Bu da operasyonel yükü azaltır ve geliştiricilerin daha çok iş mantığına odaklanmasını sağlar.

EC2 Maliyet Optimizasyonu: Rezerv Edilmiş Örnekler ve Spot Örnekleri Nasıl Kullanılır?

AWS EC2'nin esnekliği ve güçlü özellikleri şüphesiz işletmeler için büyük avantajlar sunar. Ancak, bulut harcamalarının kontrol altında tutulması, her büyüklükteki şirket için kritik bir konudur. EC2, farklı kullanım senaryolarına yönelik çeşitli fiyatlandırma modelleri sunarak maliyet optimizasyonu konusunda önemli fırsatlar sağlar. Bu modeller arasında On-Demand örnekler, Rezerv Edilmiş Örnekler (Reserved Instances - RIs) ve Spot Örnekleri öne çıkmaktadır.

On-Demand (İstek Üzerine) Örnekler: Başlangıç Noktası

On-Demand örnekler, EC2'nin varsayılan ve en esnek fiyatlandırma modelidir. Yalnızca kullandığınız işlem gücü için saatlik veya saniyelik bazda ödeme yaparsınız. Taahhüt gerektirmez ve sunucuları istediğiniz zaman başlatıp durdurabilirsiniz. Bu model, kısa süreli veya düzensiz iş yükleri, geliştirme/test ortamları ve AWS ile yeni tanışanlar için idealdir.

Avantajı: Yüksek esneklik.
Dezavantajı: Diğer modellere göre genellikle daha pahalıdır.

Rezerv Edilmiş Örnekler (Reserved Instances - RIs): Taahhüt ile Tasarruf

Rezerv Edilmiş Örnekler, belirli bir örnek tipini (örneğin, t3.medium) 1 veya 3 yıl boyunca kullanmayı taahhüt ederek önemli ölçüde indirimli fiyatlar almanızı sağlar. Bu indirimler, On-Demand fiyatlarına kıyasla %75'e kadar çıkabilir. RIs, sürekli ve öngörülebilir iş yükleri (web sunucuları, veritabanları, arka uç uygulamaları) için mükemmel bir maliyet optimizasyonu aracıdır.

RI Türleri ve Özellikleri:

  • Standart RIs: Örnek tipi ve bölge için en yüksek indirimleri sunar, ancak esneklikleri düşüktür (örnek özelliklerini değiştiremezsiniz).
  • Dönüştürülebilir RIs (Convertible RIs): Daha düşük indirimlerle birlikte örnek tipini veya işletim sistemini değiştirme esnekliği sunar. Uzun vadede iş yüklerinizin değişebileceği durumlarda faydalıdır.
  • Bölge Kapsamlı RIs (Regional RIs): Belirli bir erişilebilirlik alanına bağlı kalmadan, o bölgedeki herhangi bir erişilebilirlik alanında kullanılabilir. Örnek tipleri uyumlu olduğu sürece Auto Scaling gruplarıyla da çalışır.

Ödeme Seçenekleri:

  • Peşin Yok (No Upfront): Taahhüt süresi boyunca indirimli saatlik ücret ödersiniz.
  • Kısmen Peşin (Partial Upfront): Daha büyük bir indirim karşılığında küçük bir peşin ödeme yaparsınız, geri kalanını indirimli saatlik ücret olarak ödersiniz.
  • Tam Peşin (All Upfront): En büyük indirimi almak için tüm taahhüt bedelini peşin ödersiniz.

Vaka Analizi: SaaS Şirketi
Bir SaaS (Software as a Service) şirketi, temel uygulamasını destekleyen sürekli çalışan bir dizi EC2 örneğine sahiptir. Bu örneklerin %80'inin 7/24 çalıştığını ve örnek tiplerinin uzun süre değişmeyeceğini bilirler. Bu durumda, bu örnekler için 3 yıllık, tam peşin ödemeli Standart Rezerv Edilmiş Örnekler satın alarak bulut maliyetlerini önemli ölçüde düşürebilirler. Kalan %20'lik değişken iş yükleri için On-Demand veya Spot örnekleri kullanmaya devam edebilirler.

Spot Örnekleri: Maksimum Tasarruf, Yüksek Değişkenlik

Spot örnekler, AWS'nin kullanılmayan EC2 kapasitesini çok düşük fiyatlarla (On-Demand fiyatlarına göre %90'a kadar indirim) sunan bir modeldir. Ancak, AWS bu kapasiteye ihtiyaç duyduğunda Spot örneğiniz herhangi bir zamanda 2 dakikalık bir uyarı ile sonlandırılabilir. Bu nedenle, Spot örnekleri kesintilere dayanıklı, esnek ve durum bilgisiz (stateless) iş yükleri için uygundur.

Spot Örnekleri İçin Uygun İş Yükleri:

  • Büyük veri analizi (Hadoop, Spark kümeleri)
  • CI/CD (Sürekli Entegrasyon/Sürekli Dağıtım) test ortamları
  • Toplu işleme (batch processing)
  • Web sunucuları (bir yük dengeleyici arkasında birden fazla Spot örnek kullanılarak)
  • Görüntü/video işleme

Önemli Not: Spot örneklerini kullanırken, iş yükünüzün kesintilere dayanıklı olduğundan veya görevin yeniden başlatılabileceğinden emin olmalısınız. Auto Scaling grupları ile Spot örnekleri entegre etmek, kapasite dalgalanmalarını yönetmek ve maliyetleri optimize etmek için güçlü bir yoldur.

Maliyet Optimizasyonu İpuçları:

  • Doğru Örnek Tipini Seçin: İş yükünüze en uygun CPU, RAM ve depolama kombinasyonunu sunan örnek tipini seçerek gereksiz maliyetlerden kaçının.
  • Kullanılmayan Kaynakları Sonlandırın: Geliştirme, test veya geçici iş yükleri bittiğinde EC2 örneklerini sonlandırmayı unutmayın.
  • Auto Scaling Kullanın: Uygulamanızın talebe göre otomatik olarak ölçeklenmesini sağlayarak, fazla kapasite için ödeme yapmaktan kaçının.
  • Reserved Instance ve Spot Instance Planlaması: Sürekli çalışan temel iş yükleriniz için RIs, kesintilere dayanıklı iş yükleriniz için Spot örnekleri kullanın.
  • EBS Birimlerini Optimize Edin: Kullanılmayan veya bağlantısız EBS birimlerini silin. Doğru EBS birim tipini seçin (örneğin, gp3 genellikle çoğu kullanım için iyi bir başlangıçtır).
  • AWS Cost Explorer Kullanın: Harcamalarınızı izlemek, trendleri belirlemek ve maliyet tasarrufu fırsatlarını bulmak için bu aracı kullanın.

EC2 maliyet optimizasyonu, sürekli bir süreçtir. İş yüklerinizi düzenli olarak analiz ederek, doğru fiyatlandırma modellerini ve AWS hizmetlerini bir araya getirerek bulut harcamalarınızı etkin bir şekilde yönetebilirsiniz.

Sonuç: AWS EC2 ile Bulutta Sınırları Aşın

Bu makalede, AWS Elastic Compute Cloud (EC2)'nin ne olduğundan, temel bileşenlerinden, bir örneğin nasıl başlatılacağından, güvenlik ve depolama çözümlerine, ölçeklenebilirlik ve maliyet optimizasyonuna kadar geniş bir yelpazeyi ele aldık. Gördüğümüz gibi, EC2 modern bulut altyapısının temel taşlarından biridir ve işletmelere eşsiz bir esneklik, ölçeklenebilirlik ve maliyet etkinliği sunar.

AWS EC2 sayesinde, geleneksel fiziksel sunucuların kısıtlamalarından kurtularak projelerinizi hızla hayata geçirebilir, anlık talep değişikliklerine kolayca uyum sağlayabilir ve küresel bir erişimle uygulamalarınızı dünyaya açabilirsiniz. Doğru örnek tipini seçmek, güvenliği sağlamak, verilerinizi etkin bir şekilde depolamak, Auto Scaling ve ELB ile otomatik ölçeklenebilir ve yüksek erişilebilir sistemler kurmak, ve nihayetinde Reserved Instances ve Spot Instances gibi fiyatlandırma modelleriyle maliyetleri optimize etmek, EC2'den en iyi şekilde yararlanmanın anahtarlarıdır.

Bulut bilişim yolculuğunuza başlarken veya mevcut altyapınızı güçlendirirken, AWS EC2, sınırsız potansiyeliyle size ve işletmenize yeni ufuklar açacaktır. Bu rehberdeki bilgilerle donanarak, kendi bulut maceralarınızı başlatmak için güçlü bir temele sahipsiniz. Unutmayın, bulut dünyası sürekli gelişiyor; bu nedenle en son gelişmeleri takip etmek ve AWS'nin sunduğu yenilikleri keşfetmek her zaman faydalı olacaktır.

Sıkça Sorulan Sorular

1. AWS EC2 Free Tier nedir ve kimler kullanabilir?
AWS Free Tier, AWS'ye yeni başlayan kullanıcıların belirli hizmetleri ücretsiz olarak deneyimlemelerini sağlayan bir programdır. EC2 için, belirli t2.micro veya t3.micro örneklerinden aylık 750 saate kadar kullanım, 30 GB EBS depolama ve daha fazlası ücretsizdir. Yeni bir AWS hesabı oluşturduğunuzda otomatik olarak bu programa dahil olursunuz ve genellikle ilk 12 ay boyunca geçerlidir. Bu, EC2'yi risksiz bir şekilde öğrenmek ve küçük uygulamalar çalıştırmak için harika bir fırsattır.

2. EC2 örneğimi durdurmak ile sonlandırmak arasındaki fark nedir?
Bir EC2 örneğini durdurmak (stop), örneği kapatır ancak EBS depolama birimini ve üzerindeki verileri korur. Genel IP adresi değişebilir. Durdurulduğunda işlemci ve bellek için ücret ödemezsiniz (ancak EBS depolama için ödemeye devam edersiniz). Örneği tekrar başlatabilirsiniz. Sonlandırmak (terminate) ise örneği kalıcı olarak siler. Örneğe bağlı tüm geçici depolama birimleri ve genellikle kök EBS birimi de silinir. Bu işlem geri alınamaz ve örneğinizle ilgili tüm veriler kaybolur. Bir örneğe artık ihtiyacınız kalmadığında maliyetlerden kaçınmak için sonlandırmanız gerekir.

3. Bir EC2 örneğine nasıl bağlanırım?
Linux tabanlı EC2 örneklerine genellikle SSH (Secure Shell) protokolü ile bağlanılır. Bağlanmak için örneği başlatırken oluşturduğunuz veya seçtiğiniz anahtar çifti (.pem dosyası) ve bir SSH istemcisi (örneğin PuTTY veya terminal) gereklidir. AWS Yönetim Konsolu üzerinden "Connect" seçeneği ile size özel bağlantı komutunu alabilirsiniz. Windows tabanlı EC2 örneklerine ise RDP (Remote Desktop Protocol) ile bağlanılır.

4. Güvenlik Grupları ve Ağ Erişim Kontrol Listeleri (NACL'ler) arasındaki temel fark nedir?
Güvenlik Grupları, EC2 örneği seviyesinde çalışan durum bilgisi olan (stateful) sanal güvenlik duvarlarıdır. Gelen tüm trafiği varsayılan olarak reddeder ve yalnızca izin verilen kuralları işler. NACL'ler ise alt ağ seviyesinde çalışan durum bilgisiz (stateless) güvenlik duvarlarıdır. Hem gelen hem de giden trafik için açık kurallar tanımlamanız gerekir ve hem izin verme hem de reddetme kurallarına sahip olabilirler. Güvenlik grupları genellikle daha ince taneli uygulama güvenliği sağlarken, NACL'ler daha geniş ağ segmenti güvenliği için kullanılır.

5. EC2 örneklerim için maliyetleri nasıl optimize edebilirim?
Maliyet optimizasyonu için çeşitli stratejiler mevcuttur:

  1. İş yükünüze uygun doğru örnek tipini seçin.
  2. Sürekli çalışan iş yükleri için Reserved Instances (RIs) kullanarak %75'e varan indirimlerden faydalanın.
  3. Kesintilere dayanıklı, esnek iş yükleri için Spot Örnekleri kullanarak %90'a varan indirimler elde edin.
  4. İhtiyaç duyulmayan EC2 örneklerini ve EBS birimlerini sonlandırın veya durdurun.
  5. Talebe göre kapasiteyi otomatik olarak ayarlamak için Auto Scaling kullanın.
  6. AWS Cost Explorer gibi araçlarla harcamalarınızı düzenli olarak izleyin ve analiz edin.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version