AWS Nedir? Hangi Servis Ne İş Yapar? Yenir Mi?

Barış Demirezen
hesapkurdu-development
12 min readJul 8, 2021

Yazılım geliştirme serüvenin önümüzdeki bilgisayarlardan başlayıp Amerika, Almanya ve İrlanda gibi ülkelerde sonlandığı bir dönem içindeyiz. Artık ondan kaçış yok! Çok hızlı, çok güçlü, her soruya bir cevabı var ve her yerde. Evet doğru, bahsettiğimiz konu Amazon Web Services.

Merak etmeyin bu okuduğunuz diğer yazılar gibi değil. Sizlere “Bulut kullanın, çok güzel teknoloji.” demenin ötesine geçip, nerede ne kullanmanız gerektiğinin cevabını vereceğiz. Koca bilgisayarların içine girip böceklerin dışarı çıkarıldığı dönemlerden (yeni duyanlar için “bug” kavramı buradan geliyor, merak edenler bu yazıyı inceleyebilir), bugünlere nasıl gelmişiz diyeceğiz.

Tüm bu yazının sonunda da kavramların ve hizmetlerin daha iyi oturması için örnek bir AWS kullanımı ile ilgili akışı da sizlerle paylaşacağız. Bu sayede nerede ne kullanılması gerektiğiyle alakalı konular da daha somut bir görünüm kazanacaktır.

AWS Nedir?

AWS uzun ismi ile “Amazon Web Services” 2006 yılında kurulmuş bulut bilişim şirketidir. Dünya genelinde önemli noktalara sunucu çiftlikleri kurarak, kullanıcıların her sorununa bir çözüm üretmeye çalışmaktadır. Merak edenler için de 2020 yılında pazar payı olarak rakipleri Microsoft, Google ve IBM sırası ile %20, %9, %5 oranlarına sahipken, AWS tüm bulutlar arasında %32’lik aslan payına sahipti.

AWS Nasıl Kuruldu?

AWS’in hikayesi 2000'li yılların başına kadar uzanıyor. Bu yıllar Amazon’un ölçeklenme problemleri yaşadığı ve sadece e-ticaret firması olduğu yıllardı. Şirketin CTO’su “Werner Vogels”, müşterilere yeni hizmetler vermek için oluşturulacak sistemler önündeki en büyük engelin monolitik yazılım ve veritabanları olduğunu söyledi.

Bu söylem ile beraber şirket en büyük üç veri kümesi olan müşteriler, ürünler ve siparişleri ayırmaya başladı. Daha sonrasında bu ayrışmalar devam etti ve giriş bilgileri, güvenlik gereksinimleri gibi parçalara kadar ilerledi. Amazon bununla da kalmayıp, kendi ürünlerini Amazon aracılığıyla sunmak isteyen müşterilerine altyapı ve uygulama kiralamak gibi yeni bir sistem geliştirdi.

Bu yapıya geçiş ile beraber, Amazon müşterilerinin depolama, sunucu veya ağ iletişimi gibi hizmetleri kullandığın kadar öde sistemi ile dış kullanıma sundu. Vogels’in söylemine göre sonradan AWS’e dönüşen sistemin ilk basamağı bu olmuştu.

AWS Rakiplerini Nasıl Yok Etti?

Evet “yok etti” demek çok büyük bir söz, bunun arkasında ise sayılar bulunuyor. 2020 Yılının son çeyreğinde, 130 Milyar dolarlık pazar payının %32'sini elinde tutuyordu. Diğer rakiplerinin durumunu ise alttaki görselde görebilirsiniz.

2020 Yılı son çeyreği bulut bilişim pazar payları

AWS bulut bilişim pazarında ilk olmasının faydası ile beraber kuralları belirlemiştir. Maliyetten kaçmayan cesur yaklaşımları ile müşteri memnuniyeti ve yayılmacı bir politikayı benimsemişti. Sisteme gelen her müşteri daha çok sunucu ve sistem kurulmasını sağlıyor, bu da gün sonunda daha çok müşteri alabilme imkanı getiriyordu.

