Bulut Bilişim, donanım bileşenlerine yapılan yatırımı önemli ölçüde azalttığı için modern bilişimin en önemli unsurlarından biridir; bu da onu geleneksel yöntemlere kıyasla yalnızca daha hesaplı değil, aynı zamanda daha güvenli ve daha güvenilir kılar.
2006 yılında AWS, kullanıcıların bulutta sanal bilgisayar kiralamasına olanak tanıyan EC2’yi tanıttı. Bu lansman, AWS’nin kuruluşların BT karmaşıklığını ve maliyetini düşürmek için ölçeklenebilir, uygun maliyetli ve esnek çözümler sunma yönündeki daha geniş misyonunun kilit bir parçasıydı. İşletmelerin uygulamalarını dağıtma ve ölçeklendirme biçiminde büyük bir fark yarattı.
Bu makaleyi okuduktan sonra, benim gibi AWS çekirdek hizmetleriyle ilgilenirseniz, oldukça kapsamlı olan AWS Concepts kursumuzu alın.
EC2 Örneği Nedir?
Elastic Compute Cloud olarak da bilinen EC2 örneği, basitçe başka bir yerde uzaktan kurulan sanal bir bilgisayardır. EC2 örneklerini, bir veri merkezinde bilgisayar kiralamak gibi düşünebilirsiniz. Özünde, fiziksel donanıma yatırım yapmadan bulutta uygulamalar çalıştırmanıza olanak tanıyan, yeniden boyutlandırılabilir, isteğe bağlı bir bilişim kaynağıdır.
Bir AWS EC2 örneği başlattığınızda, istediğiniz işletim sistemi ve yazılımı içeren bir Amazon Machine Image seçersiniz. Sistemi sıfırdan kurma zahmetinden kaçınmanız için tüm donanım işleri sizin yerinize yapılır. Bir örnek seçerken CPU, bellek, ağ kapasitesi ve daha fazlasını belirleyebilirsiniz. Bu esneklik, ölçeklenebilir çalışmalar için ideal bir ortam sağlar. Birazını ileride göstereceğim.
EC2 ve Diğer AWS Hizmetleri
Pek çok kişi EC2 örneklerini diğer AWS hizmetleriyle karıştırır. Bu bölümde aralarındaki temel farkların neler olduğunu açıklayacağım. Şöyle ki:
EC2 ve S3
EC2, sanal sunucular kiralamanıza (bir veri merkezinde bilgisayar kiralamak gibi) olanak tanırken, S3 (Simple Storage Service) yalnızca dosya depolama ve alma için tasarlanmıştır.
Biraz daha ayrıntı vermek gerekirse, S3 verileri nesne olarak kaydeden bir depolama hizmetidir. Son derece ölçeklenebilir, güvenli ve hızlıdır. Her ölçekten işletme; web siteleri, mobil uygulamalar, yedekler, arşivler, kurumsal uygulamalar, IoT cihazları ve büyük veri analitiği için üzerinde büyük miktarda veri depolayabilir. Ayrıca verilerinize kimin erişeceğini yönetmek ve kontrol etmek için basit araçlar sunar.
EC2 ve ECS/EKS
EC2 size sanal makine üzerinde tam kontrol sağlar; bu da yazılım ortamını kurma, yönetme ve sürdürme sorumluluğunun sizde olduğu anlamına gelir. Buna karşılık ECS (Elastic Container Service) ve EKS (Elastic Kubernetes Service) gibi hizmetler, alttaki sunucu ayrıntılarını yönetmeden konteynerleştirilmiş uygulamaları çalıştırmanıza yardımcı olur. Uygulamanızı konteynerlere yerleştirip lojistiği AWS’ye bıraktığınız, önceden organize edilmiş bir yük konteyneri sistemi gibidirler.
EC2 ve Lambda
EC2 ile sanal sunucular kiralar ve onları yönetirsiniz; Lambda ise, alttaki sunucuları hiç düşünmenize gerek kalmadan kodunuzu olaylara yanıt olarak çalıştıran sunucusuz bir platformdur. Lambda altyapıyı, ölçeklendirmeyi ve kodunuzun yürütülmesini otomatik olarak yönetir. Bu, bir mutfak kiralayıp yemeği kendiniz pişirmek yerine, talep üzerine teslim edilen bir yemek sipariş etmeye benzer. AWS Kinesis ve Lambda ile Akış Verileri kursumuz, Lambda’nın AWS ekosistemindeki kullanım örneklerinden birini gösterir.
EC2 ve RDS
EC2, her türlü uygulamayı çalıştırmaya yönelik genel amaçlı bir bilişim hizmetiyken, RDS (Relational Database Service) yalnızca veritabanları için yönetilen bir hizmettir. RDS, veritabanınızın bakımını, yedeklemelerini ve güncellemelerini üstlenir; böylece tıpkı tam hizmet veren bir restoranda günlük mutfak operasyonları yerine menüye odaklandığınız gibi siz de uygulamanıza odaklanabilirsiniz.
| Hizmet | İşlev 1 | İşlev 2 |
|---|
| EC2 | Uygulamaları çalıştırır | VM üzerinde tam kontrol |
| S3 | Dosya depolar/alır | |
| ECS/EKS | Konteynerleri yönetir | |
| Lambda | Sunucusuz, olay güdümlü | Sunucuları yönetir |
| RDS | Yönetilen veritabanı | Genel amaçlı hesaplama |
EC2 Diğer AWS Bileşenleriyle Nasıl Çalışır
EC2 tek başına çalışmaz. Diğer birçok AWS hizmetiyle yakından entegredir:
EC2 ve Amazon EBS (Elastic Block Store)
EBS, EC2 örneklerinize ekleyebileceğiniz kalıcı blok düzeyinde depolama sağlar. EBS’yi, kiraladığınız bilgisayara taktığınız ve bilgisayar yeniden başlatılsa bile verilerinizi koruyan bir sabit disk gibi düşünebilirsiniz.
EC2 ve Amazon CloudWatch
CloudWatch, CPU kullanımı, disk G/Ç ve ağ trafiği gibi metrikleri izleyerek EC2 örneklerinizin performansını takip eder. Bu, kiraladığınız bilgisayarın ne kadar iyi performans gösterdiğini söyleyen ve gerektiğinde kaynakları ayarlamanıza olanak tanıyan bir gösterge paneline benzer.
EC2 ve Otomatik Ölçeklendirme
Auto Scaling, uygulamanızın talebine göre EC2 örneklerini otomatik olarak ekler veya kaldırır. Bunu, trafik arttığında otomatik olarak fazladan bilgisayar kiralayan, ihtiyaç kalmadığında iade eden bir sistem olarak düşünebilirsiniz; böylece manuel müdahale olmadan her zaman doğru miktarda işlem gücüne sahip olursunuz.
| Hizmet | Amaç |
|---|
| EBS | Kalıcı depolama |
| CloudWatch | Performans izleme |
| Auto Scaling | Dinamik örnek ayarlama |
Daha önce bahsettiğim AWS Concepts kursumuz, AWS hizmetlerini ve birlikte nasıl çalıştıklarını çok daha derinlemesine anlamanızı sağlar.
EC2 Örnekleriyle Başlarken
EC2 örnekleri oldukça özelleştirilebilir ve tam gereksinimlerinizi karşılayacak şekilde mükemmel biçimde yapılandırılabilir. Bir EC2 örneği başlatmak ve yapılandırmak için ana adımlar şunlardır:
EC2 örneği başlatma
Bir EC2 örneği başlatmak, ihtiyacınız olan tam yapılandırmayla sanal sunucunuzu kuran adım adım bir süreçtir. İşleyişi şöyledir:
EC2 sekmesine gidin
Bu adımı, portalınızın sağ üst köşesindeki Search çubuğunda "EC2" araması yaparak veya Console Home sayfanızdaki hizmetler arasından seçerek yapabilirsiniz.
Yeni bir örnek başlatın
Bu adım tamamlandığında, hesabınızdaki önceden ayrılmış EC2 örneklerinizi görmeye başlamalısınız. Ardından yeni bir EC2 örneğini yapılandırmaya başlamak için Launch Instance’a tıklamalısınız.

