Bulut Bilişim Temelleri ve AWS (Cloud Computing and AWS)

Bulut Bilişim Temelleri ve AWS (Cloud Computing and AWS)

Bulut Bilişim (Cloud Computing), temel anlamda sunucu gibi donanım cihazlarını satın alma, kurulum yapma, soğutma, bakım gibi maliyetlerden ve operasyonel iş yüklerinden sizi kurtaran teknolojidir. Bulut Bilişim hizmetleri, bu işlemlerin hepsinin veya bir kısmının (seçtiğiniz modele bağlı olarak) sizin adınıza bulut sağlayıcısı (AWS, Azure, Google Cloud gibi) tarafından yönetilmesini sağlar.

Bulut Bilişim, yalnızca donanım değil, aynı zamanda yazılım altyapısı (işletim sistemi, analitik yazılımlar, geliştirme ortamı gibi) hizmetlerini de içerir. Bu yazılımların kurulum, bakım gibi maliyetlerinden kurtulmamızı ve kullandığın kadar öde (pay-as-you-go) modeli ile yalnızca kullandığımız kaynaklar için ödeme yapmamızı sağlar.

Not: Globalde araştırma yaparken zorluk yaşanmaması, Türkçe karşılığının tam olmaması ve anlaşılabilirliği negatif etkilememesi için gerektiği yerlerde Türkçe-İngilizce beraber kullanılacaktır. Bazı terimler bahsedilen nedenlerden ötürü direkt olarak İngilizce kullanılmıştır.

Peki bize ne gibi faydalar sağlar?
  • Zaman ve Maliyet Tasarrufu: Bulut Bilişim ile donanım satın alma ve ihale süreçleri, teslimat ve kurulum gibi uzun bekleme süreleri ortadan kalkar. Bu da işletmelere hem zaman hem de maliyet açısından büyük avantaj sağlar.

  • Altyapı Yönetiminin Kolaylaşması: Donanım bakımı, çalışanlar, soğutma ve lisanslama gibi karmaşık altyapı yönetim süreçleri ve maliyetleri bulut sağlayıcı tarafından yönetilir. Bu da işletmelerin operasyonel yükünü hafifletir.

  • Esnek ve Kolay Ölçeklenebilirlik: Bulut Bilişim ile ihtiyacınıza göre kaynakları kolayca artırabilir veya azaltabilirsiniz. Bu esneklik, değişen iş ihtiyaçlarına hızlı bir şekilde yanıt vermenizi sağlar.

  • Yüksek Erişilebilirlik ve Güvenlik: Bulut sağlayıcıları, verilerin yüksek erişilebilirlikle ve güvenlikle saklanmasını sağlar. Bu, veri kaybı riskini minimize eder ve iş sürekliliği sağlar.

  • Global Erişim: Bulut Bilişim hizmetleri dünya genelinde veri merkezlerine sahiptir, bu da işletmelerin küresel olarak hızlı ve güvenilir hizmet sunmasına olanak tanır.