Bir MarketWatch raporuna göre ise AWS’in lider olabilmesinin bir sebebi de yaptığı düzenli fiyat indirimleriydi. AWS, 2006 yılından bugüne kadar fiyatlarını 50 kattan fazla düşürdü. Fiyattaki bu düşüşler de kullanıcıların AWS’e en azından bir şans vermesi için büyük bir fırsat yaratmaktaydı.

Kişisel görüşüme göre ise en büyük sebeplerden birisi AWS’ın bir ürün değil bütün bir ekosistemi sunabiliyor olması. İstediğiniz ürün ne ise ona göre bir hizmet oluşturuluyor ve kullanıma sunuluyor. Elindeki yoğun kullanıcı verisi ile teknolojik yönelimleri hızlıca takip edip bir ürün oluşturmayı başarıyor. Amazon’a gelen bu veriler sadece e-ticaretten oluşmuyor, farklı sektörlerdeki markalarını da alttaki görselde görebilirsiniz.

Amazon herkes ile savaşta!

AWS’in Alternatifleri Nedir? Önceden ne vardı?

Bulut bulut bulut duymaktan biraz sıkılmış olabilirsiniz. Bir geliştirme yapmak isterseniz bulut tek seçeneğiniz değil. Sonuçta buluttan önce de bir çok uygulama oluşturuluyordu.

Günümüzde de kullanılan çözümlerden biri kendi sunucularınızda işlem yapmak. Ofisinizde bulunan bir odayı yeterli donanım ile ( elektrik, soğutma ve gerekli sunucu parçaları) sunucu odasına çevirebilirsiniz. Bu yöntem kolay görünse de tam olarak öyle olmuyor diyebiliriz. Böyle bir alanda sistem oluşturmak bir çok zorluk getiriyor.

Bu odaya kimler erişebilir? Sıcaklık, nem ve toz gibi durumlar ile kim ilgilenecek? Gerekli donanım ve ölçeklenme gibi metrikleri kim takip edecek? Tüm bu sorunlarla ilgilenmesi için muhtemelen bir kişiyi işe almanız gerekiyor. Ne gibi zorluk olabilir derseniz, sunucu odasındaki kabloların düzenlenmesi ile ilgili videoları izleyebilirsiniz. Bu da bazı durumlarda bulut hizmetlerini kullanmayı daha cazip bir duruma getiriyor.

Bu bilgiler ışığında kendi sunucumuzu çalıştırmak kötü dersek de haksızlık etmiş oluruz. Test, monitoring gibi hızlı erişim gerektiren konularda el altında sunucu barındırmak faydalı olabiliyor.

Sunucu odası istemiyorsanız başka çözümler de bulmak mümkün. AWS alanında lider olarak görünse de bulut çözümleri olarak başka seçenekler de tabii ki var. 2021 Pazar trendlerine baktığımızda yine alanında yetkin olan Microsoft Azure, Google Cloud Platform gibi markalar yanında görece daha yeni olan fakat Çin gibi ülkelerde çok kullanılan Alibaba Cloud, Huawei Cloud ve Tencent Cloud gibi seçenekleri de tercih edebilirsiniz.

Neden AWS Kullanalım?

Kullandığınız sisteminizin büyümesi ve kontrol zorluğunun artması sizi bulut çözümlerine yönlendirebilir. Bu konuda yine Medium üzerinde gördüğüm bu yazıdan alıntı yapmak istiyorum.

ÖSYM sınavı sonrasında sınavlar açıklandığında öğrencilerin sonuçlarını öğrenmek için sisteme girdiğinde genelde sistem çöker veya üniversite öğrencilerinin ders seçme zamanlarında sistem çöker ve öğrenciler gece boyunca o sistem başında beklerler.
Bu problemin sebebi hazırlanan alt yapının bu kadar anlık kullanıcıya cevap verememesidir. Anlık olarak bin kullanıcıya ulaşacağı tahmin edilen bir sistem için tüm altyapıyı sürekli bin kişilik trafiği destekleyecek şekilde çalışır tutmak maliyetli olacaktır.

Tam da bu maliyet ve dev-ops uğraşlarından kurtulmak için AWS kullanıyoruz. Veritabanı, depolama, işlem gücü ve daha bir çok problem için AWS bize kolay kullanılan hizmetler sunuyor. Bize de sadece bu hizmetleri kullanmak kalıyor. Ölçeklendirme, bakım ve güvenlik gibi işler ile bizim için ilgileniyorlar.

