AWS

Cloud & Servers

AWS Servisleri

Her geçen yıl AWS Servislerine yenisi ekleniyor. Blog yazdığım 2016 yılından beri 4 yılda bir çok yeni servis eklenmiş durumda. Bu yazıyı 2020 yılındaki servislere göre güncelleme yaptım umarım beğenirsiniz.

Onur Dayıbaşı
Jan 10, 2016 · 10 min read

Yazıda aşağıdaki konuları anlatmaya çalışacağım;

  • AWS Nedir ?
  • Ölçeklenebilirlik (Scalability) İhtiyacı
  • AWS Global Altyapısı
  • AWS RDS çökmeyen ve dayanıklı veritabanı servislerini nasıl sağlıyor
  • 2016 Yılındaki AWS Servislerine Genel Bakış
  • 2020'de AWS Servislerindeki Değişim
  • 2016 — AWS iOT Button
  • 2016 — Amazon Rekognition
  • 2016 — Amazon Polly

1. AWS

Amazon Web Services, Amazon’un verdiği Bulut Hizmetlerinin genel adıdır. Aşağıda 2016 yılında AWS için oluşturulan Servis Altyapısını nasıl bir yığıt şeklinde üst üste koyduğunu görebilirsiniz. Burada 2016'daki yapının 2020 yılında da geçerli olduğunu söyleyebilirim.

AWS Global Infrastructure
  • Dünyada en hızlı büyüyen bulut bilişim platformudur.
  • Dünyada en geniş alana yayılmış bulut bilişim platformudur.
  • Giderek artan sayıda firma ve organizasyon IT işlerini AWS ortamına taşımaktadır.
  • AWS Hizmetleri 2006 ‘yılında başlamıştır.
  • AWS hizmetleri ilk başlarda küçük bütçeli firmalar veya startup lar tarafından kullanılırken günümüzde binlerce firma Kurumsal uygulamalarında AWS hizmetlerini tercih etmektedir.
  • Örneğin Netflix, Adobe, Nokia, Yelp, Nasa, Samsung, Prifizer, Dow Jones, Nasa vb..)
  • AWS Sertifikasyonu IT alanında çok popüler bir sertifikasyon haline gelmiştir. (Eskiden Microsoft, Cisco veya RedHat sertifikasyonları daha popülerdi. Bunlarda uzmanlık gerekirken gelecek 10 yılda bunlardan daha uzakta bulut teknolojileri üzerinde sağlanan soyutlamalar üzerinde geliştirmelerimi yapacağız. PaaS ve Sunucusuz Lambda gibi servisler üzerinde geliştirmeler yapacağız.)
  • IT alanındaki bir çok uzmanın aynı noktada buluşması hem işlerin doğru şekilde yapılmasını hemde güvenli şekilde yapılmasını sağlıyor.

2. Ölçeklenebilirlik (Scalability) İhtiyacı

Ölçeklenebilirlik bir sistemin zaman içinde istek sayısı, veri sayısının artması durumunda sistemin bu durum için büyütülebilmesi veya istek sayısı, veri sayısının azalması durumunda sistemin küçüktülebilmesidir.

Manual Scaling
Bu ölçeklendirme gereksinimini bir geliştiricinin, DevOps uzmanının anlaması. Sistemdeki yük miktarlarını ve cevap verme sürelerini ölçerek , manuel olarak yeni bir makine eklemesi veya azaltılması işlemidir. Burada işlem manual olarak gerçekleştirilir.

Auto Scaling
Otomatik ölçeklendirme ise AWS tarafından belli sensörlerden gelen veriler üzerine kurulmuş kural scriptleri diyebiliriz. Yük sistemin kaldıramayacağı oranın üzerine çıktığında makinelerin ona göre güçlenmesini/çoğalmasını veya kullanılmadığı durumda azalmasını script yazmış ve bunu AWS otomatik yapıyor ise bunada otomatik ölçeklenme denir.

Vertical Scaling (Dikey Ölçeklenme)
Ölçeklenmenin dikeyde olması yani bilgisayarın işlemci ve belleğinin arttırılması veya azaltılması olarak düşünülebilir. Bu yöntem Monolitik uygulamalar için uygundur ama belli bir seviyenin üzerinde ölçeklenmek giderek çok maliyetli ve sınırlı hale gelecektir.

Horizontal Scaling (Yatay Ölçeklenme)