Bir AMI (Amazon Machine Image) seçin
AMI, buluttaki bilgisayarınız için önceden yapılandırılmış bir şablon gibidir. Bir işletim sistemi ve ihtiyaç duyabileceğiniz ek yazılımlarla birlikte gelir. Bir AMI seçtiğinizde, örneğiniz için bir "başlangıç paketi" seçmiş olursunuz; tıpkı Windows veya Linux yüklü olarak önceden kurulmuş bir bilgisayar kiralamak gibi.

Bir örnek türü seçin
Sonrasında iş yükünüze göre bir örnek türü seçersiniz. AWS; genel amaçlı, patlama performanslı T2 gibi ya da işlem yoğun görevler için C5 gibi birçok tür sunar. Bu adımı, kiraladığınız bilgisayarın donanım özelliklerine ve CPU, bellek ve ağ performansı açısından ne kadar güçlü olacağına karar vermek olarak düşünebilirsiniz.
Anahtar çiftlerini yapılandırın
Örneğinize güvenli bir şekilde erişmek için bir anahtar çifti (açık ve özel anahtar) oluşturmanız gerekir. Bu sayede örneğinize SSH (Secure Shell) veya RDP (Uzak Masaüstü Protokolü) kullanarak bağlanabilirsiniz. Mevcut bir anahtar çifti seçmeli veya Create a new key pair’a tıklayarak yeni bir anahtar çifti oluşturmalısınız.

Ağ yapılandırmasını yapın
Ardından, bir Sanal Özel Bulut (VPC) ve alt ağ seçerek örneğinizin nerede bulunacağını belirlersiniz. Bu, örneğin genel bir IP adresi alıp almayacağı (internet üzerinden erişilebilir olması) ya da özel kalıp kalmayacağı gibi ağ ortamını belirler. Bu, güvenli bir veri merkezi içinde bilgisayarınızın yerini seçmeye benzer.

Bu görsel, AWS tarafından örneğiniz için seçilen varsayılan VPC ve alt ağı gösterir. Ağ ayarlarınızı özelleştirmek isterseniz yeni bir VPC ve alt ağ da oluşturabilirsiniz.
Güvenliği ayarlayın (security group’lar)
Security Group’lar sanal bir güvenlik duvarı gibi davranır. Burada, hangi trafik türlerinin (ör. SSH, HTTP) örneğinize ulaşabileceğini kontrol eden kuralları tanımlarsınız. Örneğin, yalnızca belirli IP adresinizden SSH erişimine izin verebilirsiniz. Böylece kullanıcıların ayrılan örneğinize nasıl erişebileceğini sınırlarsınız. Create security group’a tıklayarak yeni bir security group oluşturabilir veya mevcut birini seçebilirsiniz.
Depolama ekleyin
Örneğinize, Amazon EBS birimleri gibi depolama birimleri ekleyebilirsiniz; bunlar sabit disk gibi davranır. Ayrıca, kolay tanımlama ve yönetim için örneğinize etiketler ekleyebilirsiniz. Bu, bilgisayarınızın depolama alanını ayarlamak ve daha sonra kolay erişim için etiketlemek gibidir.