AWS’in nimetleri bunlar ile de sınırlı kalmıyor. Kurduğunuz sistem içindeki tüm servisleri ayrı ayrı ücretlendiriyor. Bu sayede istediğiniz hizmet için belirli bir bütçe ayırıp, tüketimlerini kontrol edebiliyorsunuz.

AWS Nasıl Kullanılır?

AWS bir derya deniz, toplamda 200’ü aşan sayılarda servis sağlıyor. Çok kez tekrar ettiğimiz gibi bir probleminiz var ise, büyük ihtimal karşılığında bir çözüm bulabilirsiniz. Biz yazımızda çok kullanılan ve bizim sevdiğimiz servisleri anlatacağız, yine de AWS’in ücretsiz başlangıç paketine de göz atmanızı öneririz. Ücretsiz ve hızlı başlangıç için mükemmel bir çözüm.

Terminoloji

Burada ufak bir ara verip AWS tarafına ilk kez giriş yapanların veya yapacakların, yazıyı akıcı bir şekilde okuyup anlaması için gereken kavramları mini sözlük olarak paylaşıyoruz.

Instance: AWS üzerinde çalışan sanal sunucular.
Node: Türkçe çevirisi ile “düğüm”. Veri transferindeki bağlantı veya dağıtımın gerçekleştiği noktalardır.
Cluster: Yazılım tarafından kontrol edilen ve aynı iş üzerinde çalıştırılmak istenilen bilgisayar topluluğu.
Region: Türkçe çevirisi ile “bölge”. Kullandığınız sunucuların fiziksel olarak yer aldığı bölge anlamına gelmektedir. Amerika, İrlanda, Kanada gibi örneklendirilebilir.
Subnet: Türkçe çevirisi ile “alt ağ”. Büyük bir ağ içindeki küçük ağlardır. Yönlendirmeleri daha verimli hale getirir.
Security Group: AWS içinde çalışan sanal güvenlik duvarlarıdır. Kullandığınız servislere gelen ve giden trafiği yönetmek için kullanılır. İstenilen adreslere servisleri açmak için konfigüre edilebilir.

AWS Servisler

Alttaki tüm başlıklar için ilk cümleleri çok basit ve kısa tutacağız. Bu sebeple kullanmayacak olsanız bile fikir sahibi olmak için ilk cümleleri okumanızı öneririz.

AWS servisleri

VPC — Virtual Private Cloud

Kişiye özel sanal bulut üzerinde AWS hizmetlerini başlatmanızı sağlayan servistir. Bu sanal bulutun içinde çoğu kaynak için IPv4 ve IPv6 kullanarak, güvenli bir erişim sağlayabilirsiniz.

AWS üzerinden aldığınız tüm hizmetleri beraber çalıştırmanız için gereken altyapıyı sağlar. AWS’i ucuz yapan ortak kaynak kullanımlarında kullanıcıların aldığı hizmetleri diğer kullanıcılardan bağımsız olarak kullanmasına imkan tanır. Bu sebeple gerçekten de Virtual Private Cloud (Sanal Özel Bulut) olarak adlandırılır.

IAM — Identity Access Management

AWS Hizmet ve kaynaklarına erişim güvenliğini düzenlemenizi sağlayan hizmettir. Hesapkurdu gibi çok ekipli bir şirketi düşünürsek herkese tüm yetkileri vermek iyi bir fikir olmayabilir. Burada da IAM hizmeti bize yardıma geliyor.

AWS IAM, kullanıcı ve grupların bulut üzerindeki hizmetlere erişimini denetlemek ve düzenlemek için kullanılmaktadır. Ayrıca IAM hizmeti ek ücret olmadan kullanılabilmektedir. Diğer kullanılan AWS hizmetleri yanında destekleyici bir işlev sağlamaktadır.

Route 53

AWS tarafından sunulan DNS hizmetidir. www.hesapkurdu.com gibi adları sayısal IP adreslerine çevirerek bağlantı kurulmasını sağlar. Kullanılan diğer DNS sağlayıcılardan çok farklı özellikleri yoktur.