Yatayda ölçeklendirme ise aynı makinenin load balancer arkasında çoklanmasıdır. Bu donanım maliyeti ve sınırların kolayca aşılabilmesi açısından oldukça başarılı bir yöntemdir. Makinenin fiziksel özellikleri geliştirmek yerine yanına bir tane daha benzer bilgisayar konularak iş/yük paylaşımı ile sorun çözülmeye çalışılır. Burda sunucuda çalışan yazılımın diğer makineden de devam edebilir şekilde geliştirilmesi gerekmektedir.

Buda kullanıcı ve session bilgilerinin Redis/DynamoDB gibi storage saklanıp gerekli olduğunda yeni açılan bilgisayardan da kolayca erişebilir olması gerekmektedir

3. AWS Global Altyapısı

Amazon fiziksel makinalarının tutulduğu bölgelerdir. Yapacağınız uygulamanın ihtiyaçları doğrultusunda bölgelerden birisini seçerek uygulamanızı bu bölgelerdeki veri merkezlerine kurabilirsiniz. Aşağıdaki listelenen maddeler sizin hangi bölgeyi seçeceğiniz etkileyen etmenlerdir.

  • Son kullanıcıya yakınlık (Türkiye’deki kullanıcılar için EU Frankfurt seçimi en iyi çözüm olacaktır.)
  • Verilerin tutulması ile ilgili yasal gereklilikler
  • Genişleme stratejisi
  • Fiyat
  • Sağlanan Servisler (Her AWS servisi , her bölgede sağlanmıyor)

Her Region içerisinde farklı lokasyonlarda birden fazla availability zone bulunur. Fiziksel veri ve sunucu merkezleri bu zone içerisindedir. Bu zone veri merkezleri birbirlerine özel fiber optik kablolar ile bağlanmış ve çok hızlı veri iletimi yapabilir. 25 Tbps bant genişliği ve 1 veya 2 ms veri iletim süresi.

Bu sayede High Availability(Yüksek Erişilebilirlik) sağlar. Bir sistem çökse bile diğer bir lokasyondaki yedek sistem devreye girer ve bu işlemler otomatik olarak gerçekleşir.

AWS Veri merkezlerinde 50.000 ve 80.000 civarında sunucu bulunmaktadır.

DNS sunucu servisleri ve CDN servisleri bu Edge Locations (Uç noktalar) üzerinden verilerek kullanıcıların en kısa zamanda ilgili verilere erişimi sağlanır.

  • CDN(Content Delivery Network) Servisi CloudFront
  • DNS Servisi Route53

4. AWS RDS (Relational Database Service) çökmeyen ve dayanaklı veritabanı servislerini nasıl sağlıyor ?

Başlık yanıltıcı olabilir aslında veritabanı servisleri çökebilir. Burada kastedilen yedek veritabanı nasıl devreye giriyor. Çöken veritabanı servisi yerine nasıl yenisi oluşuyor ?

RDS Multi-AZ özellikli veritabanında bu yeteneği denediğimde Replika(Yedek) veritabanına yönelmesinin ve yeni veritabanı servisinin ayağa kalkması 30 saniye gibi bir süre aldığını gördüm.

Özetle bu testi şu şekilde yapabilirsiniz. RDS servisi aldığınız

  1. xxxdb001.cyozurvuifki.eu-west-1.rds.amazonaws.com:3306 ip’sini sorgulatın
  2. RDS servisini Reboot ederken failover seçeneğini işaretleyin eğer aldığınız servis Multi-AZ özellikli değil ise bu Failover seçeneği çıkmayacaktır.
  3. Sonrasında sistemi reboot edin. RDS bir süre sonra aynı endpoint adresinden hizmet vermeye devam edecektir. Tekrar IP sorgulatın IP’nin bir önceki IP’den farklı bir IP olduğunu göreceksiniz.

Peki yukarıdaki sistem nasıl çalışıyor ? Bunun için Amazon Region ve Availability Zone kavramlarının ne işe yaradığına daha yakından bakalım.

Amazon fiziksel makinalarını bu region(bölgeler) içerisindeki Availability Zone (erişebilirlik alanlarında) tutuyor. Regionların birbirleri ile hiçbir fiziksel bağı yok. Amacı bir bölgedeki örneğin Türkiye’deki kişinin kendisine yakın bölgeden faydalanması böylece Network gecikmesini verinin alacağı yolu kısaltmak.