Bulut Bilişim dağıtım (deployment) ve hizmet (service) modellerine göre sınıflandırılabilir:

  1. Deployment Modeline göre:

  • Private Cloud: Özel bulut, bilgi işlem hizmetlerinin tek bir kuruluşun kullanımı için özel bir BT ağı üzerinden sunulduğu modeldir. Bu modelde, bulut altyapısı genellikle dahili kaynaklar tarafından yönetilir ve dışarıdan erişim mümkün değildir. Özel bulutlar, genel bulutun self-servis, ölçeklenebilirlik ve esneklik gibi avantajlarına ek olarak daha fazla kontrol, güvenlik ve özelleştirme sunar. Şirketin güvenlik duvarları ve dahili barındırma ile desteklenen özel bulutlar, hassas verilerin daha güvenli bir ortamda tutulmasını sağlar. Ancak, özel bulutun dezavantajı, kuruluşun veri merkezlerinin tüm yönetim ve bakımından sorumlu olmasıdır; bu da yüksek maliyet ve kaynak gerektirebilir.

  • Public Cloud: Genel bulut, üçüncü taraf sağlayıcılar (AWS, Azure, Google Cloud vb.) tarafından internet üzerinden sunulan bilişim hizmetlerini ifade eder. Genel bulut hizmetleri genellikle herkesin erişimine açık olup, ya ücretsizdir ya da kullanıma dayalı olarak ücretlendirilir. Kullanıcılar, yalnızca kullandıkları CPU döngüleri, depolama alanı veya bant genişliği için ödeme yaparlar. Genel bulutlar, bulut sağlayıcısının altyapının yönetiminden sorumlu olması nedeniyle işletmelerin şirket içi altyapı maliyetlerini ve bakım yükünü azaltmasına yardımcı olabilir. Ayrıca, dinamik olarak ölçeklenebilen RAM ve esnek bant genişliği sunarak işletmelerin ihtiyaçlarına göre depolama ve işlem kaynaklarını ayarlamalarına olanak tanır.

  • Hybrid Cloud: Hibrit bulut, genel ve özel bulut modellerinin bir kombinasyonudur. Bu model, bir kuruluşun iş yüklerini ve verilerini genel ve özel bulutlar arasında dağıtmasına olanak tanır, bu da maliyet etkinliği ve esneklik sağlar. Hibrit bulutlar, uzun süreli kullanılmayacak kaynakları satın almak ve bunların bakımını yapmak yerine sadece gerektiğinde kullanılan kaynaklar için ödeme yapma avantajı sunar. Bu, veri güvenliği ve kontrolünü korurken genel bulutun maliyet ve ölçeklenebilirlik avantajlarından yararlanmanızı sağlar.

  • Multi Cloud: Çoklu bulut modeli, birden fazla bulut hizmet sağlayıcısını kullanmayı ifade eder. Bu modelde, bir kuruluş farklı hizmetler veya iş yükleri için birden fazla bulut sağlayıcısından hizmet alabilir. Örneğin, bir şirket IaaS (Infrastructure as a Service) için bir sağlayıcıyı, PaaS (Platform as a Service) için başka bir sağlayıcıyı ve SaaS (Software as a Service) için de farklı bir sağlayıcıyı kullanabilir. Bu strateji, tek bir bulut sağlayıcısına olan bağımlılığı ortadan kaldırmayı ve bu sayede satıcı bağımlılığını azaltmayı amaçlar. Örneğin, Türkiye’deki bir şirket, X sağlayıcısının Türkiye’ye yakın bir region’undaki veri merkezinden düşük gecikme süresi için hizmet alırken, aynı zamanda daha güvenli bulduğu başka bir sağlayıcıda kritik hizmetlerini barındırabilir. Bu şekilde, çoklu bulut stratejisi, daha fazla esneklik, maliyet avantajı ve sağlayıcılar arası rekabetten doğan indirim fırsatları sunar. Ayrıca, sağlayıcı riskini azaltır ve memnun kalınmadığı durumda başka bir sağlayıcıya geçişi kolaylaştırır. Hibrit bulut, çoklu bulut modelinin bir özelleştirilmiş hali olarak da görülebilir. Hibrit bulut, genellikle genel ve özel bulutların bir arada kullanılmasıyla tanımlanırken, çoklu bulut birden fazla bulut sağlayıcısının kullanımını içerir. Çoklu bulut modeli, özellikle veri ve hizmet çeşitliliği ihtiyacı olan şirketler için uygun olabilir. Her iki model de farklı iş ihtiyaçlarına uyum sağlama esnekliği sunar, ancak çoklu bulut daha fazla sağlayıcıya bağımlılığın azaltılması üzerine odaklanır.

  • Community Cloud: Topluluk bulutu, belirli bir grup kullanıcı (örneğin, aynı sektörde faaliyet gösteren veya benzer yasal zorunluluklara ve güvenlik gereksinimlerine sahip birkaç şirket) için tasarlanmış ve paylaşılan bir bulut altyapısıdır. Genellikle aynı güvenlik, uyumluluk ve performans gereksinimlerine sahip kuruluşlar tarafından kullanılır. Topluluk bulutu, maliyetleri paylaşırken güvenlik ve uyumluluk gibi özel gereksinimlere sahip kullanıcılar için uygun bir çözümdür. Ancak, genellikle daha sınırlı kaynaklar ve ölçeklenebilirlik sunar.

Örneğin, sağlık veya finans sektörü community cloud modeline iyi bir örnek olacaktır. Farklı hastaneler ve sağlık kuruluşları, hasta verilerini güvenli şekilde iletebilmek, analiz etmek ve yasal düzenlemelere uyumlanabilmek için bu modeli kullanabilir. Aslında bu modeli de private cloud gibi düşünebiliriz aradaki temel fark maliyetlerin paylaşılıyor olması ve kurum bazındaki ihtiyaçlardan ziyade sektör bazındaki ihtiyaçlara göre özelleştirilmiş olması diyebiliriz.

Bulut modellerinin seçiminde güvenlik ve uyumluluk gereksinimleri önemli bir rol oynar. Özellikle finans ve sağlık gibi yüksek düzenlemelere tabi sektörlerde, özel ve topluluk bulutları daha fazla tercih edilebilir.

  1. Servis Modeline göre:

  • IaaS (Infrastructure as a Service / Hizmet Olarak Altyapı): IaaS, bulut üzerinden sağlanan BT altyapı hizmetleri sunarak, organizasyonların fiziksel donanım satın alma ve yönetme ihtiyacını ortadan kaldırır. Sanallaştırılmış instancelar oluşturarak fiziksel kaynakları birçok kullanıcı arasında paylaşır ve maliyetleri düşürürken, dinamik olarak ayarlanabilen kaynaklarla performansı optimize eder. Kullanıcıların personel yardımı olmadan kaynakları yönetmesine olanak tanır ve yedekli, coğrafi olarak dağıtılmış veri merkezleri ile kesintisiz hizmet sunar. Güvenlik açısından veri şifreleme ve erişim kontrolleri sağlar, ayrıca sanal makinelerin özelleştirilmesine imkan tanıyarak esnek ve maliyet etkin bir çözüm sunar.

  • PaaS (Platform as a Service / Hizmet Olarak Platform): Geliştiricilere yazılım geliştirme için gerekli tüm altyapı ve araçları sağlayan bir bulut hizmetidir. Geliştiriciler, sunucu yönetimi, veritabanı kurulumları veya ağ yapılandırmalarıyla uğraşmadan doğrudan uygulamalarını yazabilir, test edebilir ve dağıtabilirler. Bu hizmet sayesinde, ekipler aynı ortamda sorunsuzca birlikte çalışabilir ve projelerini hızla geliştirebilirler.

  • SaaS (Software as a Service / Hizmet Olarak Yazılım): SaaS, bulut tabanlı uygulamalara abonelik veya lisanslama yoluyla erişim sağlayan bir hizmet modelidir. Kullanıcılar altyapıyı yönetme zorunluluğu olmadan bu uygulamaları kullanabilirler. SaaS uygulamaları, finans, muhasebe, iletişim ve müşteri yönetimi gibi birçok kurumsal süreçte kullanılır. SaaS, düşük maliyet ve geniş erişim imkanı sunar. Örneğin, Gmail, arka plan süreçlerinin Google tarafından yönetildiği ve kullanıcıların bulut üzerinden e-posta gönderip medya paylaşabildiği bir SaaS uygulamasıdır.