AWS Route 53 hizmetini destekleyici bir hizmet olarak kabul edebiliriz. EC2 üzerinde koşan uygulamalarınızı Route 53 ile entegre edebilirsiniz. Bu sayede container içinde veya sunucunun kendisinde doğrudan çalışan uygulamalara sayısal değerler yerine adresler üzerinden erişim sağlayabilirsiniz.

EC2 — Elastic Compute Cloud

Kullanıcıların kendilerine ait sanal bilgisayarlar kiralayabilecekleri sistemlerdir. Yapacağınız işe bağlı olarak istediğiniz donanımlara sahip bilgisayarlar kiralamak mümkündür. Aynı zamanda diğer hizmetlerin de üstünde çalışması için gerekli olan temek hizmet olarak adlandırabiliriz.

AWS EC2 hizmetinde, işlemci, depolama, ağ ve işletim sistemi gibi konularda özelleştirme yapılabilmektedir. Kendi sayfasında yazdığı üzere buluttaki en hızlı işlemcilere sahip olup, 400 GB/sn Ethernet hızına sahip tek bulut bilişim sağlayıcısı olduklarını belirtmekteler.

ECS — Elastic Container Service

Bulut üzerinde container çalıştırmayı sağlayan servistir. Hayatımıza Docker’ın girmesi ile önemli yer kazanan container’lar AWS’in sağladığı hizmetler arasında yer alıyor.

AWS ECS container’ları çalıştırmak için üstte anlattığımız EC2 hizmetine ihtiyaç duyuluyor. Fiyatlandırma sistemi ise bize güzel bir haber veriyor. ECS hizmetini kullanmak için ek bir ücret ödemeniz gerekmiyor. EC2 üzerindeki yapılandırmanızı yaparak, sadece EC2 fiyatlandırmasını karşılamanız yeterli oluyor.

RDS — Relational Database System

Bulut üzerinde ilişkisel veri tabanı oluşturmanızı sağlayan servistir. AWS RDS en çok kullanılan veri tabanlarından olan PostgreSQL, MySQL, MariaDB, Oracle Database, SQL Server ve Amazon Aurora için destek sağlamaktadır. Yine AWS tarafından hazırlanmış olan AWS Database Migration Service ile mevcut veritabanlarınızı kolay bir şekilde buluta aktarabilirsiniz.

AWS RDS bir veri tabanı sağlayıcısından çok daha fazlasıdır. Ölçeklendirme, güncelleme, bakım ve denetleme maliyetlerinden kurtarır. Gece bir telefon ile uyanıp “Alo, abi bizim sunucular çok ısınmış, kapatmış kendisini. Gidip bakmak lazım.” cümlesini duymak istemeyenler için harika bir çözüm olduğunu söyleyebiliriz.

Dynamo DB

Bulut üzerinde ilişkisel olmayan veri tabanı oluşturmanızı sağlayan servistir. Özellikle mobil uygulama kullanımının zirve yapması ise beraber geliştiriciler artık SQL sisteminden biraz da olsa uzaklaşmak ve daha hızlı sorgular yapmak istediler. Bunun sonucunda ise NoSQL sistemler hayatımıza hızlıca giriş yaptı.

Benzer teknolojileri takip ediyorsanız mutlaka “İki sene sonra SQL diye bir şey kalmayacak, MongoDB harika artık NoSQL çağına girdik” söylemini duymuşsunuzdur. Sadece biz değil AWS de duymuş olsa gerek ki Dynamo DB bizlerin önüne sunuldu.

S3 Bucket — Simple Storage Service

Yazı, resim, video, html, js gibi statik dosyaları depolayabileceğiniz servis. Tüm bu dosyalar birer obje olarak adlandırılır. Bu objeler de “bucket” denilen sanal kovalar içinde bulunmalıdır. Bu bucket’lar da belirli region’lar içinde bulunmalıdır.

Örnek vermek gerekir ise,

· Obje ismi: hesapkurdulogo.png
· Region: us-east-2
· Bucket ismi: kurumsalgorseller