Erişebilirlik Alanları ise bölgeler içerisinde farklı fiziksel alanlarda yer alan veri merkezleri, bu merkezler arasında güçlü optik ağ altyapısı bulunuyor.

Örnek Bölgeler (Region)
eu-central-1 EU (Frankfurt)
eu-west-1 EU (Ireland)
us-west-2 US West (Oregon)

Örnek Erişebilirlik Alanları
Bulunduğunuz Region göre seçebileceğiniz subnet yani Availability Zone (Erişebilirlik Alanları) değişiyor.

Multi -AZ

RDS Multi-AZ özellikli bir veritabanı hizmeti aldığınızda bunun otomatik olarak replikasını (yedeğini) başka bir erişebilirlik alanına almaya başlar.

RDS master çöktüğünde DNS ayarı otomatikman diğeri DB gösterecek güncellenir. Uygulamada herhangi bir değişiklik yapmadan çalışmalarınıza devam edebilirsiniz.

Daha sonrada 1–3 dakika arasında ölen DB yerine yenisini oluşturuyor Tüm bu işleri AWS otomatik olarak gerçekleştiriyor.

5. 2016 Yılındaki AWS Servislerine Genel Bakış

VPC: Virtual Private Cloud, AWS üzerinde sanal network oluşturmanızı sağlar.

Route53: DNS ‘lerinizi yönetmenizin sağlar ismini DNS kullandığı port 53 olduğu için ismini buradan almıştır.

Direct Connect: Internet Provider kullanmandan Özel network sağlayıcıları ile direk olarak AWS kaynaklarına erişmenizi sağlar.

EC2: AWS’nin sanal sunucularıdır.

ECS: EC2 instance üzerinde Docker Container oluşturmanızı ve yönetmenizi sağlar

Elastic Beanstalk: EC2 instance PaaS hizmeti vererek üzerinde hazır Tomcat, Node, Ruby vb… Web sunucusu veya Worker hizmeti sağlar. EC2'ya göre işletim sisteminin üzerine birazcık daha uygulama eklenmiş hali.

Lambda: Serverless fonksiyonları ile AWS Managed Servisleri birbirlerine daha iyi bir şekilde bağlayıp hızlıca uygulamalar geliştirebilirsiniz.

S3: Object Storage Servisidir. 1byte -5TB arasındaki doyalarınızı saklayabilirsiniz

CloudFront: CDN yani Content Delivery Network, Yani statik kaynaklara hızlı erişim için kaynakların AWS Edge’lerinde tutulması

Glacier: Arşivlemek istediğiniz ve anlık erişime ihtiyaç duymayacağınız büyük verilerinizi ucuza saklayan servistir.

Elastic File System: Birden fazla EC2 instance ortaklaşa kullanabileceği dosya sistemidir.

Storage-Gateway: On-Premise uygulamalarda AWS Storage güvenli bir şekilde sadece bu uygulamanın kullanabilmesini sağlar.

Snowball: Büyük verilerin Export (Dışarıya aktarımını) / İmport (İçeriye aktarımını) sağlar.

RDS: Relational Database Servisidir MSSQL, MySQL, Oracle, Aurora, Postgre SQL veritabanlarını destekler.

DynamoDB: AWS’nin sağladığı NonRelational DB hizmetidir. Performanslı ve Yüksel ölçeklenebilir

ElasticCache: In Memory Cache Servisidir. Redis ve Memcache destekler.

Redshift: AWS üzerindeki VeriAmbarı hizmetidir. Petabyte büyüklüğündeki verileri tutar

SimpleDB: AWS’nin sağladığı NonRelational DB Hizmedir. Basit ve Esnektir.

DB Migration Service: Database Migration Service

Analytics

Elastic Map Reduce: AWS üzerinde Big Data işlemenizi sağlar. Altyapısında Hadoop framework kullanır.

Data Pipeline: Veriyi işleyip dönüştürmeniz ve daha sonra bunları S3, RDS, DynamoDB veya EMR ‘da saklamanıza saklar.

Elastic Search: Elastic SearchAWS üzerinde sunulmasıdır. Log, Click Stream Analytics, Real Time App Monitoring kullanılır.

Kinesis: AWS üzerinde Streaming Data servisidir. Web, Mobile, iOT ürettiği stream verisini toplama, depolama ve işleme ihtiyacı için

Machine Learning: AWS üzerinde Machine Learning teknolojisi kullanmalarını kolaylaştıran servisler sunar. Model , algoritma ve görsellik