Şimdi geçmişten günümüze doğru bu modellere bir göz atalım ve örneklerle iyice anlayalım.

Not: Yazının sonlarına doğru daha detaylı bahsedeceğim ancak burada da söylemiş olayım tarihçe şeklinde anlatılıyor olmasından “serverless daha yeni teknoloji olduğundan daha iyidir” veya “data center eski bir modeldir kötüdür” sonucunu çıkaramayız, her model belirli kullanım senaryolarında avantajlar sunar ve en iyi çözüm, ihtiyaçlara göre değişir.

İlk olarak, Data Center modelinden bahsedelim. Bu modeli on-premises veya geleneksel kiralama olarak değerlendirebiliriz. On-premises’da tüm donanımın satın alınması ve süreçlerinin (ihale, planlama, lojistik vs.), internet, elektrik, iklimlendirme gibi temel ihtiyaçların karşılanması gereklidir. Bu işlemler, en hızlı şekilde bile ciddi bir zaman maliyeti ortaya çıkarabilir. Geleneksel kiralamada (dedicated hosting) ise şirketler, donanımı satın almak yerine bir veri merkezinden sunucu kiralayarak bu süreci kısaltabilirler. Veri merkezi, barındırma, soğutma ve güvenlik gibi altyapı hizmetlerini sağlar; ancak kullanıcılar hala sunucu yönetimi, yazılım güncellemeleri ve güvenlik gibi teknik sorumlulukları üstlenmek zorundadır.

Bu noktada IaaS (Infrastructure as a Service) devreye girer ve geleneksel kiralama modelindeki eksiklikleri giderir. IaaS ile kullanıcılar fiziksel donanım yerine, bulut üzerinde dinamik olarak yönetilebilen sanal makineler, depolama ve ağ altyapısını kullanır. Geleneksel barındırma hizmetlerinden farklı olarak, IaaS ile müşteriler ihtiyaçlarına göre altyapıyı dinamik olarak ölçeklendirebilir yani uzun hazırlık süreleri olmadan bilgi işlem kapasitesini artırabilir veya azaltabiliriz ve yalnızca kullandığımız kaynaklara kullandığımız kadar ödeme yaparız. Böylece donanım temini, kurulum ve yönetim gibi zahmetli işlerle uğraşmaya gerek kalmaz.

Üçüncü modelimiz olan PaaS (Platform as a Service), IaaS’in sunduğu altyapı yönetimi kolaylığını bir adım daha ileri taşır. PaaS ile altyapının yanı sıra işletim sistemleri, veritabanları ve yazılım geliştirme araçları gibi platform hizmetleri de bulut sağlayıcısı tarafından yönetilir. Bu sayede geliştiriciler, donanım ve yazılım temini gibi teknik detaylarla uğraşmadan, doğrudan uygulama geliştirme ve dağıtımına odaklanabilirler. Örneğin, PaaS ile bir geliştirici, sunucu yönetmeden bir uygulamayı çalıştırabilir ve MySQL gibi veritabanı hizmetlerini kullanabilir. AWS Elastic Beanstalk, Google App Engine, Heroku gibi platformlar, altyapı yönetimini üstlenirken, geliştiricilere sadece uygulama geliştirme odaklı bir deneyim sunar.

Dördüncü modelimiz olan Container yapıları, PaaS’in sağladığı kolaylıkları daha hafif ve izole bir altyapı ile destekler. Containerlar, aynı sunucu üzerinde bağımsız olarak çalışan hafif uygulama ortamlarıdır. Ancak containerların çalışabilmesi için yine de bir sunucuya ihtiyaç duyulur. Burada Amazon’un ECS (Elastic Container Service) ve EKS (Elastic Kubernetes Service) gibi çözümleri devreye girer. Bu hizmetler, containerları yönetirken sunucuların ayakta tutulmasını ve altyapının sorunsuz çalışmasını sağlar, böylece kullanıcıların altyapı yönetimiyle ilgilenmesine gerek kalmaz.

Son olarak, Serverless mimarisi, özellikle AWS Lambda gibi çözümlerle bir adım daha ileri gider ve tüm altyapı sorumluluğunu ortadan kaldırır. Lambda, yalnızca kodun yüklenmesini ve çalıştırılmasını gerektirir. Sunucuların yönetimi, ölçeklendirilmesi ve bakımı tamamen bulut sağlayıcısına bırakılır. Bu model, özellikle kısa süreli veya aralıklı görevlerde hem maliyet hem de yönetim açısından büyük avantaj sağlar. Serverless, böylece uygulama geliştiricilerin yalnızca işlevselliğe odaklanmasını sağlar ve altyapı yönetimi sorumluluğunu tamamen ortadan kaldırır.

Genel anlamıyla artık bulut bilişime hakim olduk diyebiliriz. Peki, neden AWS?

Amazon Web Services (AWS), bulut sağlayıcısı olarak piyasaya giren ilk şirkettir. Bu nedenle, geniş bir kullanıcı tabanına sahip olup, piyasaya girdiğinden beri lider konumdadır. 2024Q1 Synergy Research Group verilerine göre, AWS’nin %31 pazar payıyla lider konumdadır. Onu %25 ile Microsoft Azure, %11 ile Google Cloud, %4 ile Alibaba Cloud, %3 ile Salesforce, %2 ile IBM, %2 ile Oracle ve %2 ile Tencent takip etmektedir.