Gözden geçirin ve başlatın
Son olarak, her şeyin doğru kurulduğundan emin olmak için örneğinizin yapılandırmasını gözden geçirirsiniz. Ayarlardan memnunsanız örneğinizi başlatmak için Launch’a tıklarsınız. Bu, bilgisayarınızı açmadan önce kurulumunu iki kez kontrol etmeye benzer. Alternatif olarak, ayrıntılı bir yerel EC2 örneği kurulumu için Yeni Başlayanlar için AWS EC2 Eğitimi başlığını inceleyin.
Bir alternatif: kullanıcı verisi (user data) betikleri
Bir örnek başlatırken, ilk önyükleme sırasında çalışacak "user data" adlı bir betik sağlayabilirsiniz. Bu betik, yazılım kurabilir, güncellemeler uygulayabilir veya ayarları otomatik olarak yapılandırabilir; böylece her seferinde manuel kurulumdan kurtulursunuz.
EC2 örneklerini yapılandırma ve yönetme
Bir EC2 örneğini yapılandırmak, bilgisayarı görevlerinize tam uygun şekilde kurmaya benzer. Örneğinizi başlattıktan sonra şunlar gibi çeşitli yollarla özelleştirebilirsiniz:
- Yeniden boyutlandırma: CPU, bellek ve diğer kaynak miktarını ayarlamak için örnek türünü değiştirebilirsiniz. Bu, bilgisayarınızın donanımını yükseltmeye benzer; test için küçük bir kurulumla başlayıp, ihtiyaçlarınız arttıkça daha güçlü bir makineye geçebilirsiniz.
- Yazılım kurma: Örneğiniz çalışmaya başladığında, güvenli bir şekilde (SSH ve anahtar çiftleri kullanarak) bağlanır ve gerekli uygulama ve hizmetleri kurarsınız. Bağlandıktan sonra, terminal komutlarıyla veya GUI üzerinden yazılımlarınızı kurmaya başlayabilirsiniz.
- Erişimi güvenceye alma: AWS, örneğinize erişimi güvenceye almak için anahtar çiftleri (açık ve özel anahtar) kullanır. Açık anahtar örnekte saklanır; özel anahtarı ise yerel makinenizde güvenli şekilde tutarsınız. SSH bağlayıcınızdan bağlanmak için bu SSH anahtar çiftlerini kullanın.
- User data betikleri kullanma: Bir örnek başlatırken, ilk önyüklemede otomatik olarak çalışan ("user data" olarak adlandırılan) bir betik sağlayabilirsiniz. Bu betik yazılım kurabilir, güncellemeler uygulayabilir veya ayarları otomatik olarak yapılandırabilir; böylece her seferinde manuel kurulumdan kurtulursunuz.
- systemd gibi araçlarla sistemi yönetme: Uygulamalarınız kurulduktan sonra, her önyüklemede otomatik başlamalarını veya çökerlerse yeniden başlamalarını isteyebilirsiniz. İşte bu noktada systemd gibi sistem yönetim araçları devreye girer; sanal sunucunuz için yerleşik bir servis yöneticisi gibi davranırlar.
EC2 otomatik ölçeklendirme ve yük dengeleme
EC2 Auto Scaling Grupları ve Elastic Load Balancing, talep dalgalansa bile uygulamalarınızın her zaman erişilebilir olmasını ve iyi performans göstermesini sağlamak için birlikte çalışır.
Auto Scaling grupları
AWS’de bir Auto Scaling grubu, metrikler (CPU kullanımı veya ağ trafiği gibi) tanımlı eşikleri aştığında yeni EC2 örnekleri başlatır ve talep düştüğünde bunları sonlandırır. Bu sayede kaynakları elle ayarlamak zorunda kalmadan her zaman doğru miktarda işlem gücüne sahip olursunuz.
Elastic load balancing (ELB)
ELB, gelen trafiği bir veya daha fazla erişilebilirlik bölgesindeki tüm sağlıklı EC2 örnekleri arasında otomatik olarak dağıtır. Bir sunucu kullanılamaz hale gelir veya aşırı yüklenirse ELB trafiği diğer sunuculara yönlendirir. Böylece tek bir örneğin aşırı yüklenmesini önleriz. Bu, uygulamanızın güvenilirliği için çok önemlidir. AWS becerilerinizi derinleştirmek için AWS Cloud Practitioner (CLF-C02) takip yolumuza göz atın.
EC2 Kullanmanın Özellikleri ve Faydaları
EC2, kullanıcılara çok sayıda özellik ve fayda sunan çok yönlü bir hizmettir. İşte bazıları:
Temel özellikler
Amazon EC2, iş yükünüzün ihtiyaçlarına uygun geniş ve derin bir örnek türü seçkisi sunar. Bu alt bölümde, EC2 örneklerinin başlıca özelliklerini anlatacağım.
- Esneklik: AWS; çeşitli örnek türleri, CPU, GPU ve depolama gibi işlem kaynakları; Windows, Mac ve Linux gibi işletim sistemleri ve ağ parametreleri, etkinlik süresi ve diğerleri gibi yapılandırmalar arasından seçim yapmanıza olanak tanır.
- Ölçeklenebilirlik: EC2 Auto Scaling gibi hizmetlerle değişen talebe göre işlem kapasitesini otomatik olarak ayarlayın.
- Maliyet etkinliği: Maliyetleri optimize etmek için On-Demand, Savings Plans ve Spot Instances dahil birden fazla fiyatlandırma modeli arasından seçim yapın.
- Entegrasyon: Amazon S3 (depolama) ve Amazon RDS (yönetilen veritabanları) gibi diğer AWS hizmetleriyle sorunsuz biçimde bağlanın.
Farklı iş yükleri için faydalar
Birçok startup, kurumsal şirket ve veri yoğun uygulama AWS EC2’dan yararlanabilir; bu da çalışmalarını önemli ölçüde etkileyebilir.
Yığın işleme görevleri ve yüksek enerji gerektiren işler çalıştırma
EC2’nun ölçeklenebilirliği ve esnekliği, onu yığın işleme görevleri için ideal bir seçim kılar. Günlükleri işleme, bilimsel simülasyonlar yürütme veya sadece medya dosyalarını işleme gibi büyük veri hacimlerini ve yüksek performans gereksinimlerini verimli şekilde ele alır.
Dağıtım
Hizmetlerin, web uygulamalarının, makine öğrenimi modellerinin ve benzerlerinin dağıtımı; ölçeklenebilirlik, güvenlik, maliyet etkinliği vb. birçok nedenle yerel bir sunucuda yapılması önerilmez. EC2 örneği, mümkün olan en düşük maliyetle ve en yüksek performansla kullanmanız için size en iyi kurulumu sağlar. Bu denge, ürünlerinizi etkili biçimde yönetmenize yardımcı olur.
Satın Alma Modelleri ve Maliyet Optimizasyonu
Aşırı harcama yapmadan EC2 örneklerinizden en iyi şekilde yararlanmak için farklı fiyatlandırma modellerini ve maliyet optimizasyonu stratejilerini anlamak önemlidir. Bu bölümde farklı fiyatlandırma seçeneklerini ve maliyetlerinizi nasıl optimize edeceğinizi açıklayacağım.
EC2 fiyatlandırma seçenekleri
Amazon EC2, farklı iş yükleri ve bütçelere uygun çeşitli fiyatlandırma modelleri sunar. Başlıca seçenekler şunlardır:
İsteğe bağlı (On-Demand) örnekler
On-Demand örnekleri, saatlik veya saniyelik işlem gücü kiralamak gibidir — araba satın almak yerine kısa bir yolculuk için taksi çağırmaya benzer. Peşin maliyet ve uzun vadeli taahhütlerden kaçınır, tıpkı elektrik faturası gibi yalnızca kullandığınız kadar ödersiniz. Öngörülemeyen iş yükleri (ani trafik artışları) veya yeni uygulamaları test etmek için idealdir.
Spot örnekler
Amazon EC2 Spot Örnekleri, kullanılmayan AWS kapasitesini, kesintisiz ve garantili erişim için sabit saatlik/saniyelik ücret alan On-Demand örneklere kıyasla %90’a varan daha düşük maliyetle sunar. On-Demand (istikrarlı, acil iş yükleri için ideal) sabit fiyatlıyken, Spot örnekleri dinamik bir açık artırma gibi çalışır; daha ucuzdur ancak kesintiye uğrayabilir ve talep arttığında AWS kaynakları geri alabilir.
Savings Plans
AWS Savings Plans, 1 veya 3 yıl boyunca saatlik sabit bir hesaplama gücü kullanımına taahhüt ederseniz, On-Demand fiyatlarına kıyasla %72’ye varan tasarruf sağlar. AWS üç tür sunar: Compute Savings Plans (EC2, Lambda ve Fargate için geçerli), EC2 Instance Savings Plans (EC2’ye özgü) ve SageMaker Savings Plans (ML iş yükleri için).
On-Demand kapasite rezervasyonları
On-Demand Capacity Reservations, belirli bir Erişilebilirlik Bölgesinde ihtiyaç duyduğunuz süre boyunca EC2 işlem kapasitesini rezerve etmenize olanak tanır; böylece kıtlık dönemlerinde bile erişim sağlanır. Bunu önceden garanti edilen bir otopark yeri ayırtmaya benzetebilirsiniz; standart On-Demand ücretleri ödersiniz ancak kaynakların kullanılamama riskinden kaçınırsınız.
Makine öğrenimi için Amazon EC2 kapasitesi
Amazon EC2 Capacity Blocks for ML, makine öğrenimi iş yüklerini çalıştırmak için GPU örneklerini (P5 veya P4d) belirli bir zaman dilimi için önceden ayırtmanıza ve yalnızca ayırdığınız işlem süresi için ödeme yapmanıza olanak tanır. Bunu kritik bir toplantı için konferans salonu ayırtmaya benzetebilirsiniz; seçtiğiniz tarihlerde ML görevleriniz (eğitim, prototipleme veya ölçekleme) için kullanılabilirliği sözleşmesiz olarak garanti edersiniz.
Adanmış ana makineler (Dedicated Hosts)
Amazon EC2 Dedicated Hosts, iş yükleriniz için fiziksel bir sunucuyu yalnızca size ayrılmış şekilde rezerve etmenize olanak tanır; AWS veri merkezinde "özel bir süit" gibi davranır. Tam donanımlı bir ofis alanı kiralamaya benzetebilirsiniz; donanım üzerinde kontrol sahibi olur ve mevcut lisansları (ör. Windows, SQL Server) yeniden kullanarak maliyetleri düşürürsünüz; AWS ise bakım ve altyapıyla ilgilenir. Saatlik On-Demand olarak veya Savings Plans ile satın alın.
EC2 faturalandırması nasıl işler
EC2 örneklerinin maliyetini hesaplamak üç kilit faktöre bağlıdır: örnek boyutu/türü, kullanım saatleri, ve coğrafi bölge. GPU gücü ve bellek gibi ağır kaynaklara sahip daha büyük örnekler saat başına daha pahalıdır. Ayrıca, maliyetler çalışma süresine (saniye, dakika veya saat) ve fiyatlandırma modeline (On-Demand, rezerve, spot) göre birikir ve fiyatlar yerel talep, altyapı maliyetleri ve vergiler nedeniyle AWS bölgelerine göre de değişir.
Maliyet optimizasyon stratejileri
Maliyetlerinizi optimize etmenin birçok yolu vardır, örneğin:
- Doğru boyutlandırma: Örnek özelliklerini (CPU, bellek, depolama) iş yükü gereksinimlerine eşleştirin.
- Spot örnekleri kullanma: Para tasarrufu için kesintiye toleranslı görevlerde (yığın işler) kullanın.
- Savings Plans/ayrılmış örnekleri etkinleştirme: İstikrarlı iş yükleri için bir veya üç yıllık taahhüt vererek maliyetleri düşürün.
- Otomatik ölçeklendirme: Aşırı tahsisi önlemek için kapasiteyi talebe göre otomatik olarak ayarlayın.
- Bölge seçimi: Uygun olduğunda, ABD Doğu gibi daha düşük maliyetli bölgelerde dağıtım yapın; AB Batı’ya kıyasla daha ekonomik olabilir.
EC2 maliyetlerinizi optimize etmenize yardımcı olabilecek birkaç araç da vardır. AWS Cost Explorer harcama eğilimlerini izleyebilir ve optimizasyon fırsatlarını belirleyebilir. Trusted Advisor önerilerde bulunabilir ve kimi zaman faydalıdır.
EC2 En İyi Uygulamalar ve Güvenlik Hususları
Güvenli ve verimli bir EC2 dağıtımı için şu üç kilit alana odaklanın:
CPU, bellek ve ağ kullanımını izlemek ve sorunları erken yakalamak için Amazon CloudWatch kullanın. Gereksiz maliyetlerden kaçınmak için doğru örnek boyutunu seçin. Trafiğe göre kapasiteyi otomatik ayarlamak için Auto Scaling’i etkinleştirin.
Güvenliği güçlendirin
Security group’lar ve VPC’ler ile erişimi kontrol ederek örnekleri izole tutun. Kimlik doğrulama için parolalar yerine anahtar çiftleri kullanın. Otomatik yamalama ve düzenli güncellemelerle örnekleri güvenli tutun.
Güvenilir yedekler sağlayın
Tam örnek yedekleri için AMI’ler oluşturun ve depolama için EBS anlık görüntülerini kullanın. Yedeklemeleri AWS Backup ile otomatikleştirin ve ek koruma için birden fazla bölgede kopyaları saklayın.
Sonuç
Özetle, EC2 size neredeyse anında esnek, ölçeklenebilir ve uygun maliyetli çözümler oluşturma imkânı sunar. Diğer AWS hizmetleriyle kolayca entegre olur; dağıtımı ve yüksek enerjili hesaplamayı kolaylaştırır. Uygulamanızın gereksinimlerine mükemmel şekilde uyan esnek satın alma modelleri sağlar. En güzeli de bir tanesini ücretsiz oluşturabilirsiniz.
EC2’yi sağlam biçimde anlamak, daha gelişmiş bulut mimarilerine ve dağıtım stratejilerine giden yolda bir basamak olabilir. AWS hizmetleri hakkında daha fazla öğrenmeye, AWS Cloud Practitioner yetkinlik yolumuz ve AWS Cloud Technology and Services Concepts kursumuzla devam edin.
Bulut Bilişim, donanım bileşenlerine yapılan yatırımı önemli ölçüde azalttığı için modern bilişimin en önemli unsurlarından biridir; bu da onu geleneksel yöntemlere kıyasla yalnızca daha hesaplı değil, aynı zamanda daha güvenli ve daha güvenilir kılar.
2006 yılında AWS, kullanıcıların bulutta sanal bilgisayar kiralamasına olanak tanıyan EC2’yi tanıttı. Bu lansman, AWS’nin kuruluşların BT karmaşıklığını ve maliyetini düşürmek için ölçeklenebilir, uygun maliyetli ve esnek çözümler sunma yönündeki daha geniş misyonunun kilit bir parçasıydı. İşletmelerin uygulamalarını dağıtma ve ölçeklendirme biçiminde büyük bir fark yarattı.
Bu makaleyi okuduktan sonra, benim gibi AWS çekirdek hizmetleriyle ilgilenirseniz, oldukça kapsamlı olan AWS Concepts kursumuzu alın.
EC2 Örneği Nedir?
Elastic Compute Cloud olarak da bilinen EC2 örneği, basitçe başka bir yerde uzaktan kurulan sanal bir bilgisayardır. EC2 örneklerini, bir veri merkezinde bilgisayar kiralamak gibi düşünebilirsiniz. Özünde, fiziksel donanıma yatırım yapmadan bulutta uygulamalar çalıştırmanıza olanak tanıyan, yeniden boyutlandırılabilir, isteğe bağlı bir bilişim kaynağıdır.
Bir AWS EC2 örneği başlattığınızda, istediğiniz işletim sistemi ve yazılımı içeren bir Amazon Machine Image seçersiniz. Sistemi sıfırdan kurma zahmetinden kaçınmanız için tüm donanım işleri sizin yerinize yapılır. Bir örnek seçerken CPU, bellek, ağ kapasitesi ve daha fazlasını belirleyebilirsiniz. Bu esneklik, ölçeklenebilir çalışmalar için ideal bir ortam sağlar. Birazını ileride göstereceğim.
EC2 ve Diğer AWS Hizmetleri
Pek çok kişi EC2 örneklerini diğer AWS hizmetleriyle karıştırır. Bu bölümde aralarındaki temel farkların neler olduğunu açıklayacağım. Şöyle ki:
EC2 ve S3
EC2, sanal sunucular kiralamanıza (bir veri merkezinde bilgisayar kiralamak gibi) olanak tanırken, S3 (Simple Storage Service) yalnızca dosya depolama ve alma için tasarlanmıştır.
Biraz daha ayrıntı vermek gerekirse, S3 verileri nesne olarak kaydeden bir depolama hizmetidir. Son derece ölçeklenebilir, güvenli ve hızlıdır. Her ölçekten işletme; web siteleri, mobil uygulamalar, yedekler, arşivler, kurumsal uygulamalar, IoT cihazları ve büyük veri analitiği için üzerinde büyük miktarda veri depolayabilir. Ayrıca verilerinize kimin erişeceğini yönetmek ve kontrol etmek için basit araçlar sunar.
EC2 ve ECS/EKS
EC2 size sanal makine üzerinde tam kontrol sağlar; bu da yazılım ortamını kurma, yönetme ve sürdürme sorumluluğunun sizde olduğu anlamına gelir. Buna karşılık ECS (Elastic Container Service) ve EKS (Elastic Kubernetes Service) gibi hizmetler, alttaki sunucu ayrıntılarını yönetmeden konteynerleştirilmiş uygulamaları çalıştırmanıza yardımcı olur. Uygulamanızı konteynerlere yerleştirip lojistiği AWS’ye bıraktığınız, önceden organize edilmiş bir yük konteyneri sistemi gibidirler.
EC2 ve Lambda
EC2 ile sanal sunucular kiralar ve onları yönetirsiniz; Lambda ise, alttaki sunucuları hiç düşünmenize gerek kalmadan kodunuzu olaylara yanıt olarak çalıştıran sunucusuz bir platformdur. Lambda altyapıyı, ölçeklendirmeyi ve kodunuzun yürütülmesini otomatik olarak yönetir. Bu, bir mutfak kiralayıp yemeği kendiniz pişirmek yerine, talep üzerine teslim edilen bir yemek sipariş etmeye benzer. AWS Kinesis ve Lambda ile Akış Verileri kursumuz, Lambda’nın AWS ekosistemindeki kullanım örneklerinden birini gösterir.
EC2 ve RDS
EC2, her türlü uygulamayı çalıştırmaya yönelik genel amaçlı bir bilişim hizmetiyken, RDS (Relational Database Service) yalnızca veritabanları için yönetilen bir hizmettir. RDS, veritabanınızın bakımını, yedeklemelerini ve güncellemelerini üstlenir; böylece tıpkı tam hizmet veren bir restoranda günlük mutfak operasyonları yerine menüye odaklandığınız gibi siz de uygulamanıza odaklanabilirsiniz.
EC2 Diğer AWS Bileşenleriyle Nasıl Çalışır
EC2 tek başına çalışmaz. Diğer birçok AWS hizmetiyle yakından entegredir:
EC2 ve Amazon EBS (Elastic Block Store)
EBS, EC2 örneklerinize ekleyebileceğiniz kalıcı blok düzeyinde depolama sağlar. EBS’yi, kiraladığınız bilgisayara taktığınız ve bilgisayar yeniden başlatılsa bile verilerinizi koruyan bir sabit disk gibi düşünebilirsiniz.
EC2 ve Amazon CloudWatch
CloudWatch, CPU kullanımı, disk G/Ç ve ağ trafiği gibi metrikleri izleyerek EC2 örneklerinizin performansını takip eder. Bu, kiraladığınız bilgisayarın ne kadar iyi performans gösterdiğini söyleyen ve gerektiğinde kaynakları ayarlamanıza olanak tanıyan bir gösterge paneline benzer.
EC2 ve Otomatik Ölçeklendirme
Auto Scaling, uygulamanızın talebine göre EC2 örneklerini otomatik olarak ekler veya kaldırır. Bunu, trafik arttığında otomatik olarak fazladan bilgisayar kiralayan, ihtiyaç kalmadığında iade eden bir sistem olarak düşünebilirsiniz; böylece manuel müdahale olmadan her zaman doğru miktarda işlem gücüne sahip olursunuz.
Daha önce bahsettiğim AWS Concepts kursumuz, AWS hizmetlerini ve birlikte nasıl çalıştıklarını çok daha derinlemesine anlamanızı sağlar.
EC2 Örnekleriyle Başlarken
EC2 örnekleri oldukça özelleştirilebilir ve tam gereksinimlerinizi karşılayacak şekilde mükemmel biçimde yapılandırılabilir. Bir EC2 örneği başlatmak ve yapılandırmak için ana adımlar şunlardır:
EC2 örneği başlatma
Bir EC2 örneği başlatmak, ihtiyacınız olan tam yapılandırmayla sanal sunucunuzu kuran adım adım bir süreçtir. İşleyişi şöyledir:
EC2 sekmesine gidin
Bu adımı, portalınızın sağ üst köşesindeki Search çubuğunda "EC2" araması yaparak veya Console Home sayfanızdaki hizmetler arasından seçerek yapabilirsiniz.
Yeni bir örnek başlatın
Bu adım tamamlandığında, hesabınızdaki önceden ayrılmış EC2 örneklerinizi görmeye başlamalısınız. Ardından yeni bir EC2 örneğini yapılandırmaya başlamak için Launch Instance’a tıklamalısınız.
Bir AMI (Amazon Machine Image) seçin
AMI, buluttaki bilgisayarınız için önceden yapılandırılmış bir şablon gibidir. Bir işletim sistemi ve ihtiyaç duyabileceğiniz ek yazılımlarla birlikte gelir. Bir AMI seçtiğinizde, örneğiniz için bir "başlangıç paketi" seçmiş olursunuz; tıpkı Windows veya Linux yüklü olarak önceden kurulmuş bir bilgisayar kiralamak gibi.
Bir örnek türü seçin
Sonrasında iş yükünüze göre bir örnek türü seçersiniz. AWS; genel amaçlı, patlama performanslı T2 gibi ya da işlem yoğun görevler için C5 gibi birçok tür sunar. Bu adımı, kiraladığınız bilgisayarın donanım özelliklerine ve CPU, bellek ve ağ performansı açısından ne kadar güçlü olacağına karar vermek olarak düşünebilirsiniz.
Anahtar çiftlerini yapılandırın
Örneğinize güvenli bir şekilde erişmek için bir anahtar çifti (açık ve özel anahtar) oluşturmanız gerekir. Bu sayede örneğinize SSH (Secure Shell) veya RDP (Uzak Masaüstü Protokolü) kullanarak bağlanabilirsiniz. Mevcut bir anahtar çifti seçmeli veya Create a new key pair’a tıklayarak yeni bir anahtar çifti oluşturmalısınız.
Ağ yapılandırmasını yapın
Ardından, bir Sanal Özel Bulut (VPC) ve alt ağ seçerek örneğinizin nerede bulunacağını belirlersiniz. Bu, örneğin genel bir IP adresi alıp almayacağı (internet üzerinden erişilebilir olması) ya da özel kalıp kalmayacağı gibi ağ ortamını belirler. Bu, güvenli bir veri merkezi içinde bilgisayarınızın yerini seçmeye benzer.
Bu görsel, AWS tarafından örneğiniz için seçilen varsayılan VPC ve alt ağı gösterir. Ağ ayarlarınızı özelleştirmek isterseniz yeni bir VPC ve alt ağ da oluşturabilirsiniz.
Güvenliği ayarlayın (security group’lar)
Security Group’lar sanal bir güvenlik duvarı gibi davranır. Burada, hangi trafik türlerinin (ör. SSH, HTTP) örneğinize ulaşabileceğini kontrol eden kuralları tanımlarsınız. Örneğin, yalnızca belirli IP adresinizden SSH erişimine izin verebilirsiniz. Böylece kullanıcıların ayrılan örneğinize nasıl erişebileceğini sınırlarsınız. Create security group’a tıklayarak yeni bir security group oluşturabilir veya mevcut birini seçebilirsiniz.
Depolama ekleyin
Örneğinize, Amazon EBS birimleri gibi depolama birimleri ekleyebilirsiniz; bunlar sabit disk gibi davranır. Ayrıca, kolay tanımlama ve yönetim için örneğinize etiketler ekleyebilirsiniz. Bu, bilgisayarınızın depolama alanını ayarlamak ve daha sonra kolay erişim için etiketlemek gibidir.
Gözden geçirin ve başlatın
Son olarak, her şeyin doğru kurulduğundan emin olmak için örneğinizin yapılandırmasını gözden geçirirsiniz. Ayarlardan memnunsanız örneğinizi başlatmak için Launch’a tıklarsınız. Bu, bilgisayarınızı açmadan önce kurulumunu iki kez kontrol etmeye benzer. Alternatif olarak, ayrıntılı bir yerel EC2 örneği kurulumu için Yeni Başlayanlar için AWS EC2 Eğitimi başlığını inceleyin.
Bir alternatif: kullanıcı verisi (user data) betikleri
Bir örnek başlatırken, ilk önyükleme sırasında çalışacak "user data" adlı bir betik sağlayabilirsiniz. Bu betik, yazılım kurabilir, güncellemeler uygulayabilir veya ayarları otomatik olarak yapılandırabilir; böylece her seferinde manuel kurulumdan kurtulursunuz.
EC2 örneklerini yapılandırma ve yönetme
Bir EC2 örneğini yapılandırmak, bilgisayarı görevlerinize tam uygun şekilde kurmaya benzer. Örneğinizi başlattıktan sonra şunlar gibi çeşitli yollarla özelleştirebilirsiniz:
EC2 otomatik ölçeklendirme ve yük dengeleme
EC2 Auto Scaling Grupları ve Elastic Load Balancing, talep dalgalansa bile uygulamalarınızın her zaman erişilebilir olmasını ve iyi performans göstermesini sağlamak için birlikte çalışır.
Auto Scaling grupları
AWS’de bir Auto Scaling grubu, metrikler (CPU kullanımı veya ağ trafiği gibi) tanımlı eşikleri aştığında yeni EC2 örnekleri başlatır ve talep düştüğünde bunları sonlandırır. Bu sayede kaynakları elle ayarlamak zorunda kalmadan her zaman doğru miktarda işlem gücüne sahip olursunuz.
Elastic load balancing (ELB)
ELB, gelen trafiği bir veya daha fazla erişilebilirlik bölgesindeki tüm sağlıklı EC2 örnekleri arasında otomatik olarak dağıtır. Bir sunucu kullanılamaz hale gelir veya aşırı yüklenirse ELB trafiği diğer sunuculara yönlendirir. Böylece tek bir örneğin aşırı yüklenmesini önleriz. Bu, uygulamanızın güvenilirliği için çok önemlidir. AWS becerilerinizi derinleştirmek için AWS Cloud Practitioner (CLF-C02) takip yolumuza göz atın.
EC2 Kullanmanın Özellikleri ve Faydaları
EC2, kullanıcılara çok sayıda özellik ve fayda sunan çok yönlü bir hizmettir. İşte bazıları:
Temel özellikler
Amazon EC2, iş yükünüzün ihtiyaçlarına uygun geniş ve derin bir örnek türü seçkisi sunar. Bu alt bölümde, EC2 örneklerinin başlıca özelliklerini anlatacağım.
Farklı iş yükleri için faydalar
Birçok startup, kurumsal şirket ve veri yoğun uygulama AWS EC2’dan yararlanabilir; bu da çalışmalarını önemli ölçüde etkileyebilir.
Yığın işleme görevleri ve yüksek enerji gerektiren işler çalıştırma
EC2’nun ölçeklenebilirliği ve esnekliği, onu yığın işleme görevleri için ideal bir seçim kılar. Günlükleri işleme, bilimsel simülasyonlar yürütme veya sadece medya dosyalarını işleme gibi büyük veri hacimlerini ve yüksek performans gereksinimlerini verimli şekilde ele alır.
Dağıtım
Hizmetlerin, web uygulamalarının, makine öğrenimi modellerinin ve benzerlerinin dağıtımı; ölçeklenebilirlik, güvenlik, maliyet etkinliği vb. birçok nedenle yerel bir sunucuda yapılması önerilmez. EC2 örneği, mümkün olan en düşük maliyetle ve en yüksek performansla kullanmanız için size en iyi kurulumu sağlar. Bu denge, ürünlerinizi etkili biçimde yönetmenize yardımcı olur.
Satın Alma Modelleri ve Maliyet Optimizasyonu
Aşırı harcama yapmadan EC2 örneklerinizden en iyi şekilde yararlanmak için farklı fiyatlandırma modellerini ve maliyet optimizasyonu stratejilerini anlamak önemlidir. Bu bölümde farklı fiyatlandırma seçeneklerini ve maliyetlerinizi nasıl optimize edeceğinizi açıklayacağım.
EC2 fiyatlandırma seçenekleri
Amazon EC2, farklı iş yükleri ve bütçelere uygun çeşitli fiyatlandırma modelleri sunar. Başlıca seçenekler şunlardır:
İsteğe bağlı (On-Demand) örnekler
On-Demand örnekleri, saatlik veya saniyelik işlem gücü kiralamak gibidir — araba satın almak yerine kısa bir yolculuk için taksi çağırmaya benzer. Peşin maliyet ve uzun vadeli taahhütlerden kaçınır, tıpkı elektrik faturası gibi yalnızca kullandığınız kadar ödersiniz. Öngörülemeyen iş yükleri (ani trafik artışları) veya yeni uygulamaları test etmek için idealdir.
Spot örnekler
Amazon EC2 Spot Örnekleri, kullanılmayan AWS kapasitesini, kesintisiz ve garantili erişim için sabit saatlik/saniyelik ücret alan On-Demand örneklere kıyasla %90’a varan daha düşük maliyetle sunar. On-Demand (istikrarlı, acil iş yükleri için ideal) sabit fiyatlıyken, Spot örnekleri dinamik bir açık artırma gibi çalışır; daha ucuzdur ancak kesintiye uğrayabilir ve talep arttığında AWS kaynakları geri alabilir.
Savings Plans
AWS Savings Plans, 1 veya 3 yıl boyunca saatlik sabit bir hesaplama gücü kullanımına taahhüt ederseniz, On-Demand fiyatlarına kıyasla %72’ye varan tasarruf sağlar. AWS üç tür sunar: Compute Savings Plans (EC2, Lambda ve Fargate için geçerli), EC2 Instance Savings Plans (EC2’ye özgü) ve SageMaker Savings Plans (ML iş yükleri için).
On-Demand kapasite rezervasyonları
On-Demand Capacity Reservations, belirli bir Erişilebilirlik Bölgesinde ihtiyaç duyduğunuz süre boyunca EC2 işlem kapasitesini rezerve etmenize olanak tanır; böylece kıtlık dönemlerinde bile erişim sağlanır. Bunu önceden garanti edilen bir otopark yeri ayırtmaya benzetebilirsiniz; standart On-Demand ücretleri ödersiniz ancak kaynakların kullanılamama riskinden kaçınırsınız.
Makine öğrenimi için Amazon EC2 kapasitesi
Amazon EC2 Capacity Blocks for ML, makine öğrenimi iş yüklerini çalıştırmak için GPU örneklerini (P5 veya P4d) belirli bir zaman dilimi için önceden ayırtmanıza ve yalnızca ayırdığınız işlem süresi için ödeme yapmanıza olanak tanır. Bunu kritik bir toplantı için konferans salonu ayırtmaya benzetebilirsiniz; seçtiğiniz tarihlerde ML görevleriniz (eğitim, prototipleme veya ölçekleme) için kullanılabilirliği sözleşmesiz olarak garanti edersiniz.
Adanmış ana makineler (Dedicated Hosts)
Amazon EC2 Dedicated Hosts, iş yükleriniz için fiziksel bir sunucuyu yalnızca size ayrılmış şekilde rezerve etmenize olanak tanır; AWS veri merkezinde "özel bir süit" gibi davranır. Tam donanımlı bir ofis alanı kiralamaya benzetebilirsiniz; donanım üzerinde kontrol sahibi olur ve mevcut lisansları (ör. Windows, SQL Server) yeniden kullanarak maliyetleri düşürürsünüz; AWS ise bakım ve altyapıyla ilgilenir. Saatlik On-Demand olarak veya Savings Plans ile satın alın.
EC2 faturalandırması nasıl işler
EC2 örneklerinin maliyetini hesaplamak üç kilit faktöre bağlıdır: örnek boyutu/türü, kullanım saatleri, ve coğrafi bölge. GPU gücü ve bellek gibi ağır kaynaklara sahip daha büyük örnekler saat başına daha pahalıdır. Ayrıca, maliyetler çalışma süresine (saniye, dakika veya saat) ve fiyatlandırma modeline (On-Demand, rezerve, spot) göre birikir ve fiyatlar yerel talep, altyapı maliyetleri ve vergiler nedeniyle AWS bölgelerine göre de değişir.
Maliyet optimizasyon stratejileri
Maliyetlerinizi optimize etmenin birçok yolu vardır, örneğin:
EC2 maliyetlerinizi optimize etmenize yardımcı olabilecek birkaç araç da vardır. AWS Cost Explorer harcama eğilimlerini izleyebilir ve optimizasyon fırsatlarını belirleyebilir. Trusted Advisor önerilerde bulunabilir ve kimi zaman faydalıdır.
EC2 En İyi Uygulamalar ve Güvenlik Hususları
Güvenli ve verimli bir EC2 dağıtımı için şu üç kilit alana odaklanın:
Performansı optimize edin
CPU, bellek ve ağ kullanımını izlemek ve sorunları erken yakalamak için Amazon CloudWatch kullanın. Gereksiz maliyetlerden kaçınmak için doğru örnek boyutunu seçin. Trafiğe göre kapasiteyi otomatik ayarlamak için Auto Scaling’i etkinleştirin.
Güvenliği güçlendirin
Security group’lar ve VPC’ler ile erişimi kontrol ederek örnekleri izole tutun. Kimlik doğrulama için parolalar yerine anahtar çiftleri kullanın. Otomatik yamalama ve düzenli güncellemelerle örnekleri güvenli tutun.
Güvenilir yedekler sağlayın
Tam örnek yedekleri için AMI’ler oluşturun ve depolama için EBS anlık görüntülerini kullanın. Yedeklemeleri AWS Backup ile otomatikleştirin ve ek koruma için birden fazla bölgede kopyaları saklayın.
Sonuç
Özetle, EC2 size neredeyse anında esnek, ölçeklenebilir ve uygun maliyetli çözümler oluşturma imkânı sunar. Diğer AWS hizmetleriyle kolayca entegre olur; dağıtımı ve yüksek enerjili hesaplamayı kolaylaştırır. Uygulamanızın gereksinimlerine mükemmel şekilde uyan esnek satın alma modelleri sağlar. En güzeli de bir tanesini ücretsiz oluşturabilirsiniz.
EC2’yi sağlam biçimde anlamak, daha gelişmiş bulut mimarilerine ve dağıtım stratejilerine giden yolda bir basamak olabilir. AWS hizmetleri hakkında daha fazla öğrenmeye, AWS Cloud Practitioner yetkinlik yolumuz ve AWS Cloud Technology and Services Concepts kursumuzla devam edin.