Bu bilgilere göre karşılaşacağımız URL “kurumsalgorseller.s3.us-east-2.amazonaws.com/hesapkurdulogo.png” benzeri olacaktır. Bundan sonra bir resim bağlantısına baktığınızda daha anlamlı gelmeye başlayacaktır.

AWS S3 Bucket oluşturmanın tek sebebi obje tutmak değildir. Ücretlendirmeyi de bu bucket’lara özel olarak görebilmekteyiz. Erişim izinlerini yine bucket özelinde düzenleyebilmekteyiz. Hangi bucket ne kadar kullanılmış gibi bilgileri de istatistiksel olarak görebilmekteyiz.

CloudFront

AWS tarafından sunulan yüksek hızlı CDN (Content Delivery Network) hizmetidir. Yazılımda hız limitlerinin zorlandığı günümüzde, CDN kullanmamak garip karşılanan hareketlerden biri olmaya başladı.

AWS CDN sayesinde veri, video, uygulama ve diğer statik dosyalarınızı dünyanın farklı yerlerinden kullanıcılarınıza hızlı ve ölçeklenebilir şekilde ulaştırabilirsiniz. Ayrıca yüksek trafik isteyen video yayın platformu gibi sistemler için de Load Balancer ile entegre çalışabilmektedir. DDoS gibi sistemi etkileyebilecek saldırıların da AWS Shield ile engellendiğini söyleyebiliriz.

Ek olarak da yine bulunduğumuz dönemlerde sunucuda harcanan süreyi kısaltmayı hedefleyen ve hızlıca ünlenen “Static Site Rendering” gibi bir sistem kullanıyorsanız, bu sayfaları CDN ile dağıtarak limitleri zorlayabilirsiniz.

SES — Simple Email Service

Çoklu e-posta gönderim hizmeti sağlayan servistir. Harika bir uygulama veya web sitesi yaptınız. Şimdi ise pazarlama için insanlara ulaşmanız lazım. Neyse ki AWS bu konuda da harika bir çözüm geliştirmiş.

SES hizmeti sayesinde uygun maliyetli ve esnek şekillerde e-posta gönderimi sağlayabilirsiniz. SES hizmetini isterseniz pazarlama veya toplu gönderim için konfigüre edebilirsiniz. Analiz verileri ile gönderimlerinizden gelen dönüşleri görebilirsiniz.

Evet, ucuz bir firmadan mail hizmeti alıp toplu gönderim de yapmak bir seçenek. Fakat bu durumlarda e-mail sağlayıcıların sizin maillerinizi “spam” olarak değerlendirme ihtimali çok yüksek bir seviyeye gelebiliyor.

MQ — Message Queue

Hızlı gerçekleşen mesaj akışlarında kayıpsız iletim sağlamayı hedefleyen servistir. Artık hepimizin “Veri güçtür” ilkesini kabul ettiğini düşündüğümüzde MQ hizmetleri elimizdeki en güçlü silahlardan biri oluyor.

AWS MQ, alanında tanınmış olan Amazon MQ, Apache ActiveMQ ve RabbitMQ için hızlı kurulum, konfigürasyon ve yönetim sağlayan mesaj aracısı hizmetidir. Kullanım bakımından AWS RDS’e benzer faydalar sağlamaktadır. Başta ölçeklenebilir olması ve operasyonel yükü azaltması sebebi ile sektörde önde gelen firmalar tarafından kullanılan bir servistir.

ElastiCache

Redis ve Memcached seçenekleri sunan önbellekleme servisidir. Şimdiye kadar paylaştığımız hizmetleri kullanarak güvenli, ölçeklenebilir ve hızlı bir ortam elde ettiniz. Daha çok hıza ihtiyacınız var ise AWS ElastiCache biçilmiş kaftan.

Hesapkurdu olarak gün içinde aynı sayfalara çok fazla trafik alıyoruz. Kullandığımız API’leri ne kadar optimize etsek de, bazı dönemlerde yüksek trafiğin dar boğaza sebep olduğunu görebiliyoruz. Bu yüksek trafiklerde yardımımıza aktif olarak kullandığımız Redis koşuyor. Her sorgu için veritabanını kullanmak yerine RAM üzerinde tutulan sonuçları dönmek kullanıcı deneyimi ve hızımızı üst seviyelerde tutmamızı sağlıyor.