Quick Sight: AWS üzerindeki BI(Business Intelligence) hizmetidir.

IAM: Identity And Access Management servisidir. AWS üzerindeki kullanıcılarınızı, gruplarınızı ve rollerinizi yönetmenizi sağlar.

Directory Service: AWS üzerinde MS Active Directory’nın kurulmasını ve çalıştırılmasını sağlar.

WAF: Web Application Firewall Service. Bilinen atak örüntüleri(Ddos), SQL injection ve Cross Site Scripting karşı önlem alabilmesini sağlar.

HSM: Bulut’ta Hardware Security Module hizmetidir. Verilerinizi KMS ürettiği anahtarlarla Enrcypt edilmesini sağlar.

KMS: Key Management Service’dir HSM verinin enrcypt edilebilmesi için key üretilmesinden, kontrolünden ve güvenliğini sağlayan servistir.

CloudWatch: AWS kaynaklarınızı monitor etmenizi sağlar. Kaynakların izleri ve logları takip ederek belirlediğiniz alarmları çalıştırır.

CloudFormation: AWS üzerinde manuel yaptığınız tanımladığınız bir çok sistemi, konfigürasyonu JSON template yapmanızı sağlar.

Cloud Trailer: AWS API çağrımlarının kayıtlarını tutar. Bu sayede bu izleri takip ederek AWS kullanıcılarının yaptığı işlemleri takip edersiniz.

OpsWorks: AWS üzerindeki Configuration Management Servisidir.

Config: AWS üzerinde kaynak envanteri, konfigürasyon tarihçesi ve konfigürasyonda yapılan bir değişikliğin bildirimi için servis

Service Catalog: AWS üzerindeki IT servislerini katalog haline getirip bunlarını yönetebilmesini sağlar.

APIGateway: Bulut’ta geliştiricilerin güvenli API oluşturmalarına, yayınlamalarına ve monitor etmelerini sağlar.

AppStream: Windows App AWS üzerinde çalışarak görüntü ve etkileşimin Stream ile yapılmasını sağlar. MacOS, ..

CloudSearch: Web sayfanızın üzerindeki aramalar için sunulan bir servistir. 34 dili destekler.

ElasticTranscoder: AWS üzerinde media ve video dönüştürümünü gerçekleştirmek için sunulmuş servistir. Telefon ve Tablet’de media desteği için

Simple Email Service: Email göndermenizi ve almanızı sağlayan servistir.

Simple Queue Service: Uygulamalarınızın kullanabileceği ActiveMQ, RabbitMQ gibi servis sunar.

Simple Workflow Service: Arka planda yapılması gereken işlemleri paralel veya sırası ile çalıştırmanızı sağlar.

CodeCommit: AWS ‘nin Source Control hizmetidir.

CodeDeploy: AWS’nin sağladığı App Deploy otomatikleştiren servistir.

CodePipeline: AWS’nin Continues Delivery Servisidir. Kodunuzu commit ettiğinizde build edilmesi, test edilmesi, staging sonra prod ortamına atılmasını sağlar.

Mobile Hub: mobil uygulama geliştirme, build etme, test etme ve kullanımını monitor etmeniz için ortam sağlar.

Cognito: Web ve mobil uygulamalarınıza hızlı ve kolayca kullanıcı kaydı, oturum açma ve erişim denetimi eklemenize olanak sağlar. Facebook, Google, Amazon gibi sosyal kimlik sağlayıcıları ile SAML 2.0 üzerinden kimlik doğrulama entegrasyonu yapmanızı sağlar.

Device Farm: Bulut’ta farklı Android cihazları üzerinde uygulamanızın test edilmesini sağlar, performans ve görüntü sonuçlar sağlar.

Mobile Analytics:Mobil uygulamanızın kullanılma oranları ve kazanç durumlarını analiz etmenizi sağlar.

Simple Notification Service ile Mobil uygulamanızın Push Notification bu servis üzerinden yapabilirsiniz. Topicler üzerinden Pub/Sub mekanizması sağlar.

Wokspace: İşletmeniz için sanal desktop’lar oluşturarak çalışanların bu workspace’ledeki uygulama ve dökümanlara erişimini sağlayan servistir.

Workmail : İşletmeniz için eposta ve takvim hizmeti sunar.

Workdocs: İşletmeniz için dokümanlarınızı (pdf, video vb..) saklayabileceğiniz paylaşabileceğiniz Dropbox gibi ortam sağlar.