Önce küçük bir terminoloji ile başlayalım.

  • Instance: AWS’de bir instance, sanal bir sunucudur. Amazon EC2 (Elastic Compute Cloud) hizmetiyle oluşturulabilir ve fiziksel bir sunucunun sanallaştırılmış bir versiyonudur. Instance’lar çeşitli boyutlarda ve türlerde olabilir ve her biri farklı miktarda işlem gücü, bellek ve depolama sunar.

  • Node: AWS’de “node” terimi genellikle bir cluster içindeki tek bir makineyi ifade eder. Örneğin, Amazon EKS (Elastic Kubernetes Service) kullanıyorsanız, her bir node, bir container çalıştıran bir instance’dır. Node’lar, dağıtılmış sistemlerde işlem yükünü paylaştırarak uygulamaların ölçeklenmesini sağlar.

  • Cluster: Cluster, birlikte çalışan ve bir görev veya hizmeti destekleyen bir grup node’dur. Örneğin, bir Kubernetes cluster, birden fazla node içerir ve bu node’lar container’ları çalıştırmak için birlikte çalışır. Yüksek kullanılabilirlik ve ölçeklenebilirlik sağlamak için veri işleme, veri analitiği veya container yönetimi gibi amaçlarla cluster’lar kullanılır.

  • Region: AWS region, dünya genelinde dağıtılmış bir veri merkezi grubudur. Her bir region, coğrafi bir bölgeyi temsil eder ve kendi veri merkezlerine sahiptir. Region’lar, veri gecikmesini azaltmak ve uyumluluk gereksinimlerini karşılamak için kullanılır. AWS hizmetlerini kullanırken, hizmetin barındırılacağı region’u seçmeniz gerekir. Örneğin, ABD’deki kullanıcılar için “us-east-1” (N. Virginia) region’u yaygın bir tercihtir.

  • Availability Zone (AZ): Availability Zone, bir AWS region içinde bulunan ve birbirlerinden fiziksel olarak ayrılmış, bağımsız veri merkezleri grubudur. Yüksek erişilebilirlik ve yedekleme sağlamak için kullanılır. Örneğin, bir uygulamanın yüksek erişilebilirliğini sağlamak için kaynaklarınızı birden fazla Availability Zone’da dağıtabilirsiniz.

  • VPC (Virtual Private Cloud): VPC, AWS üzerinde tanımlanan sanal bir özel ağdır. Kullanıcılar, kendi IP adres aralığını, subnet’lerini, route table’larını ve ağ geçitlerini (gateways) tanımlayarak kendi VPC’lerini oluşturabilir ve yönetebilir. VPC’ler, AWS’deki kaynakların mantıksal olarak izole edilmesini ve güvenli bir ağ ortamında çalıştırılmasını sağlar.

  • Subnet: Subnet, bir VPC (Virtual Private Cloud) içinde bir IP adresi aralığını temsil eder. Subnet’ler, bir VPC’yi daha küçük IP ağına böler ve kaynakların mantıksal olarak ayrılmasını sağlar ve güvenlik, ağ trafiği yönetimi için kullanılır. Public ve private subnet’ler olarak ikiye ayrılırlar. Public subnet’ler genellikle internetten erişilebilir, private subnet’ler ise yalnızca iç ağdan erişilebilir.

  • Security Group: Security group, bir instance için gelen ve giden trafiği kontrol eden bir güvenlik duvarı rolü görür. Belirli portları ve IP adres aralıklarını içeren izin ve engelleme kurallarıyla güvenlik grupları yapılandırılabilir. Örneğin, bir web sunucusu instance’ının yalnızca HTTP ve HTTPS trafiğine izin vermek için bir security group oluşturabilirsiniz.

Şimdi gelelim AWS’in bize sağladığı temel ürünlere, AWS’de neredeyse 200'ün üzerinde aklınıza gelebilecek her soruna çözüm niteliğinde ürün bulunmaktadır. Hepsini tek tek açıklamam mümkün olmadığından görece en önemlilerinin detaylarına ineceğiz.

Tüm ürünlere ve detaylarına AWS Whitepaper - Overview of Amazon Web Services adındaki dökümana buradan ulaşabilirsiniz. Ücretsiz deneme hesabı ile ilgili detaylara buradan bakabilir ve hesap oluşturup keşfedebilirsiniz.

  • EC2 (Elastic Compute Cloud)

AWS’in bel kemiği olarak adlandırılan EC2 (Elastic Compute Cloud) makineleri, bulut bilişim dünyasında gerçekten devrim yarattı. Daha önce de söylediğim gibi önceden bir sunucu almak için ihale süreçleri, kablolama, iklimlendirme gibi karmaşık işlemler yapmanız gerekiyordu. Bu işler zaman alıcı ve maliyetliydi. Ama EC2 ile artık sadece dakikalar içinde ihtiyacınız olan sunucuya erişim sağlayabilirsiniz.

Fark ettiyseniz Bulut Bilişim, IaaS ve EC2 kavramlarını çok benzer şekilde tanımladık. Bulut Bilişim AWS’den önce HP, IBM gibi şirketler tarafından da üzerinde çalışılan bir konuydu. Hatta 1999'da Salesforce, SaaS (Software as a Service) modelini sunarak ilk bulut tabanlı CRM çözümünü sağladı. Ancak bu hizmetler, AWS’nin sunduğu esneklik ve geniş çaplı erişim gibi özellikler açısından çok daha sınırlıydı. Yani AWS’nin 2006'da piyasaya sürdüğü EC2 hizmeti, IaaS modelini ilk defa geniş çapta kullanılabilir hale getirerek, bulut bilişimde öncü bir rol oynadı diyebiliriz.