AWS ElastiCache ile sizlerde uygulamanızın önbellek teknolojilerinden uzakta kalmamasını istiyorsanız kolay bir şekilde Redis veya Memcached üzerinden önbellek kullanmaya başlayabilirsiniz.

CloudFormation

Buraya kadar okuduğunuz tüm başlıkları tek bir yerden yönetmeyi hedefleyen hizmettir. Bir çok teknolojiden bahsettik ve ilginç gelse de bunların hepsini kullanan uygulamalar bulunuyor. Bulunuyor da, “Bu kadar farklı aracı nasıl kontrol ediyorlar?” sorusunun cevabını yine AWS üzerinde bulabiliyoruz.

AWS CloudFormation hızla büyüyen uygulamaların altyapılarını kolay bir şekilde yönetmeyi sağlamaktadır. İster tek bir EC2 hizmeti isterseniz birden çok hizmeti kontrol edebilirsiniz.

Kullanıma göre yatay bir ölçeklenmesi gereken bir sistemde CloudFront ile oluşturduğunuz JSON dosyasını AWS’e gönderdiğinizde, geri kalan işleri AWS sizin için hallediyor ve tüm hizmetleri bir paket halinde sunuyor. Ayda bir geliştirilen kişisel projeler için bile kimsenin Docker’da container’larını tek tek kaldırmadığını, “docker-compose up” ile her şeyi tek elden yönetmeyi sevdiği bu düzende CloudFormation da AWS arasında önemli bir yer elde etmiş oluyor.

CloudWatch

Geliştiricilerin uygulamalarını takip etmesini ve izlemesini sağlayan servistir. AWS CloudWatch da işlev olarak bakıldığında CloudFront hizmetine benzemektedir. Hızla ölçeklenen bir sistemde, her bir hizmeti ayrı panellerden yönetmenin can sıkıcı olabileceğini tahmin edebiliriz. Neyse ki bu konuda da bir çözüm üretilmiş.

AWS CloudWatch ile kullanımdaki tüm AWS kaynaklarını, uygulamalarını ve hizmetlerini izleyebileceğiniz birleşik bir görünüm elde edebilirsiniz. Anormal davranışları önceden tespit edebilmek için alarm kurabilir, ölçümleri görselleştirebilir ve hatta otomatik eylemler gerçekleştirebilirsiniz.

AWS Dynamo DB, kendi söylemleri ile “Her ölçekte milisaniye cinsinden tek basamaklı performans sunan anahtar-değer veri tabanıdır” şeklinde anlatılmaktadır. Yedekleme, geri yükleme, bellek içi önbelleğe alma gibi bir çok ek özelliği de beraberinde getirmektedir.

Lambda

Sunucu olmadan kod çalıştırmayı sağlayan hizmettir. Uygulamanız için sunucu tutmak istemediniz veya o kadar büyük çaplı bir ihtiyacınız yok ise AWS yine bir çözüm sunuyor. “XaaS” ailesinin en küçüğü olan “Function as a Service” ile tanışın.

AWS Lambda, “serverless” olarak geçen yeni teknolojilerden birinin parçası olmayı hedefliyor. Hızla ölçeklenen bir sistemde her şeyi tek bir yapının kontrol etmesi bir yerden sonra kontrolü zorlaştırıyor ve buna bağlı olarak performansı düşürüyor. Bu sebeple günümüzde çoğu şirket için mimarilerinin monolitik sistemlerden mikro servis mimarilerine geçişini gözlemleyebiliyor.

Mikro servis de sizin için yeterli değil ise doğru yerdesiniz. Lambda fonksiyonlar, SOLID prensiplerinden biri olan “Single Responsibility” yani tek sorumluluk ilkesi ile çalışan bir yapı üzerine kurulmuştur. Fonksiyonlar birbirini tanımaz. Her biri tek bir işten sorumludur. Bu sayede hepsini kolay bir şekilde düzenleyip, yönetebilirsiniz.

AWS Lambda haricinde Serverless fonksiyonlar ile ilgili ufak bir araştırma yapmanızı kişisel olarak öneriyorum. Vakit kaybetmek istemeyenler de alttaki video ile hızlı bir başlangıç yapabilir.
IBM- What is Serverless?