iOT: iOT cihazlarının AWS’ye telemetri ve sensör verilerini aktarmaları, bunların analiz edilmesi ve depolanması için sunulan servislerdir.

6. 2020 ‘de AWS Servislerindeki Değişim

Öncelikle uygulama (applications) seviyesi servislerin ne kadar arttığını ve detaylı hale geldiğini görebilirsiniz.

  • Machine Learning,
  • iOT,
  • Frontend Mobile
  • Media Services
  • Migration and Transfers

Aynı zamanda yeni servis alanları açıldığını bunlarında zaman içerisinde gelişeceğini görebiliriz.

  • Robotics
  • Customer Enablement
  • Blockchain
  • Satellite
  • Quantum Tech
  • Game Development

Serverless, Containers ,Graph DB, S3 Big Data Query, Network ve Development servislerinin ne kadar geliştiğini görebilirsiniz.

AWS Services 2020 Page1
AWS Services 2020 Page2

7. 2016 — AWS iOT Button

Amazon Dash Button, sayesinde alışverişe gitmek , web veya app üzerinden alışveriş yapmak yerine, biten ürünlerinizin siparişini http://bit.ly/1GGhOJ1 linkte 5$ ‘a satılan dash düğmeleri ile yapabilmeniz mümkün.

AWS iOT düğmesi bu Dash Button’u sizin programlayabileceğiniz halidir ve bu Wi-Fi cihazı programlarken, cihaza spesifik kod yazmadan direk

  • AWS IoT,
  • AWS Lambda,
  • Amazon DynamoDB,
  • Amazon SNS, bir çok Amazon Servisini kullanmanızı sağlar.

AWS iOT düğmesini tıklama, çift tıklama, uzun süre tıklama olaylarını basitçe programlayabilirsiniz. http://amzn.to/1Nt9cJn adresinden 20$ satılıyor.

Bu iOT düğmesi ile;

  • Kullanım Takibi Yapmak. (Amazon Dash Button gibi)
  • Çağrı Yapmak
  • Bir süreci başlatıp /durdurmak için
  • Alarm vermek için kullanabilirsiniz.

AWS iOT düğmesinin nasıl programlanacağı ile ilgili bilgiye https://aws.amazon.com/iot/button/ sitesinden erişebilirsiniz.

8. 2016 — Amazon Rekognition

WS Console’dan Rekognition Servisi içerisine girdiğinizde bu servisi deneyebileceğiniz bir Demo karşınıza çıkıyor.

  • Object And Scene Detection (Nesne ve Sahne Tanıma)
  • Facial Analysis (Yüz Analizi)
  • Facial Comparison (Yüz Karşılaştırması)

Bu servislere bir gözatacak olursak;

Çocukları sabah uyandırmadan önceki fotoğrafı yüklediğimde sahneyi doğru şekilde etiketlediğini görebilirsiniz. Bulduğu etiketler;

  • People
  • Human
  • Asleep
  • Coach
  • Furniture

İnsan Yüzünü algılayarak bunun üzerinde analiz gerçekleştiriyor.

  • Kişi gözlük veya güneş gözlüğü takıyor mu ?
  • Gülüyor mu ?
  • Mutlu mu ?
  • Cinsiyeti ?

2 fotoğraftaki kişilerden benzeyen yüzleri bulup bunların birbirine benzeme oranını çıkarıyor bu serviste. Özellikle fotoğraf albümünde gruplama yapmanızı sağlayacak bir özellik.

Bunların altında çalışan REST servisi olduğu için istediğiniz geliştirme ortamı ilede kolaylıkla entegre edebilirsiniz.

9. 2016 — Amazon Polly

Text to Speech yani Metinden Konuşmaya dönüştürmeye yardımcı olan AWS Servisi. Bu servis özellikle Bot, Robot ve Digital Assistant geliştirirken yararlanabileceğiniz bir servis.

Polly bir örnekte deneyelim. Kırmızı Başlıklı Kız Hikayesini Müşfik Kenter seslendiriyor. Birde Amazon Polly Filiz’in sesinden dinleyelim bu hikayenin bir kısmını. :)

Okumaya Devam Et 😃

Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.

Cloud And Servers

AWS, Azure, OpenStack

Cloud And Servers

AWS, Azure, OpenStack

Onur Dayıbaşı

Written by

Senior Frontend Developer at Thundra

Cloud And Servers

AWS, Azure, OpenStack