EC2’nin belki de en güzel özelliği, tamamen ölçeklenebilir olması. Trafik yoğunluğunuz arttığında veya azaldığında, sunucularınızı saniyeler içinde büyütebilir ya da küçültebilirsiniz. Bu, sizin yalnızca gerçekten kullandığınız kaynaklar için ödeme yapmanızı sağlar ve gereksiz maliyetlerden kaçınmanıza yardımcı olur.

AWS EC2, çeşitli ihtiyaçlarınıza uygun farklı instance tipleri sunar. Örneğin, hesaplama yoğun iş yükleri için yüksek performanslı hesaplama makineleri ya da büyük veri ve analizler için bellek optimizasyonlu makineler bulabilirsiniz. Bu çeşitlilik, iş yüklerinize en uygun performansı ve maliyet verimliliğini sağlamanıza olanak tanır. (Bu kısım çok detaylı olduğu için belki başka bir yazıda bahsetme fırsatım olur; EC2 instance tipleri ile ilgili sade güzel bir anlatım için şu yazıyı okuyabilirsiniz: https://tutorialsdojo.com/amazon-elastic-compute-cloud-amazon-ec2/ )

AWS, çeşitli fiyatlandırma modelleriyle maliyetlerinizi kontrol altında tutmanıza yardımcı olur. On-Demand Instances (Talebe Bağlı Makineler) ile sadece kullandığınız süre için ödeme yaparsınız. Reserved Instances (Rezerve Makineler) ile uzun süreli kullanımlar için büyük indirimler elde edebilirsiniz. Ayrıca, Spot Instances (Spot Makineler) sayesinde AWS’nin kullanılmayan kapasitesini çok uygun fiyatlarla kullanabilirsiniz.

EC2, yüksek kullanılabilirlik ve güvenilirlik sağlar. Availability Zone (Erişilebilirlik Bölgeleri) ve Region (Bölge) seçenekleri sayesinde uygulamalarınızı yedekleyebilir ve olası bir felaket durumunda hızla geri yükleyebilirsiniz. Bu, işinizin sürekliliği için kritik bir özelliktir.

AWS, EC2 instancelarını yönetmek için birçok otomasyon ve yönetim aracı sunar. Auto Scaling özelliği ile kaynaklarınızı otomatik olarak artırabilir ya da azaltabilirsiniz. Elastic Load Balancing (ELB) ile trafiğinizi birden fazla instance arasında paylaştırabilirsiniz. Ayrıca, AWS Systems Manager gibi araçlar sayesinde sunucularınızı kolayca yönetebilir ve bakımını yapabilirsiniz.

AWS’de kullanmadığınız EC2 instancelarını geri gönderebilir ve böylece maliyetlerinizi düşürebilirsiniz. Kendi veri merkezinizde satın alınan sunucular kullanılmadığı zaman bile size maliyet çıkarır, ancak AWS’de bu kaynakları hızlıca geri verebilir ve gerektiğinde tekrar kullanabilirsiniz. Bu büyük bir esneklik sağlar.

AWS EC2, güçlü bir güvenlik yapısı sunar. AWS Identity and Access Management (IAM) ile kimlik doğrulama ve erişim kontrolleri sağlayabilir, sanal özel bulut (VPC) kullanarak ağ güvenliğinizi artırabilir ve verilerinizi şifreleyerek koruyabilirsiniz. Ayrıca, AWS’nin birçok endüstri standardına uygunluğu, düzenlemelere uyum sağlamanıza yardımcı olur.

  • AWS Lambda

AWS Lambda, fonksiyonel programlamadaki lambda fonksiyonlarından ilham alır. Bu fonksiyonlar genellikle kısa, öz ve tek satırda tanımlanan ve belirli bir amaç için kullanılan kod parçacıklarıdır. AWS Lambda da benzer şekilde olay tabanlı ve kısa ömürlü hizmetler sunar. Küçük, bağımsız kod parçacıkları çalıştırmak için idealdir.

Lambda fonksiyonları, belirli bir olay gerçekleştiğinde tetiklenir, örneğin, S3'e dosya yüklendiğinde veya bir API çağrısı yapıldığında. Lambda fonksiyonları stateless yani durumsuzdur; her çalışma, tamamen bağımsız bir işlem olarak değerlendirilir. Her seferinde sıfırdan başlar. Fonksiyonlar, belirlenen işi yapıp tamamladıktan sonra kapatılır ve yalnızca gerektiğinde çalışması sağlanır, bu da ölçeklenebilirliğini ve esnekliğini artırır. AWS Lambda, istek sayısı arttığında otomatik olarak ölçeklenir. Örneğin, ilgili servis saniyede 1 milyon kullanıcıya hizmet verecekse AWS Lambda milyonlarca fonksiyon yaratabilir ve Load Balancer gibi hizmetlerin yönetim ve bakım ihtiyacını ortadan kaldırır. Trafik arttığında, RAM’i 8 GB’dan 12 GB’a çekebilir veya daha fazla instance ekleyebilir. Lambda, altyapı yönetimi ve bakımı gerektirmediği için, sadece kodunuzu yazmakla ilgilenirsiniz.

  • EBS: Amazon Elastic Block Store (Amazon EBS)

EC2, buluttaki sanal bir sunucudur, EBS ise buluttaki sanal bir disktir. Amazon EBS, depolama birimleri oluşturmanıza ve bunları EC2 instancelarına eklemenize olanak tanır. Depolama birimi oluşturulduktan sonra, bu birimlerin üstünde bir dosya sistemi oluşturabilir ve ardından bir veritabanı çalıştırabilir, dosyaları, uygulamaları depolayabilir veya bunları başka bir şekilde blok aygıtı olarak kullanabilirsiniz.

Amazon EBS birimleri, belirli bir kullanılabilirlik bölgesine yerleştirilir ve tek bir bileşenin arızalanmasından korunmak için otomatik olarak çoğaltılır. EBS birimi tek bir diskte bulunmaz; kullanılabilirlik bölgesi boyunca yayılır ve yüksek erişilebilirlik sağlar. EBS birimi, bir EC2 örneğine bağlı bir disktir ve Windows veya Linux’un kurulu olduğu EC2 örneğine bağlı EBS birimi, bu örneğin kök aygıtı olarak bilinir. Ayrıca, EBS birimleri anlık görüntü (snapshot) alınarak veri yedekleme ve kurtarma işlemleri için kullanılabilir.

  • S3 Bucket

Amazon S3, EC2 gibi AWS bulut bilişiminin temel servislerinden biridir. S3 açılımı Simple Storage Service yani Basit Depolama Servisi olarak çevrilebilir. S3, nesne tabanlı bir depolama servisidir ve görsel, Word dosyası, PDF gibi dosyaları depolamak için kullanılır. Her nesne 0 byte’tan 5TB’a kadar büyüklükte olabilir ve dosyaları depolamak için herhangi bir maksimum sınır bulunmadığı için Amazon S3'ye istediğiniz kadar dosya yükleyebilirsiniz.

Not: Dökümana göre tek bir istek ile yüklenebilecek dosya boyutu maksimum 5 GB’dır ve AWS bu konuda 100MB’tan daha büyük nesneler için büyük dosyaları parçalara ayırarak yükleme yapmamızı sağlayan Multipart Upload özelliğini kullanmamızı tavsiye ediyor.

Bucket oluşturma: S3’teki bucket’lar, veri tutan ve depolayan container’lar olarak düşünülebilir. Her bucket, unique bir DNS adresi oluşturabilmek için unique bir isme sahip olmalıdır. Ayrıca, bucket’lar arasında veri paylaşımı ve erişim izinleri gibi yönetim işlemleri S3 üzerinde yapılabilir.

Örneğin,

https://<bucket-name>.s3.<region>.amazonaws.com/<object-key>

<bucket-name>: S3 bucket’ınızın adı.

<region>: Bucket’ın bulunduğu AWS bölgesi (örneğin, us-west-2).

<object-key>: Bucket içindeki dosyanın yolu ve adı.

[https://kayasBucket.s3.us-east-1.amazonaws.com/images/vesikalik.jpeg]

  • RDS (Relational Database Services)

Amazon Relational Database Service (Amazon RDS), bulutta ilişkisel bir veritabanı kurmayı, işletmeyi ve ölçeklendirmeyi kolaylaştıran bir web hizmetidir. Endüstri standardı ilişkisel veritabanları için maliyet etkin ve yeniden boyutlandırılabilir kapasiteler sağlar ve yaygın veritabanı yönetim görevlerini otomatik olarak gerçekleştirir.

Amazon RDS, MySQL, Oracle, SQL Server ve PostgreSQL gibi ilişkisel veritabanı yönetim sistemlerine hizmet sunarken, Aurora adı verilen bir veritabanı motoru da sağlar. Amazon Aurora, Amazon RDS’nin bir parçası olan ve MySQL ile PostgreSQL ile uyumlu, bulut için tasarlanmış tamamen yönetilen bir ilişkisel veritabanı motorudur. Bu sistem, yedekleme, güncelleme, izleme, otomatik hata tespiti ve kurtarma işlemlerini otomatik olarak gerçekleştirir. Aurora’nın bu optimizasyon ve uyumluluk avantajları sayesinde, standart MySQL’e göre 5 kat, standart PostgreSQL’e göre ise 3 kat daha hızlı performans sağlar.

Aurora haricinde, OracleDB gibi geleneksel bir RDBMS modelini düşünmek mümkündür. Örneğin, Oracle için iki ödeme seçeneği mevcuttur: BYOL (Bring Your Own License — Kendi Lisansını Getir) seçeneğiyle saatlik 0.025$’dan hizmet alınabilirken, lisans dahil modelde fiyatlar 0.04$’dan başlamaktadır.

  • Amazon ECS (Elastic Container Service)

Amazon ECS, Docker konteynerlarını kolayca çalıştırmak ve yönetmek için AWS tarafından sunulan bir hizmettir. Konteyner tabanlı uygulamaları dağıtmak, yönetmek ve iş yükünüze göre otomatik olarak ölçeklendirmek için kullanılır. Bu da, daha fazla kaynak gerektiğinde yeni konteynırlar başlatmayı veya ihtiyaç olmadığında gereksiz kaynakları kapatmayı sağlar.

  • Amazon EKS (Elastic Kubernetes Service)

Amazon EKS, Kubernetes açık kaynak konteyner orkestrasyon sistemini AWS bulutunda çalıştırmak için AWS tarafından yönetilen bir hizmettir. EKS, Kubernetes clusterları kurulumu, yönetimi ve ölçeklenmesini kolaylaştırır. Otomatik ölçekleme ve güncellemeler sağlar. Kubernetes cluster boyutunu ve kapasitesini otomatik olarak ayarlayabilir ve güncellemeleri kesintisiz bir şekilde uygulayabilir.

Şimdi de AWS çözümleriyle örnek bir sistem yaparak öğrendiklerimizi gerçek hayat senaryosuyla destekleyelim.

  • VPC Oluşturma: İlk olarak, bulut dünyasında kendi özel ağımızı oluşturalım; buna VPC (Virtual Private Cloud) diyoruz. Bu ağ, tüm uygulamanızın güvenli ve düzenli bir şekilde çalışacağı alan olacak.
  • Güvenlik Ayarları: IAM (Identity and Access Management) ile ekibimizde kimlerin neye erişebileceğini belirliyoruz. Bu, sisteminizin güvenliğini artırır ve sadece gerekli kişilerin gerekli şeylere erişmesini sağlar.
  • Uygulama Çalışma Ortamı Seçimi ve Makine Oluşturma: Uygulamanızın çalışacağı altyapıya göre EC2 ile sanal makineler oluşturabilir veya ECS ile uygulamamızın konteynerlerde çalışmasını sağlayabiliriz.
  • DNS Ayarları: Uygulamanızın internet üzerindeki adresini belirlemek için Route 53 kullanıyoruz. Burada, web sitenizin ismini (örneğin, www.mustafakayas.com) IP adresine bağlayarak kullanıcıların web sitemize erişmesini sağlıyoruz.
  • Veritabanı Seçimi: Uygulamamızın ürün bilgilerini ve müşteri verilerini saklamak için bir veritabanı seçmeliyiz. RDS (Relational Database Service) ile ilişkisel veritabanı kullanabilir ya da DynamoDB ile döküman bazlı NoSQL veritabanı seçebiliriz.
  • Ürün Resimleri Depolama: Ürün resimlerini ve diğer medya dosyalarını saklamak için S3 (Simple Storage Service) kullanıyoruz.
  • İçerik Dağıtımı: Dünya genelindeki müşterilerimize hızlı bir şekilde erişim sağlamak için CloudFront kullanıyoruz. Bu hizmet, ürün resimlerimizi ve diğer statik dosyalarımızı farklı yerlerdeki sunuculara dağıtarak hızlı bir yükleme deneyimi sunuyor.
  • Önbellekleme: Web sitemizin performansını artırmak için ElastiCache kullanıyoruz. Örneğin, popüler ürünlerin listeleri gibi sıkça erişilen verileri Redis veya Memcached ile önbelleğe alarak kullanıcılarımıza hızlı yanıtlar sunuyoruz.
  • Mesaj Yönetimi: Diyelim ki, siparişlerimizi işleyen bir sistemimiz var ve her yeni sipariş geldiğinde farklı hizmetlerin devreye girmesi gerekiyor. (örneğin, envanter güncellenmesi, fatura oluşturulması ve kargo için talimatların iletilmesi vs.) Amazon MQ, bu hizmetler arasında sorunsuz bir şekilde mesajlaşmayı ve iş akışının kesintisiz sürdürülmesini sağlar. Böylece, siparişler zamanında ve hatasız bir şekilde işleniyor.
  • E-posta Gönderimi: Kullanıcılara sipariş onayları, promosyonlar veya üyelik bilgileri göndermek için SES (Simple Email Service) kullanıyoruz. Bu hizmet, e-postalarınızı hızlı ve güvenilir bir şekilde gönderir.
  • Sunucusuz İşlevler: Belirli işlevleri sunucusuz olarak çalıştırmak için AWS Lambda kullanıyoruz. Örneğin, bir sipariş alındığında otomatik olarak bir e-posta gönderilmesi gerektiğinde Lambda devreye giriyor ve sunucu yönetimine gerek kalmıyor.
  • Konteyner Yönetimi: Eğer uygulamamız konteynırlarda çalışıyorsa, ECS (Elastic Container Service) kullanarak bu konteynırları yönetiyoruz. Bu, uygulamanızın ölçeklenmesini ve yönetilmesini kolaylaştırıyor.
  • Kubernetes Orkestrasyonu: Kubernetes kullanarak uygulamamızı yönetmek istiyorsak, EKS (Elastic Kubernetes Service) hizmetini kullanıyoruz. EKS, Kubernetes cluster’ımızı oluşturur ve yönetir, böylece konteynırlarımızı verimli bir şekilde çalıştırabiliriz.
  • Kalıcı Depolama: Uygulamamızın verilerini kalıcı olarak saklamak için EBS (Elastic Block Store) kullanıyoruz. Bu, EC2 instance’larımıza yüksek performanslı ve güvenilir blok depolama sağlar.
  • Verilerin Akışı ve İşlenmesi: Uygulamamızda büyük miktarda veri akışı yönetmek istiyorsak, Amazon MSK (Managed Streaming for Apache Kafka) kullanabiliriz. MSK, Apache Kafka’nın yönetilen bir hizmetidir ve verilerimizi yüksek verimlilikle işlemek ve gerçek zamanlı veri akışlarını yönetmek için idealdir. Örneğin, siparişlerimizi, kullanıcı etkileşimlerimizi ve stok güncellemelerimizi hızlı ve güvenilir bir şekilde işleyebiliriz.
  • Altyapı Yönetimi: Tüm AWS kaynaklarımızı ve altyapımızı yönetmek için CloudFormation kullanıyoruz. Bu hizmet, altyapımızı kodla tanımlamamızı ve yönetmemizi sağlar, böylece değişiklikleri kolayca uygulayabiliriz.
  • İzleme ve Uyarılar: Son olarak, CloudWatch ile sistemimizi izliyoruz. Bu hizmet, uygulamamızın performansını takip etmemizi, logları analiz etmemizi ve gerektiğinde uyarılar almamızı sağlar.
Peki her zaman koşulsuz şartsız buluta koşmalı mıyız?

Cloud computing gerçekten müthiş bir nimet değil mi? İlk bakışta bulut teknolojileri, sundukları esneklik ve başlangıç maliyetlerinin düşüklüğü ile cazip görünüyor. Ama her zaman bulut çözümlerine mi yönelmeliyiz? Tabii ki hayır! Şimdi neden her zaman yönelmemeliyiz konusuna bir bakalım.

Yaşatabileceği zorluklar,

  • İlk etapta bulut çözümleri oldukça ekonomik gibi gözükse de, kullanımı genişledikçe ve hizmetler büyüdükçe maliyetler hızla artabilir. Özellikle uzun vadeli ve yoğun kaynak gerektiren projelerde, bulut maliyetleri beklenmedik seviyelere çıkabilir.
  • Verilerinizi üçüncü bir tarafın sunucularında saklamak, güvenlik ve gizlilik açısından risk taşıyabilir. Hassas ya da regülasyonlara tabi verileri bulutta tutmak, bu verilere yetkisiz erişim veya veri ihlali riskini beraberinde getirebilir.
  • Bir bulut sağlayıcısına bağımlı kalmak, başka bir platforma geçişi zorlaştırabilir. Belirli bir bulut sağlayıcısının özel araçları ve hizmetleri kullanılmaya başlandığında, bu araçlardan vazgeçmek veya verileri başka bir platforma taşımak oldukça karmaşık ve maliyetli olabilir. “Vendor Lock-in” durumu yaşayabilir yani sağlayıcıya bağlı-kilitli kalabiliriz.
  • Bulut hizmetlerine erişim tamamen internet bağlantısıyla ilişkilidir. İnternet bağlantısında bir sorun yaşandığında veya hız düşüşü olduğunda, bulut tabanlı hizmetlere erişim ve performans ciddi şekilde etkilenebilir. Özellikle hızlı yanıt sürelerine ihtiyaç duyulan uygulamalar için bu bir sorun olabilir.
  • Bulut sağlayıcılarının sunduğu altyapı genellikle paylaşımlı ve standarttır. Bu, belirli donanım veya yazılım gereksinimleri olan uygulamalar için özelleştirme imkanlarını kısıtlayabilir. On-premises çözümler ise daha fazla kontrol ve özelleştirme olanağı sunar.

Hangi durumlarda bulut teknolojileri yerine on-premises tercih edilebilir?

  • Belirli uygulamalar veya iş yükleri, özel donanım, yazılım veya güvenlik gereksinimleri isteyebilir. Bu gibi durumlarda on-premises çözümler, size daha fazla kontrol ve özelleştirme imkanı sunar.
  • Hassas verilerin bulutta saklanması, güvenlik ve gizlilik risklerini artırabilir. Özellikle finans, sağlık veya kamuya ait hassas bilgiler için on-premises çözümler daha güvenli bir alternatif olabilir.
  • Yoğun hesaplama gücü veya yüksek performans gerektiren uygulamalar için on-premises çözümler uzun süreli ve yüksek performanslı hesaplama gerektiren durumlarda maliyet avantajı sağlayabilir.
  • Gerçek zamanlı veri işleme, finansal işlemler veya düşük gecikme süresi gerektiren diğer uygulamalar için on-premises çözümler daha uygun olabilir, çünkü veriler internet üzerinden taşınmadan, yerel ağda kalır ve bu da gecikmeyi minimuma indirir.
  • Bazı sektörlerde, verilerin belirli bir coğrafi bölgede saklanması veya belirli güvenlik standartlarına uyulması gerekebilir. On-premises çözümler, bu tür düzenlemelere uyum sağlamada daha esnek olabilir.

Özetle, bulut bilişim sunduğu esneklik ve maliyet avantajları ile birçok durumda cazip bir seçenek olsa da bu on-premises çözümleri demode veya kötü yapmaz. Güvenlik, performans, veri gizliliği ve özelleştirme gereksinimlerine göre on-premises çözümler de tercih edilebilir. Bu yüzden, her iki seçeneğin de artılarını ve eksilerini dikkate alarak, ihtiyaçlarımıza en uygun çözümü seçmeliyiz.

Kaynakça:

https://docs.aws.amazon.com/

https://www.javatpoint.com/

https://www.spiceworks.com/tech/cloud/articles/what-is-cloud-computing/

https://tutorialsdojo.com/aws-cheat-sheets/

Related Posts

Mobil cihazlar ile arama nasıl gerçekleşir?

Mobil cihazlar ile arama nasıl gerçekleşir?

Ailenizi veya bir arkadaşınızı, ararken bu işlem nasıl oluyor diye mutlaka merak etmişsinizdir. Bu yazıda sizlere basitçe nasıl arama yaptığınızı anlatacağım.Öncelikle birini aradığınızda analog ol

read more
Hücresel Haberleşmede Temel Kavramlar

Hücresel Haberleşmede Temel Kavramlar

Konuyla ilgili kavramları öğrenmeden konuyu öğrenebilmek ne yazık ki mümkün olmuyor. Öğrenildiği sanılsa bile unutulup gidebiliyor bu yüzden bu yazıda yine çok fazla formüle ve hesaplamaya girmeden

read more
Kablosuz (Mobil) Haberleşmeye Giriş-Jenerasyonlar

Kablosuz (Mobil) Haberleşmeye Giriş-Jenerasyonlar

Bu yazıda kablosuz haberleşmede duyabileceğiniz bazı şeyleri sizler için özetleyeceğim İngilizce olarak anlatmak istiyordum ancak konuyla ilgili oldukça fazla İngilizce kaynak olması ve Türkçe kaynak

read more
Multiplexing ve Multiple Access

Multiplexing ve Multiple Access

Bir önceki yazıdan buraya geldiyseniz, orda bahsettiğim çok fazla terim vardı. Konuya hakim değilseniz anlaması pek kolay olmayan terimlerdi, ancak o yazıyı sadece konuya giriş için yazıldı. TDMA, FD

read more