Örnek AWS akışı nasıl olabilir?

Çoğu önemli hizmet hakkında bilgi sahibi oldunuz. Bir de örnek akış paylaşmadan sizleri uğurlamak istemeyiz. Bu örnek için de hepimizin çok kullandığı e-ticaret sistemlerini örnek alalım. Hadi başlayalım.

Öncelikle bir VPC edindiniz, hatırlarsak tüm bulut hizmetlerimizi bu VPC altında barındıracağız. Sıra güvenlik sistemlerini hazırlamakta.

IAM hizmeti ile kendimiz için veya ekibimiz için gerekli güvenlik izinlerini ve yetkileri tanımladık ve bunları isimlendirdik.

Sistemin çalışacağı altyapı için de isteğimize göre ECS veya EC2 hizmetlerinden birini seçtik. Deploy için gerekli sistemleri hazırladık fakat deploy öncesi yapacak çok işimiz var.

Uygulamamızın erişileceği DNS ayarlarını yapmak için Route 53'ü ziyaret ettik. Burada DNS, IP ve Nameserver gibi ayarlamalarımızı yaptık. Şimdi de verileri saklamak için gerekli veritabanını hazırlayalım.

İlişkisel bir veritabanı istediyseniz RDS hizmeti veya “ben döküman bazlı veritabanı isterim” diyorsanız da Dynamo DB hizmetini kurduk ve gerekli konfigürasyonları yaptık.

E-ticaret dediysek görsellik çok önemli. Resmi olmayan bir ürün düşünemiyoruz. Bu sebeple de hemen S3 üzerinde bir Bucket oluşturuyoruz ve ürün resimlerimizi burada depoluyoruz.

Uygulamamıza çok güveniyoruz ve tüm dünyadan trafik almayı hedefliyoruz. Bu sebeple CDN kullanmak istedik ve CloudFront hizmetinden destek aldık. Bu sayede tüm resimlerimiz ve statik dosyalarımız dünyadaki farklı yerlere dağıldı.

Ürünlerimiz için açıklama yazılarını da hızlıca iletmeyi çok isteriz. Bu sebeple de ElastiCache ile Redis veya Memcached seçeneklerinden biri ile gün içinde çok fazla istek alabilecek olan içerik sayfalarımızı önbelleğe alıyoruz.

Uygulama içindeki kullanıcılar ürün sahiplerine mesaj atmak istiyorsa bu durumda bir mesajı bile kaybetmek bizim için çok üzücü sonuçlar yaratabilir. Burada da MQ hizmeti ile ileti yönetim sistemini iyileştiriyoruz.

SES hizmeti ile gerekli promosyon, üyelik ve iletişim maillerini hızlı ve güvenilir bir şekilde kullanıcılarımıza iletiyoruz. Artık sistemin hızlıca ölçeklendiğini görmeye başlıyoruz.

Bu kadar sistemi yönetebilmek için Cloud Formation hizmetinden faydalanıyoruz. Artık tüm hizmetleri kolayca kontrol edebiliyoruz. Bu kadar hizmet tabii ki maliyeti de beraberinde getiriyor. Bunu gözlemlemek için de Cloud Watch ile tüm hizmetlerimizi inceleyip kontrol altında tutabiliyoruz.

Örnek akış diagramı

Veda vakti

Buraya kadar bize eşlik ettiyseniz çok teşekkür ederiz. Çok yerde parça parça ele alınan bir konuyu bütün hale getirmek istedik. Umarız ki faydalı bulmuşsunuzdur. Diğer yazılarımızı da merak ettiyseniz sayfamıza göz atmayı unutmayın. Görüşmek üzere!

Kaynakça

https://medium.com/r?url=https%3A%2F%2Fwww.webeyn.com%2Fyazilim-jargonundaki-bug-nedir-ve-nereden-cikmistir%2F

https://www.marketwatch.com/story/how-amazon-created-aws-and-changed-technology-forever-2019-12-03

https://www.statista.com/chart/18819/worldwide-market-share-of-leading-cloud-infrastructure-service-providers/

https://www.comparethecloud.net/articles/here-is-why-aws-still-dominates-the-cloud-market/

--

--