From a63f88c968864e224e0b9c8226b23910e1ae66b1 Mon Sep 17 00:00:00 2001 From: fatich Date: Tue, 15 Aug 2023 00:46:40 +0300 Subject: [PATCH] added 16-23 for chapter 4 --- .../.DS_Store | Bin 8196 -> 8196 bytes .../16-usage-of-cloudtrail.md | 32 ++++++++ .../17-usage-of-cloudformation.md | 43 +++++++++++ .../18-usage-of-SNS.md | 69 ++++++++++++++++++ .../19-usage-of-SQS.md | 33 +++++++++ .../20-usage-of-SWF.md | 17 +++++ .../21-usage-of-SES.md | 48 ++++++++++++ .../22-usage-of-amazon-kinesis.md | 48 ++++++++++++ .../23-usage-of-aws-config.md | 51 +++++++++++++ 9 files changed, 341 insertions(+) create mode 100644 04-detailed-review-of-featured-services/16-usage-of-cloudtrail.md create mode 100644 04-detailed-review-of-featured-services/17-usage-of-cloudformation.md create mode 100644 04-detailed-review-of-featured-services/18-usage-of-SNS.md create mode 100644 04-detailed-review-of-featured-services/19-usage-of-SQS.md create mode 100644 04-detailed-review-of-featured-services/20-usage-of-SWF.md create mode 100644 04-detailed-review-of-featured-services/21-usage-of-SES.md create mode 100644 04-detailed-review-of-featured-services/22-usage-of-amazon-kinesis.md create mode 100644 04-detailed-review-of-featured-services/23-usage-of-aws-config.md diff --git a/04-detailed-review-of-featured-services/.DS_Store b/04-detailed-review-of-featured-services/.DS_Store index 153090b1e9ab34b591ff3cd2606e516727ec1b33..58a262c13b8508380f68769cdb793b70037ac135 100644 GIT binary patch delta 673 zcmZp1XmOa}&nUhzU^hRb_+}n~ zCI<+JOjZzP5n$x|4+ab%0Ms%`NE}Ih2}2Q3M2PX-1Q^|C-K%t2O6{wc)6 zpAS@=3$`E=Xk8vy3sX9p79pS(3y>DpU?)9>8FU%4f&R^7NM$Gn g(#0UtdBFaLnm)1c<7Re=Z!FwECy$01v0?TO0E%_OZU6uP delta 33 pcmZp1XmOa}&&aw^Mo*OW|#QJvay1l834JT3Y7o= diff --git a/04-detailed-review-of-featured-services/16-usage-of-cloudtrail.md b/04-detailed-review-of-featured-services/16-usage-of-cloudtrail.md new file mode 100644 index 0000000..32d22d9 --- /dev/null +++ b/04-detailed-review-of-featured-services/16-usage-of-cloudtrail.md @@ -0,0 +1,32 @@ +# 17. CloudTrail +AWS CloudTrail, denetim, güvenlik izleme ve operasyonel sorun giderme sağlar. CloudTrail, AWS hizmetlerinde kullanıcı etkinliğini ve API çağrılarını olay olarak kaydeder. CloudTrail etkinlikleri, "kim, neyi, nerede ve ne zaman yaptı?" sorularını yanıtlamanıza yardımcı olur. + +CloudTrail iki tür olayı kaydeder: +- Amazon Simple Storage Service (Amazon S3) paketleri oluşturma veya silme gibi kaynaklar üzerinde kontrol düzlemi eylemlerini yakalayan yönetim olayları. +- Amazon S3 nesnesini okuma veya yazma gibi bir kaynak içindeki veri düzlemi eylemlerini yakalayan veri olayları. + +CloudTrail bu olayları üç özellikte kullanır: + +- Olay geçmişi, hiçbir ek ücret ödemeden 90 günlük kontrol düzlemi eylemleri geçmişi sağlar. Temel denetim yeteneklerinin bir parçası olarak CloudTrail, değişmezliği etkinleştirmek için şifreleme ve günlük dosyası doğrulaması için müşteri tarafından yönetilen anahtarlar sağlar. Yalnızca ücretli özellikleri kullandığınız kadar ödersiniz. Aşağıdaki özelliklerden bazıları ücretsiz olarak sağlanmaktadır. Asgari ücret veya ön taahhüt gerekmez. +- CloudTrail Lake, denetim ve güvenlik amacıyla AWS'de kullanıcı ve API etkinliğini yakalamak, depolamak, erişmek ve analiz etmek için yönetilen bir veri gölüdür. Etkinlik günlüklerinizi (kontrol düzlemi ve veri düzlemi) yedi yıla kadar toplayabilir, değişmez bir şekilde saklayabilir ve arama ve analiz için günlükleri saniyeler içinde sorgulayabilirsiniz. BT denetçileri, denetim gereksinimlerini karşılamak için CloudTrail Lake'i tüm etkinliklerin değişmez bir kaydı olarak kullanabilir. Güvenlik yöneticileri, kullanıcı etkinliğinin dahili ilkelere uygun olmasını sağlayabilir ve DevOps mühendisleri, yanıt vermeyen bir Amazon Elastic Compute Cloud (EC2) örneği veya erişimin reddedilen bir kaynak gibi operasyonel sorunları giderebilir. +- İzler, Amazon CloudWatch Logs ve Amazon EventBridge'e isteğe bağlı teslimat ile bu olayları Amazon S3'te teslim edip depolayarak AWS hesap etkinliklerinin kaydını yakalar. Bu olaylar, güvenlik izleme çözümlerinize eklenebilir. CloudTrail tarafından yakalanan günlükleri aramak ve analiz etmek için kendi üçüncü taraf çözümlerinizi veya Amazon Athena gibi çözümlerinizi kullanabilirsiniz. AWS Organizations'ı kullanarak tek bir AWS hesabı veya birden çok AWS hesabı için yollar oluşturabilirsiniz. AWS CloudTrail Insights, API çağrı hacimlerindeki anormal davranışlar için kontrol düzlemi olaylarını analiz eder ve kaynak sağlamadaki ani artışlar veya periyodik aktivitedeki boşluklar gibi olağandışı etkinlikleri tespit edebilir. + +CloudTrail ile CloudWatch servisinin karıştırılmamasına dikkat edilmelidir. **CloudTrail** servisi AWS hesabınızın **yönetim, uyumluluk ve operasyonel risk denetimini** sağlarken **CloudWatch** AWS hesabınızdaki kaynakların **performans ve hatalarını izlemeyi** sağlayan monitoring servisidir. + +## 17.1. CloudTrail Servisinin Kullanımı +![281](https://github.com/fatihes1/AWS-ile-Bulut-Bilisimin-Temelleri/assets/54971670/f3c9a8eb-061b-4c09-80e0-128d9bcea749) + +CloudTrail kontrol paneline ulaştığımızda Şekil: 60’takı gibi bir ekran bizi karşılar. Dashboard alt başlığı altında son 90 günlük ana olayların kaydı bulunur. Benzer şekilde Event History alt başlığında da 90 günlük kayıtların tamamı bulunur. Dashboard buradan ana kayıtları çeker ve kendi üzerinde gösterir. + +Trails başlığı altında ise trail oluşturulur. Bazı durumlarda kayıtların 90 günden fazla tutulması gerekmektedir. Bu kayıtların toplanıp S3 bucket’larında saklanmasını trail hizmeti sağlar. 90 günden fazla kayıt tutulmadaki temel sebepler ise firma politikaları veya güvenlik amaçlı olabilmektedir. + +“Create a trail” diyerek ilk trail’i oluşturmaya başlayabiliriz. Sonrasında aşağıdaki adımlar izlenebilir: + +- İlk olarak bu hizmet için bir isim beklemektedir. “ilkTrail” olarak atama yapalım. +- Sonrasında depolama konumu isteyecektir. Yeni bir S3 bucket oluştur seçeneğini kullanalım. +- “Customer managed AWS KMS key” alanında “New” diyelim ve girdi alanına “cloudWatckKey” girelim. +- Events başlığı altında hangi tip kayıtların tutulmasını istediği soruları. Data-event ve Insights event isteğe göre tutulabilir. Bu aşamada sadece “Managment events” seçeneği ile devam edelim. +- “API activity” olarak hem Read (Okuma) hem de Write (Yazma) işlemlerinin kayıtlarını tutmak istediğimizi belirtelim. ‒ En son aşamada “Create” ile oluşturalım. +- S3 servisine gittiğimizde logların tutulması için bir bucket oluşturulduğu görünür. Bölge, yıl, ay ve günlere göre klasör edilmiştir. Kayıtlara ulaştığımızda JSON formatında kayıt dosyalarımızın oluştuğu görülecektir. + +Bu adımlar sayesinde 90 günü aşan kayıtlar tutulabilir. diff --git a/04-detailed-review-of-featured-services/17-usage-of-cloudformation.md b/04-detailed-review-of-featured-services/17-usage-of-cloudformation.md new file mode 100644 index 0000000..85c670c --- /dev/null +++ b/04-detailed-review-of-featured-services/17-usage-of-cloudformation.md @@ -0,0 +1,43 @@ +# 18. CloudFormation +Önceki başlıkta en temelinde bir web uygulamasının front, back ve veri tabanı olmak üzere 3 temel bileşenden oluştuğundan bahsetmiştik. Bu bileşenler bir altyapı oluştururken instance’ler, gateway’ler, router tabloları gibi birçok alt bileşen kullanmanız gerekecektir. Bu işlem birden fazla sefer yapılıyor ise her seferinde bileşenler oluşturulup sonrasında da gerekli bağlantıları kurmak zahmetli bir hal alacaktır. + +AWS CloudFormation, altyapıyı kod olarak ele alarak ilgili AWS ve üçüncü taraf kaynaklarından oluşan bir koleksiyonu modellemenin, bunları hızlı ve tutarlı bir şekilde sağlamanın ve yaşam döngüleri boyunca yönetmenin kolay bir yolunu sunar. Bir CloudFormation şablonu, istediğiniz kaynakları ve bağımlılıklarını açıklar, böylece bunları bir yığın olarak başlatabilir ve yapılandırabilirsiniz. Kaynakları tek tek yönetmek yerine, bir yığının tamamını tek bir birim olarak, ihtiyaç duyduğunuz sıklıkta oluşturmak, güncellemek ve silmek için bir şablon kullanabilirsiniz. Birden çok AWS hesabı ve AWS bölgesi genelinde yığınları yönetebilir ve sağlayabilirsiniz. + +CloudFormation temelde iki bileşenden oluşur. Bunlardan biri **CloudFormation template** diğeri ise **CloudFormation Stack**’tir. + +İstediğiniz hizmet veya uygulama mimarileri için JSON veya YAML formatında template’ler oluşturabiliriz. AWS CloudFormation’ın bu template üzerinde bulunan hizmetlerin veya uygulamaların hızlı/güvenilir bir şekilde kurulmasını sağlayabilirsiniz. (stack olarak da adlandırılır.) Ayrıca stack’leri gerektiğinde kolayca güncelleyebilir veya çoğaltabilirsiniz. + +Oluşturulan template dosyası yerel makinede veya S3 bucket’inde tutulabilir. Sonrasında ise CloudFormation aracılığıyla bu template dosyasını kullanarak bir stack yaratırsınız. AWS sizin belirlediğiniz kaynakları, belirlediğiniz şekilde oluşturacaktır. + +Bununla beraber stack oluşturulmuş olsa bile template üzerinde yapılan bir güncelleme hazırlanmış stack üzerine uygulanabilir. + +Bir template dosyası aşağıdaki bileşenleri içerebilir: + +- ***Version:*** Template’e versiyon numarası atayarak gelişimini takip etmenize ve birden fazla versiyonunu yaratmanıza imkân sağlar. +- ***Description:*** Template ile ilgili açıklama girmek istenildiği zaman kullanılır. Örneğin bu template neden oluşturuldu, amacı nedir, sonucunda ne olacak tarzı yazılı bir açıklama girilebilir. +- ***MetaData:*** Template’in temel özelliklerini ve template hakkında ek bilgiler tutabilirsiniz. Örneğin AWS::CloudFormation::Designer attribute’u ile bu template’i kim oluşturuldu bilgisi tutulabilir. +- ***Parameters:*** Yaratılacak kaynaklarla ilgili seçilmesi gereken seçenekleri bu kısımda belirleyebilirsiniz. Örneğin EC2 sanal makine yaratılan bir template’e parameters kısmında “KeyPair seçimi” parametresini girerseniz daha sonra bu template’den 177 yaratılacak bir stack’in yaratılma aşamasında kullanıcıya hangi keypair’i kullanmak istediğini soracak ve kullanıcın girdiği değer o sanal makine yaratılırken kullanılacaktır. +- ***Conditions:*** Şartlar bu kısımda belirlenir. Eğer şu seçildiyse bunu yap ama seçilmediyse şunu yap şeklinde koşula göre yön belirleyebilirsiniz. +- ***Outputs:*** Stack yaratımı sonucunda kullanıcıya geri bildirmek istediğiniz bilgileri bu kısımda belirlersiniz. Örneğin, yaratılan EC2 sanal makinelerinin ip adres bilgilerini ekranda kullanıcıya göstermek isterseniz bunu Outputs kısmında seçmeniz gerekmektedir. +- ***Resources:*** Her template’de mutlaka bulunması şart olan tek alandır. O template ile yaratılmasını istediğiniz kaynakları belirlersiniz. + +## 18.1. CloudFormation Servisinin Kullanımı +“Create a stack” diyerek ilk stack’imizi oluşturalım. Bu aşamada template dosyasını AWS tarafından sunulan hazır bir template olarak devam edeceğiz. Normalde template dosyalarının JSON formatında olduğunu belirtmiştik. Ancak AWS tarafından sunulan “Template Designer” ile bir GUI üzerinden bu dosyalar oldukça kolay bir şekilde oluşturulabilir. “Create a stack” dedikten sonra aşağıdaki adımları izleyelim: + +- “Prerequisite - Prepare template” başlığı altında “Template is ready” opsiyonu seçili iken Amazon S3 URL bilgisi ile devam edeceğimiz şekilde ayarlama yapalım. +- “Amazon S3 URL” alanına “https://s3-us-west-2.amazonaws.com/cloudformationtemplates-us-west-2/VPC_AutoScaling_and_ElasticLoadBalancer.template” bilgisini girelim. Bu adresi tarayıcıdan açtığımızda JSON formatında bir template dosyası olduğunu görebiliriz. +- View in Designer dediğimizde Şekil: 61’deki gibi görünüm oluşacaktır. +![282](https://github.com/fatihes1/AWS-ile-Bulut-Bilisimin-Temelleri/assets/54971670/b1a93f95-2c27-46ee-a6f1-3553161d26cd) + +- Stack için bir isim girmemiz beklenmektedir. İsim alanına “ilkCFstack” girelim. +- Instance sayısı olarak 1 ve türü olarak ise t2.micro’yu seçelim. +- “KeyName” değeri olarak daha önceki başlıklarda oluşturduğumuzu key’i (windows sanal makinesine bağlanmak için oluşturulan) seçelim. +- VPC olarak “ilkVPC” ismini verdiğimiz VPC’yi subnet’ler altında da sadece public olan subnet’leri seçelim. +- Permission alanında eğer ki bir yetki gereksinimi varsa gerekli IAM role seçilir, bu template için bir yetki gereksinimi yoktur. +- “Stack creation options” başlığı altında “Time-out” özelliği bulunmaktadır. Belirtilen süre içerisinde stack oluşumu tamamlanmaz ise o ana kadar oluşan tüm kaynakları siler ve oluşturma işlemini durdurur. Şimdilik bu özellikte kapalı olsun. +- “Stack failure options” ise stack oluşturulurken bir hata oluşması durumunda oluşturma işlemini tamamıyla durdurup kaynakları silsin mi yoksa o hatalı adımı atlayıp devam mı etsin seçeneği sunulur. + +Belirtilen URL ile oluşturulacak stack oluşumu biraz süre alabilir. 10-15 dk kadar geçen bir süreden sonra stack tamamıyla oluştuğunda “Outputs” ekranında bize bir URL verir. Bu URL’e tarayıcıdan gittiğimizde AWS tarafından bize dönen “Tebrikler” web sayfası görüntülenir. + +Stack silinmesi durumunda ise stack’i oluşturan tüm kaynaklar silinmeye başlar, böylelikle kullanıcının tüm kaynakları tek tek bulup kaldırmanıza gerek kalmamış olur. + diff --git a/04-detailed-review-of-featured-services/18-usage-of-SNS.md b/04-detailed-review-of-featured-services/18-usage-of-SNS.md new file mode 100644 index 0000000..061ef89 --- /dev/null +++ b/04-detailed-review-of-featured-services/18-usage-of-SNS.md @@ -0,0 +1,69 @@ +# 19. SNS (Simple Notification Service) +Amazon Simple Notification Service (Amazon SNS), hem uygulamadan uygulamaya (A2A) hem de uygulamadan kişiye (A2P) iletişim için tam olarak yönetilen bir mesajlaşma hizmetidir. + +A2A pub/sub işlevi; dağıtılmış sistemler, mikro hizmetler ve olay tabanlı sunucusuz uygulamalar arasında yüksek aktarım hızlı, gönderme tabanlı, çoktan çoğa mesajlaşmaya yönelik konular (topic) sunar. Yayıncı sistemleriniz, Amazon SNS konularını kullanarak mesajları paralel işleme için Amazon SQS kuyrukları, AWS Lambda işlevleri, HTTPS uç noktaları ve Amazon Kinesis Data Firehose gibi çok sayıda abone sistemine dağıtabilir. A2P işlevi kullanıcılara SMS, mobil anlık bildirimler ve e-posta yoluyla uygun ölçekte mesajlar göndermenizi sağlar. + +SNS servisi iki adet topic türü seçmemize imkân sunar: + +- ***Standard Topics:*** Standart konular, uygulamanız birden fazla kez ve düzensiz gelen mesajları işleyebildiği sürece birçok senaryoda kullanılabilir, örneğin: mesajların medya kodlamasına yayılması, dolandırıcılık tespiti, vergi hesaplaması, arama indeksi ve kritik uyarı uygulamaları. +-- Maksimum aktarım hızı (Maximum throughput): Standart konular, saniyede neredeyse sınırsız sayıda mesajı destekler. +-- En iyi çabayla sıralama (Best-effort ordering): Bazen mesajlar yayınlandıklarından farklı bir sırayla teslim edilebilir. + +![283](https://github.com/fatihes1/AWS-ile-Bulut-Bilisimin-Temelleri/assets/54971670/b05b0c7d-3891-4454-a90c-b1507ebb48c7) + +-- En iyi çaba tekilleştirme (Best-effort deduplication): Bir mesaj en az bir kez teslim edilir, ancak bazen bir mesajın birden fazla kopyası teslim edilebilir. +-- Birden çok abonelik türü (Multiple subscription types): Mesajlar, uygulamadan uygulama (A2A) uç noktalarına (Amazon SQS, Amazon Kinesis Data Firehose, AWS Lambda, HTTPS) ve uygulamadan kişi (A2P) uç noktalarına (SMS, mobil push, ve e-posta) gönderilebilir. +-- Mesaj yayılımı (Message fanout): Her hesap 100.000 standart konuyu (topic) destekleyebilir ve her konu 12,5 milyona kadar aboneliği destekler. + +- ***FIFO Topics:*** FIFO konuları, operasyonların ve olayların sırasının kritik olduğu veya yinelemelerin tolere edilemediği durumlarda, uygulamalar arasında mesajlaşmayı geliştirmek için tasarlanmıştır. Örneğin: mesajların banka işlem günlüğüne yayılması, stok izleme, uçuş takibi, envanter yönetimi ve fiyat uygulamaları güncellemesi. +-- Yüksek aktarım hızı (High throughput): FIFO konuları, FIFO konusu başına (hangisi önce gelirse) saniyede 300 veya 10 MB'a kadar iletiyi destekler. +-- Kesin sıralama (Strict ordering): Mesajların yayınlandığı ve teslim edildiği sıra kesinlikle korunur (yani ilk giren ilk çıkar). + +![284](https://github.com/fatihes1/AWS-ile-Bulut-Bilisimin-Temelleri/assets/54971670/546ac5f2-09d5-4de3-88d7-36242016da5d) + +-- Kesin veri tekilleştirme (Strict deduplication): Yinelenen iletiler teslim edilmez. Veri tekilleştirme, mesajın yayınlanma zamanından itibaren 5 dakikalık bir aralık içinde gerçekleşir. +-- SQS FIFO abonelikleri (SQS FIFO subscriptions): Mesajlar, Amazon SQS FIFO kuyruklarına teslim edilebilir. +-- Mesaj yayılımı (Message fanout): Her hesap 1.000 FIFO konusunu (topic) destekleyebilir ve her konu 100 adede kadar aboneliği destekler. + +Olay güdümlü bilgi işlem, yayıncı hizmetleri tarafından tetiklenen olaylara yanıt olarak abone hizmetlerinin otomatik olarak iş gerçekleştirdiği bir modeldir. Bu paradigma, bu iş akışlarını yerine getirmek için toplu ve bağımsız olarak çalışan hizmetleri ayrıştırırken iş akışlarını otomatikleştirmek için uygulanabilir. Amazon SNS, çok çeşitli AWS olay kaynakları ve olay hedefleriyle yerel entegrasyona sahip, olay odaklı bir merkezdir. + +![285](https://github.com/fatihes1/AWS-ile-Bulut-Bilisimin-Temelleri/assets/54971670/c551cd7e-d48d-4f9d-b66c-485ea6b422ac) + +Kısaca, Amazon SNS servisi, çeşitli hedeflere duyurular gönderilmesini sağlar. SNS, bir push yani itme tabanlı duyuru servisidir. Temelde kullanıcılar SNS servisinden talep etmez, SNS o kullanıcılara duyuruları iletir. + +SNS temelde üç bileşenden oluşur: + +- **Publisher:** Duyuruyu gönderen kullanıcı veya gönderilmesi için tetikleyen servis. +- **Topic:** Hedef kitle olarak tanımlanabilir. Duyuruyu alacak grupların oluşturulmasını sağlar. +- **Subscriber:** Oluşturulan topic’e abone olmuş kişiler veya yönlendirilen servisler. + +CloudWatch servisini işlerken belirli şartların sağlanması durumunda alarm oluşturup SNS servisi ile iletmiştik. Bu durumda CloudWatch servisi publisher yani yayıncı konumundadır. Bu tarz durumlar için öncelikle bir topic oluşturulmalıdır. Sonrasında duyuruları almasını istediğimiz kaynakları bu topic’e abone yaparız. Böylelikle durum tetiklenmesinde ileti almalarını sağlarız. + +## 19.1. SNS Servisinin Kullanımı +SNS kontrol paneline ulaştığımızda yan menüde dashboard, topics, subscriptions ve mobile alt başlıkları görünür. Topic ve subscription konularının ne olduğuna yukarıda değinmiştik. Mobile alt başlığında ise mobil uygulamalar ile duyuru oluşturma ve yayma, SMS servisi bulunmaktadır. + +![286](https://github.com/fatihes1/AWS-ile-Bulut-Bilisimin-Temelleri/assets/54971670/97175407-1c9f-407b-b075-fc99b171fd7b) + +Bu kılavuz kapsamında bir topic oluşturalım ve e-posta atmayı deneyelim. Bu işlemler aşağıdaki adımlar uygulanabilir: + +- Topics alt başlığına gidelim ve ‘Create Topic’ butonu ile ilk konuyu oluşturmaya başlayalım. +- İlk olarak hangi tür bir topic oluşturmak istediğimiz sorulur. Bu kılavuz kapsamında standard türü kullanacağız. +- Hizmet bir isim ataması bekler. İsim olarak ‘alarmlar2’ diyelim. +- Display name özelliği ise kullanıcılara yani abonelere e-posta attığımızda görünecek isimdir. ‘Seminer Alarm’ olarak belirleyebiliriz. +- Şifreleme (Encryption) seçeneğini disable olarak belirleyelim. Özel veriler olması durumunda bu özelliğin aktif olması önem arz eder. +- Erişimi türü başlığında ise metot olarak ‘Basic’ seçelim. Advanced seçmemiz durumunda bir JSON policy dosyası oluşturmamız gerekir. Bu aşamada basit bir SNS topic’i oluşturduğumuz için sorun olmayacaktır. +- Bu topic üzerinden kimler mesaj iletebilir özelliği için “Only the topic owner” diyelim. Böylelikle sadece bu konuyu oluşturan kullanıcı bu topic üzerinden duyuru iletebilir. +- Bu konuya kimler abone olabilir kısmında ise “Everyone” diyerek ilerleyelim. Birazdan bir e-postayı abone yaparak e-posta ileteceğiz. +- Delivery retry policy (HTTP/S) başlığı altında bir HTTPS uç noktasına iletmemiz durumunda kaç deneme yapması gerektiğini, denemeler arasında ne kadar süre olmasını istediğimiz gibi değerleri tanımlarız. Bu aşamada bir uç noktaya duyurusu yapmayacağımız için varsayılan olarak bırakalım. +- Delivery status logging başlığı altında ise duyurunun kullanıcıya iletilip iletilmediğine dair bilgi almak için kullanılır. Sunduğu seçeneklerde e-posta olmadığı için varsayılan ayarı ile bırakalım. Son olarak “Create” diyerek konuyu oluşturalım. +- Subscriptions alt başlığına gidelim ve “Create subscriptions” diyelim. İlk olarak “topic” seçmemizi isteyecektir. Az önce oluşturulan “alarmlar2” konusunu seçelim. +- Protocol olarak email ve end-point olarak ise dilediğiniz bir e-posta hesabınızı girebilirsiniz. Oluştur diyelim sonrasında girdiğimiz e-posta adresine gelen onay mailindeki talimatı (onay bağlantısı) uygulayarak konuya abone olalım. +- Topics alt başlığına geri dönelim ve oluşturulan “alamlar2” konusuna tıklayalım. +- “Publish message” butonu ile ilk duyurumuzu oluşturalım. +- İlk olarak bir konu belirleyelim. Bu aşamada “Deneme Konu” diyebiliriz. Sonrasında e-posta içeriğini girelim. Bu alana herhangi bir şey yazabilirsiniz. +- En altta ise “Message attributes” başlığı bulunmaktadır. Bu aşamada mail duyuruları için anlamsız gelse de HTTPS uç noktalarına bu attributes özelliği ile gerekli parametreleri geçmek için kullanabiliriz. +- “Publish message” butonu ilk duyurumuzu yayınlayalım. E-posta dakikalar içerisinde hedef e-posta adresine ulaşacaktır. + +SNS servisinde kullanıcılar bu ara yüzü kullanarak e-posta atmazlar. Bunun yerine diğer AWS servisleri ile SNS servisinin tetiklenmesini sağlarlar. + +Mobile alt başlığında bulunan push notifications seçeneği mobil uygulamalara bildirim atmanıza imkân tanır. Google, Microsoft ve Apple gibi firmaların kendi push notification servisleri bulunur. Bu servisleri kullanarak AWS üzerinden bildirim atmanıza imkân tanır. diff --git a/04-detailed-review-of-featured-services/19-usage-of-SQS.md b/04-detailed-review-of-featured-services/19-usage-of-SQS.md new file mode 100644 index 0000000..5ae6195 --- /dev/null +++ b/04-detailed-review-of-featured-services/19-usage-of-SQS.md @@ -0,0 +1,33 @@ +# 20. SQS (Simle Queue Service) +Amazon Simple Queue Service (SQS), dağıtılmış sistemleri ve sunucusuz uygulamaları birbirinden ayırmanıza ve ölçeklendirmenize imkân tanıyan, tam olarak yönetilen bir iletileri kuyruğa alma hizmetidir. SQS, mesajlaşmaya yönelik ara yazılımları yönetmenin ve işletmenin getirdiği karmaşıklık ile ek iş yükünü ortadan kaldırarak geliştiricilerin farklı işlere odaklanmasına imkân tanır. SQS ile ileti kaybı yaşamadan veya diğer hizmetlerin erişilebilir olmasına gereksinim duymadan yazılım bileşenleri arasında dilediğiniz hacimde ileti gönderebilir, depolayabilir ve alabilirsiniz. AWS Management Console, Command Line Interface veya tercih ettiğiniz SDK'yi ve üç basit komutu kullanarak SQS'yi dakikalar içinde kullanmaya başlayabilirsiniz. + +SQS iki tür ileti kuyruğu sunar. **Standart kuyruklar** tarafından en yüksek aktarım hızı, en iyi çaba ilkesine göre sıralama ve en az bir kez teslim olanakları sunulur. SQS **FIFO kuyrukları,** iletilerin tam olarak bir kez ve tam olarak gönderildikleri sırada işlenmesi konusunda güvence sağlayacak şekilde tasarlanmıştır. + +Bu servis kapsamında SNS servisinde olduğu gibi standart ve FIFO olmak üzere iki kuyruk türü sunulmaktadır. + +Bu servisi bir senaryo üzerinden incelemek gerekirse, bir otel için online rezervasyon servisimiz olduğunu varsayalım. Bu konuya kadar gördüğümüz üzere front-end, back-end ve veri tabanı için sunucular barındırıyoruz. Kullanıcı client üzerinden rezervasyon seçimini yapıyor sonrasında bu seçimler back-end servisi üzerinde işlenerek veri tabanına yazılıyor ve kullanıcıya gerekli dönüt yapılıyor. + +Otel olarak bir kampanya yaptığımızı varsayalım. Sistem yoğun trafik altında kalacaktır ve bir süre sonra servis hizmet reddi verecektir. Kullanıcılar sistemin web sayfasına dahi giremeyecektir. Sistemin tasarımı Şekil: 66’daki gibi düşünülebilir. + +![287](https://github.com/fatihes1/AWS-ile-Bulut-Bilisimin-Temelleri/assets/54971670/b5915989-3548-436c-b070-c164114fba9a) + +Bu sistemde kullanıcıların hata alması yerine başka bir çözüm bulunması gerekmektedir. Fronend web sunucularını ile back-end web sunucuları arasında bulunan Elactic Load Balancing servisini kaldırıp buraya boş bir kova koyduğumuzu düşünelim. Tüm istekler bu kovaya düşer ve back-end sunucu ve veri tabanı uygun oldukça kovadan gelen istekler çekilir. Böylelikle sisteme erişen kullanıcılara direkt hata vermek yerine “İşleminiz yapılıyor…” gibi bir ekran ile çok kısa bir süre bekleterek işlemi gerçekleştirebiliriz. + +AWS de bu kova işlemini SQS servisi yapmaktadır. Standart kuyrukta sıra garantisi yoktur ancak limitsizdir. FIFO kuyruğu içe sıraya önem verir ancak limit barındırır. + +## 20.1. SQS Servisinin Kullanımı +![288](https://github.com/fatihes1/AWS-ile-Bulut-Bilisimin-Temelleri/assets/54971670/66604505-3675-4f35-a4e2-8ae2fd6fc8ca) + +SQS kontrol paneline ulaşalım ve ilk kuyruğu oluşturmaya başlayalım. Bu işlem için aşağıdaki adımları takip edebiliriz: + +- Create Queue diyerek ilk kuyruğumuzu oluşturmaya başlayalım. +- Kuyruk türü olarak standard kuyruk seçeneğini kullanalım. +- İsim olarak “ilkSQS” diyebiliriz. +- Konfigürasyon ayarlarında “Visibility timeout consumer” yani mesajı çekecek hizmet iletiyi çektiğinde bu iletici kuyrukta ne kadar kalsın ayarlamasıdır. Varsayılan olarak bırakalım. +- “Message retention period” ise mesaj kaç güne kadar kuyrukta bekleyebilsin ayarlamasıdır. +- “Maximum message size” mesajın maksimum büyüklüğünü belirlediğimiz alandır. +- “Delivery delay” seçeneğinde ise ileti kuyruğa alındığında ne kadar süre erişilmesine izin verilmemesi gerektiğini belirttiğimiz değerdir. +- “Receive message wait time” bir istek kuyrukta ne kadar süre bekleyeceğini tanımlar. Yani ileti çekici kaç saniye aralıklarla bir ileti çekmelidir. +- “Dead-letter queue” alt başlığında işlenemeyen bir iletinin belirli bir deneme sayısından sonra incelenmek üzere başka kuyruğa alınmasıdır. +- Diğer ayarları varsayılan olarak bırakalım ve “Create queue” diyelim. +- SQS servisi normalde AWS SDK ile programın içine kod olarak eklenir. Ama simüle etmek için oluşturulan “ilkSQS” kuyruğu seçili iken; “send and receive messages” denilebilir. Sonra yine aynı butona tıklandığında en aşağıda “pull” diyerek az önce yayınlanan mesaj görüntülenebilir. diff --git a/04-detailed-review-of-featured-services/20-usage-of-SWF.md b/04-detailed-review-of-featured-services/20-usage-of-SWF.md new file mode 100644 index 0000000..65ca249 --- /dev/null +++ b/04-detailed-review-of-featured-services/20-usage-of-SWF.md @@ -0,0 +1,17 @@ +# 21. SWF (Simple Workflow Service) +Amazon Simple Workflow Service (Amazon SWF), dağıtılmış bileşenler arasında çalışmayı koordine eden uygulamalar oluşturmayı kolaylaştırır. Amazon SWF'de görev, uygulamanızın bir bileşeni tarafından gerçekleştirilen mantıksal bir çalışma birimini temsil eder. Uygulama genelinde görevleri koordine etmek, uygulamanın mantıksal akışına göre görevler arası bağımlılıkları, zamanlamayı ve eş zamanlılığı yönetmeyi içerir. Amazon SWF, ilerlemelerini +takip etme ve durumlarını koruma gibi temel karmaşıklıklar hakkında endişelenmeden görevleri uygulama ve koordine etme konusunda size tam kontrol sağlar. + +![289](https://github.com/fatihes1/AWS-ile-Bulut-Bilisimin-Temelleri/assets/54971670/03154a4a-9187-40b9-8b26-64d1cd9d409b) + +Amazon SWF'yi kullanırken görevleri gerçekleştirmek için çalışanları (workers) uygularsınız. Bu çalışanlar, Amazon Elastic Compute Cloud (Amazon EC2) gibi bulut altyapısında veya kendi tesislerinizde çalışabilir. Uzun süren veya başarısız olabilen, zaman aşımına uğrayabilen, yeniden başlatma gerektirebilecek ya da değişen aktarım hızı ve gecikme süresiyle tamamlanabilecek görevler oluşturabilirsiniz. Amazon SWF, görevleri depolar ve hazır olduklarında çalışanlara atar. İlerlemelerini izler ve tamamlanma ayrıntıları da dahil olmak üzere durumlarını korur. Görevleri koordine etmek için Amazon SWF'den her görevin en son durumunu alan ve sonraki görevleri başlatmak için kullanan bir program yazarsınız. Amazon SWF, uygulamanın bağımsız bileşenlerdeki arızalara karşı dayanıklı olması için uygulamanın yürütme durumunu dayanıklı bir şekilde korur. Amazon SWF ile bu uygulama bileşenlerini bağımsız olarak uygulayabilir, dağıtabilir, ölçeklendirebilir ve değiştirebilirsiniz. + +Amazon SWF, çeşitli uygulama gereksinimlerini destekleyecek özellikler sunar. Medya işleme, web uygulaması arka uçları, iş süreci iş akışları ve analitik işlem hatları dahil olmak üzere görevlerin koordinasyonunu gerektiren bir dizi kullanım durumu için uygundur. + +Kısaca özetlemek gerekirse; SWF servisi bir işlemin durumunu başından sonuna kadar takip etmek için kullanılır. Bu servis, alt görevlerin durumlarını ve işlem sonuçlarını tutar. SWF servisi temelde bir iş yapmıyor, yapılan işin düzgün sırayla yapılabilmesini ve gerekli aksiyonların tetikletilebilmesini sağlar. Üç bölümden oluşur: + +- ***Workflow Starter:*** Uygulama başlatıcıdır. +- ***Worflow Decider:*** Koordinasyon sağlar. Çıktılara göre başka durumları ve servisleri tetikleyebilir. Örneğin bir online alışveriş sitesindeki stok kontrolü işlemi gibi. +- ***Workflow Worker:*** Esas işi yapan ve sonuçları dönen bileşen olarak düşünülebilir. + +Aslında workflow, SQS hizmetinde bir kuyruk yaratarak ve sonrasında bu kuyruğu programlayarak üretilebilir. Ancak; AWS bunu ayrı bir servis olarak sunmanın kullanıcılara kolaylık sağlayacağına inanmıştır. Bununla beraber kimi durumlarda SWF, SQS hizmeti yerine de kullanılabilir. diff --git a/04-detailed-review-of-featured-services/21-usage-of-SES.md b/04-detailed-review-of-featured-services/21-usage-of-SES.md new file mode 100644 index 0000000..efd0728 --- /dev/null +++ b/04-detailed-review-of-featured-services/21-usage-of-SES.md @@ -0,0 +1,48 @@ +# 22. SES (Simple Email Service) +Amazon Simple Email Service (SES), geliştiricilerin herhangi bir uygulamadan posta göndermesine olanak tanıyan uygun maliyetli, esnek ve ölçeklenebilir bir e-posta hizmetidir. Amazon SES'yi işlemsel, pazarlama veya toplu e-posta iletimi gibi birkaç farklı e-posta kullanım senaryosunu destekleyecek şekilde hızlıca yapılandırabilirsiniz. Amazon SES'nin esnek IP dağıtımı ve e-posta kimlik doğrulaması seçenekleri, teslim edilebilirliği artırır ve gönderenin itibarını korur. Analiz verilerinin gönderilmesi sayesinde de her bir e-postanın etkisi ölçülür. Amazon SES sayesinde e-postaları güvenli biçimde, global olarak ve uygun ölçekte gönderebilirsiniz. + +Amazon SES, Amazon SES konsolu, basit posta aktarma protokolü (SMTP) arayüzü ve Amazon SES API’sı dahil olmak üzere e-posta gönderimi için çeşitli yöntemler sunar. AWS komut satırı arabirimi (AWS CLI) veya bir AWS yazılım geliştirme kiti (SDK) kullanarak API’ya erişebilirsiniz. + +## 22.1. SES Esnek Dağıtım Seçenekleri + +### 22.1.1. Paylaşımlı IP Adresleri +Varsayılan olarak Amazon SES, diğer Amazon SES müşterileriyle paylaşılan IP adreslerinden e-posta gönderir. Paylaşılan adresler, kurulu IP’lerle hemen gönderime başlamak isteyen birçok müşteri için mükemmel bir seçenektir. Temel Amazon SES fiyatlandırmasına dahildir ve yüksek teslim edilebilirlik sağlamak için itibarları dikkatle izlenir. + +### 22.1.2. Özel IP Adresleri +Kendi IP itibarını yönetmek isteyen müşteriler için Amazon SES hesabınızla kullanmak amacıyla özel IP adresleri kiralayabilirsiniz. Bu IP adresi havuzlarını oluşturmak için özel IP havuzları özelliğini de kullanabilirsiniz. Müşteriler bu özel IP’lerden gelen tüm trafiği gönderebilir veya belirli kullanım örneklerini belirli IP’lerle uyumlu hale getirmek için yapılandırma kümelerini kullanabilir. + +### 22.1.3. Sahip Olunan IP Adresleri +Amazon SES ayrıca Bring Your Own IP (BYOIP) özelliğini de destekler. Bu özellik, Amazon SES aracılığıyla e-posta göndermek için sahip olduğunuz bir IP adresi aralığını kullanmanızı sağlar. Bu, mevcut yatırımlardan yararlanmayı ve diğer e-posta servis sağlayıcılarından geçişi kolaylaştırır. + +Kısaca özetlemek gerekirse; AWS tarafından sunulan e-posta gönderim servisidir. Uygulamalar aracılığıyla e-posta iletimi yapar. Teslim edilemeyen iletileri kopyalamak yani depolamak için bir e-posta sunucusu lazımdır. + +Gmail, hotmail gibi bir servis değildir. Yani günlük kullanım için tasarlanmamıştır. Binlerce farklı e-posta adresine, tek bir API çağrısı üzerinden kampanya maili gönderme gibi senaryolarda kullanılır. Bununla birlikte iletilme oranları gibi istatiksel değerleri de döndürür. + +SMTP server olarak, AWS SDK ile yarattığınız uygulamanın içinden ya da AWS CLI kullanarak komut satırından e-posta gönderilmesini sağlar. + +## 22.2. SES Servisinin Kullanımı +AWS yönetim konsolu üzerinden SES kontrol paneline ulaştıktan sonra “create identity” seçeneğine tıklayalım ve sonrasında aşağıdaki adımları takip edelim: + +- Identity details başlığı altında “domain” ve “Email address” olmak üzere iki seçenek bulunur. Domain alanı seçilmesi durumunda bir domain tanıtılır ve sonrasında o domain’e bağlı olan tüm e-posta adresleri otomatik eklenmiş olur. Biz “Email address” seçeneği ile ilerleyelim ve bir e-posta adresi girelim. +- E-posta adresine gelen doğrulama mailini onaylayalım. +- Domain tanıtımı yapılması durumunda ise onay işlemi bir TXT bir CNAME ve bir tane de MX kaydı oluşturularak yapılır. +- Eğer ki domain AWS üzerinden temin edilmiş ise “useRoute53” seçeneği de kullanılabilir. Bu alan kayıtlarını otomatik yapacaktır. +- E-posta gönderirken başlangıç aşamasında spam olma durumuna karşın sadece onaylanan e-postalar ve domainlere e-posta gönderilebilir. Sonrasında belirli bir süre geçtikten sonra “Request a sending limit increase” diyerek onaylanmamış e-postalara da ileti gönderebilir hale gelirsiniz. +- Solda bulunan “Dedicated IPs” alt başlığı sayesinde hizmete sabit bir IP atayabilirsiniz. Bazı durumlarda mailin sabit bir IP adresinden gitmesi gerekmektedir. +- Solda bulunan “Configuration sets” alt başlığı sayesinde ise gönderilen mailin açılıpaçılmadığı gibi e-posta ait durum raporlarının CloudWatch, SNS veya Kinesis hizmetlerinde tutulmasını sağlayabilirsiniz. “Create set” diyerek bir set oluşturalım ve adını “ConfigSet” olarak belirleyelim. Sonrasında başka bir işlem yapmamıza gerek yok. +- Solda bulunan “Cross-account notifications” alt başlığı sayesinde başka bir hesap adına gönderilen e-postalar ile ilgili bildirim almanızı sağlar. +- Solda bulunan “Email templates” alt başlığı sayesinde bazı kalıp e-postalar atabilirsiniz. E-posta template’i sabittir. Sadece kullanıcı adı gibi değerler değişir. Bunun için bir JSON dosyası oluşturalım ve adını “myTemplate.json” olarak belirleyelim. Dosya örneğin şu şekilde olabilir: +![290](https://github.com/fatihes1/AWS-ile-Bulut-Bilisimin-Temelleri/assets/54971670/57bb8e74-f357-4832-8ed7-d66454d16d22) + +- Bu dosyaya “SES” adını verdiğimiz bir klasör/dizinde tutalım. +- Terminal üzerinden bu “SES” klasörünün olduğu dizine ulaşalım. +- ``aws ses create-template --cli-input-json file://myTemplate.json`` komutunu girelim ve template’i ses servisine tanımlayalım. ‒ +- Sonrasında ``myemail.json``adında bir JSON dosyası da mail için oluşturalım. Bu JSON dosyası şu şekilde görünecektir: +![291](https://github.com/fatihes1/AWS-ile-Bulut-Bilisimin-Temelleri/assets/54971670/651f2f70-72ae-4b50-8f66-a8f0d834a373) + +Bu JSON dosyasında “Template” değeri az önce yüklediğim template iken “ConfigurationSetName” değeri ise oluşturduğumuz “ConfigSet” bileşeninden gelir. Son adım olarak aşağıdaki komutu girelim: +``aws ses send-templated-email --cli-input-json file://myemail.json`` + +Bu komut sayesinde verilen kullanıcı ve ürün adi değişken değerlerine göre “ToAddresses” içerisinde bulunan e-posta adresine e-posta iletilmiş olur. + + diff --git a/04-detailed-review-of-featured-services/22-usage-of-amazon-kinesis.md b/04-detailed-review-of-featured-services/22-usage-of-amazon-kinesis.md new file mode 100644 index 0000000..b9d32b3 --- /dev/null +++ b/04-detailed-review-of-featured-services/22-usage-of-amazon-kinesis.md @@ -0,0 +1,48 @@ +# 23. Amazon Kinesis +Amazon Kinesis gerçek zamanlı akış verilerini toplamayı, işlemeyi ve analiz etmeyi kolaylaştırdığından, zamanında öngörüler elde edebilir ve yeni bilgilere hızlı tepki verebilirsiniz. Amazon Kinesis her ölçekteki akış verilerini uygun maliyetle işlemeye yönelik önemli özellikler sunduğu gibi, uygulamanızın gereksinimlerine en uygun araçları seçme esnekliği de getirir. Amazon Kinesis ile makine öğrenimi, analiz ve diğer uygulamalar için video, ses, uygulama günlükleri, web sitesi tıklama akışları ve IoT telemetri verileri gibi gerçek zamanlı veriler alabilirsiniz. Amazon Kinesis gelen verileri hemen işlemenize, analiz etmenize ve bu verilere anında yanıt vermenize olanak tanır. İşleme sürecinin başlaması için tüm verilerinizin toplanmasını beklemek zorunda kalmazsınız. + +Kinesis servisini bir senaryo üzerinden ele almak istersek şu senaryoya bakabiliriz; bir banka sistemimiz var ve müşterilerin yaptığı her işlem sonucu ortada bir dolandırıcılık var mı diye kontrol ediyoruz. Dolandırıcılık var ise kartı bloke etmemiz ve müşteriye bilgi verilmesi gerekiyor. Yani bir “fraud detection” işlemi yapıyoruz. + +Fraud detection her alışverişle ilgili kart bilgisi, lokasyon gibi değerleri tutar. Diyelim ki bu bilgileri bir veri tabanına kaydediyor. Algoritma belli aralıklarla analiz yapıp dolandırıcılık olup olmadığına karar veriyor. Bu senaryoda veri toplaması, düzenlenmesi ve kaydedilmesi bu sürece ekstra külfet ekliyor. Diğer bir sorun ise gerçek zamanlı bir analizin yapılamıyor olmasıdır. Belirli aralıklarla yapılan kontrolün sonucu, tespit için sistem geç kalmış olabilir. + +AWS Kinesis veri üreticisi ile veri tüketici arasında mesajları yayınlamak için kanal görevi gören, gerçek zamanlı veri toplama-dağıtma servisidir. SQS kuyruklarına benzerdir ve 3 temel bileşene sahiptir. + +- EC2 Instances, Client, Server gibi **veri üreten sistemler,** +- SQS kuyruğuna benzer yapıda olan ve Shard adı verilen kayıtlardan oluşan **Kinesis kuyruğu**, +- Ve **verileri okuyan** EC2 Instances gibi cihazlar. Sonrası bu okunan veriler S3, DynomoDB, RedShift gibi diğer servislere aktarılabilir. + +Amazon Kinesis altında Video Streams, Data Streams, Data Firehouse ve Data Analytics olmak üzere dört ayrı özellik barındırır. + +## 23.1. Kinesis Video Streams +Amazon Kinesis Video Streams, bağlantılı cihazlardan AWS'ye analiz, makine öğrenimi (ML), kayıttan yürütme ve diğer işlemler için video akışını kolaylaştırır. Kinesis Video Streams, milyonlarca cihazdan akışa alınan video verilerini almak için gereken tüm altyapıyı otomatik olarak sağlar ve esnek şekilde ölçekler. Akışlarınızdaki video verilerini dayanıklı şekilde depolar, şifreler ve dizinler, kullanımı kolay API’ler aracılığıyla verilerinize erişmenize olanak sağlar. Kinesis Video Streams, canlı ve istek üzerine görüntüleme için videoları kayıttan yürütmenin yanı sıra Amazon Rekognition Video ile entegrasyon ve Apache MxNet, TensorFlow ve OpenCV gibi makine öğrenimi çerçeveleri için kitaplıklar aracılığıyla görüntü işleme ve video analizinden yararlanan uygulamaları hızlı bir şekilde oluşturmanızı mümkün kılar. Kinesis Video Streams, basit API’ler aracılığıyla web tarayıcıları, mobil uygulamalar ve bağlantılı cihazlar arasında gerçek zamanlı medya akışını ve etkileşimleri mümkün kılan açık kaynaklı WebRTC projesini de destekler. Görüntülü sohbet ve eşler arası medya akışı, yaygın kullanım alanlarından bazılarıdır. + +Kullanmaya başlamak için AWS Management Console'dan birkaç tıklamayla bir Kinesis video akışı oluşturun. Daha sonra cihazlarınızda Kinesis Video Streams SDK’sını yükleyebilir ve kayıttan yürütme, depolama ve analiz için AWS’ye medya akışını başlatabilirsiniz. Kinesis Video Streams ile yalnızca kullandığınız kadar ödersiniz. Peşin taahhüt ya da minimum ücret yoktur. + +Kısaca; video ve ses akışlarını AWS bulutuna aktarılarak daha sonra makine öğrenmesi uygulamaları gibi uygulamalar tarafından işlenmesine imkân tanır. + +## 23.2. Kinesis Data Streams +Amazon Kinesis Data Streams, büyük ölçüde ölçeklenebilir, dayanıklı ve düşük maliyetli bir veri akışı hizmetidir. Kinesis Veri Akışları, web sitesi tıklama akışları, veri tabanı olay akışları, finansal işlemler, sosyal medya akışları, BT günlükleri ve konum izleme olayları gibi yüz binlerce kaynaktan saniyede gigabaytlarca veriyi sürekli olarak yakalayabilir. Toplanan veriler, gerçek zamanlı gösterge tabloları, gerçek zamanlı anormallik algılama, dinamik fiyatlandırma gibi gerçek zamanlı analitik kullanım durumlarına izin vermek için milisaniyeler içinde sunulur. + +Amazon Kinesis Data Streams'te yönetmeniz gereken bir sunucu yoktur. İstek üzerine modu, çalışan uygulamalar için gereken kapasiteyi tedarik etme veya yönetme ihtiyacını ortadan kaldırır. Kapasitenizi Kinesis Data Streams ile saniyede gigabaytlarca veri akışı sağlayacak şekilde ayarlayın. İstek üzerine moduyla otomatik tedarik ve ölçeklendirmeye erişin. + +Kinesis Data Streams'te saatlik 0,015 USD'den başlayan fiyatlarla yalnızca kullandığınız kadar ödeme yapın. İstek üzerine modu sayesinde, fazla tedarik etme konusunda endişelenmenize gerek yoktur. AWS'de hızla analiz, sunucusuz ve uygulama entegrasyonu çözümleri oluşturmak için diğer AWS hizmetleriyle yerleşik entegrasyonları kullanın. + +Kısaca; bir anahtar (key) kullanarak, kayıtların yönlendirilmesi sıralanması, **birden fazla istemcinin** gelen iletileri aynı anda okumasını ve 7 güne kadar geçmiş mesajların tekrarlanmasını sağlar. Birden fazla istemcinin okumasındaki en önemli sebep ise bir istemci fraud detection yaparken diğer bir istemci demografik ayrım yapan grafikler oluşturabilir. + +SQS’in asıl amacı ise birden fazla servis arasında mesaj alışverişine tampon olmaktı. Bir mesaj gelir, saklanır, tek bir tüketici okuyabilir ve sonrasında silinir. + +## 23.3. Kinesis Data Firehouse +Amazon Kinesis Data Firehose, akış verilerini veri depolarına ve analiz araçlarına yüklemenin en kolay yoludur. Kinesis Data Firehose, yüz binlerce kaynaktan gelen büyük hacimli akış verilerini yakalamayı, dönüştürmeyi ve Amazon S3, Amazon Redshift, Amazon OpenSearch Service, Kinesis Data Analytics, genel HTTP uç noktaları ve bunlara yüklemeyi kolaylaştıran tam olarak yönetilen bir hizmettir. Datadog, New Relic, MongoDB ve Splunk gibi servis sağlayıcılar, neredeyse gerçek zamanlı analitik ve içgörü sağlar. + +Akış verilerini kolayca yakalamanızı, dönüştürmenizi ve yüklemenizi sağlar. Bir teslim akışı oluşturur, hedefinizi seçer ve yalnızca birkaç tıklamayla gerçek zamanlı veri akışını başlatabilirsiniz. İşlem, bellek ve ağ kaynaklarını sürekli yönetim olmadan otomatik olarak tedarik edilir ve ölçeklendirilir. + +Ham akış verilerini Apache Parquet gibi formatlara dönüştürebilir ve kendi işleme hatlarınızı oluşturmadan akış verilerini dinamik olarak bölümlere ayırabilirsiniz. Amazon Simple Storage Service (S3) ve Amazon Redshift gibi 30’dan fazla tam olarak entegre edilmiş AWS hizmeti ve akış hedefiyle bağlantı kurmanıza imkân tanır. + +Kısaca; Akışlı verileri düzenleyip S3 ya da RedShift gibi hedeflere kaydeder ve otomatik olarak gereksinimlere göre genişleyebilir. + +## 23.4. Kinesis Data Analytics +Apache Flink uygulamalarınızı sürekli çalıştırır ve hiçbir kurulum maliyeti ve sunucu yönetme ihtiyacı olmadan otomatik olarak ölçeklendirir. Amazon Kinesis Data Streams ve Amazon MSK gibi veri kaynaklarından saniyenin altında gecikme süreleriyle veri işleyebilir ve olaylara gerçek zamanlı olarak müdahale edebilirsiniz. + +Yönetilen Apache Zeppelin not defterlerini Kinesis Data Analytics Studio ile kullanarak akış verilerini etkileşimli bir şekilde analiz etmenize imkân tanır. SQL, Java, Python veya Scala'da uygulamalar geliştirebilir. Zaman aralıklarında birleştirme, filtreleme, toplama ve diğer işlemleri gerçekleştirebilirsiniz. + +Kısaca; Firehouse ve Streams servislerin bir araya getirilmiş hali olarak düşünülebilir. Akışlı veriler üstünde standart SQL sorguları çalıştırma imkânı verir diff --git a/04-detailed-review-of-featured-services/23-usage-of-aws-config.md b/04-detailed-review-of-featured-services/23-usage-of-aws-config.md new file mode 100644 index 0000000..ce1b9e8 --- /dev/null +++ b/04-detailed-review-of-featured-services/23-usage-of-aws-config.md @@ -0,0 +1,51 @@ +# 24. AWS Config +AWS Config, AWS kaynaklarınızın yapılandırmalarını incelemenizi, denetlemenizi ve değerlendirmenizi sağlayan bir hizmettir. Config, devamlı olarak AWS kaynak yapılandırmalarınızı izler ve kaydeder; kayıtlı yapılandırmaları istenen yapılandırmalara göre değerlendirmenizi otomatikleştirmenizi sağlar. Config ile AWS kaynakları arasındaki ilişki ve yapılandırmalardaki değişiklikleri inceleyebilir, ayrıntılı kaynak yapılandırması geçmişlerine bakabilir ve dahili yönergelerinizde belirtilen yapılandırmalara göre genel uyumluluğunuzu belirleyebilirsiniz. Bu sayede mevzuat uyumluluğu denetimi, güvenlik analizi, değişiklik yönetimi ve operasyonel sorun gidermeyi daha basit hale getirebilirsiniz. + +AWS Config ile AWS kaynaklarınızın yapılandırma değişikliklerini sürekli izleme ve kaydetme imkânınız olur. Ayrıca, Config dilediğiniz zaman AWS kaynaklarınızın, bu kaynakların yapılandırmalarının ve EC2 bulut sunucuları içindeki yazılım yapılandırmalarının envanterini çıkarmanıza olanak tanır. Önceki bir duruma göre değişiklik algılandığında incelemeniz ve harekete geçmeniz için bir Amazon Simple Notification Service (SNS) bildirimi gönderilebilir. + +![292](https://github.com/fatihes1/AWS-ile-Bulut-Bilisimin-Temelleri/assets/54971670/a431c790-85e8-4f55-b13c-7c6cfced43a0) + +AWS Config, AWS kaynağı yapılandırmalarınızın kurumunuzun politikaları ve yönergeleriyle genel mevzuat uyumluluğu durumunu sürekli olarak denetlemenize ve değerlendirmenize imkân tanır. AWS Config, AWS kaynaklarını tedarik etmeye ve yapılandırmaya yönelik kurallar sağlama olanağı sunar. Bu kurallar bağımsız olarak sağlanabilir veya tek bir tıklamayla kuruluşunuzun tamamına dağıtılabilen bir paket (uyumluluk paketi olarak da bilinir) içinde uyumluluğu düzeltme eylemleriyle birleştirilmiş olabilir. Kurallarınızdan farklı olan kaynak yapılandırmaları veya yapılandırma değişiklikleri, sürekli olarak uyarı alabilmeniz için otomatik olarak Amazon Simple Notification Service (SNS) bildirimlerini ve Amazon CloudWatch events'i tetikler. Ayrıca, genel mevzuat uyumluluğu durumunuzu denetlemek ve mevzuata uyumlu olmayan kaynakları hızla tespit etmek için görsel panodan da yararlanabilirsiniz. + +AWS Config ile kaynaklar arasındaki ilişkileri izleyebilir ve değişiklik yapmadan önce kaynak bağımlılıklarını inceleyebilirsiniz. Bir değişiklik gerçekleştiğinde kaynağın yapılandırma geçmişini hızla gözden geçirebilir ve geçmişteki herhangi bir noktada kaynağın yapılandırmasının nasıl göründüğünü öğrenebilirsiniz. Config, bir kaynak yapılandırmasında yapılan bir değişikliğin diğer kaynaklarınızı nasıl etkileyeceğini değerlendirmek için kullanabileceğiniz bilgiler sağlayarak değişiklikle ilgili olayların etkisinin en aza inmesini sağlar. + +CloudTrail bölümünde, servis için kayıt defteri niteliğinde bir servis olduğundan bahsetmiştik. Config servisi ise ne işlem yapıldığını tutar. Farklı şöyle düşünebiliriz: + +- CloudTrail: +-- AWS hesabınızın yönetimini, uyumluluk, operasyonel denetim ve risk denetimini sağlayan biz hizmettir. CloudTrail ile, AWS altyapınızı kaydedebilir, sürekli izleyebilir ve koruyabilirsiniz. +-- CloudTrail servisi kayıtlarıyla “Kim?” sorusuna cevap verir. +-- Operasyonel denetim ve risk denetimde kullanılabilir. + +- AWS Config: +-- AWS kaynaklarınızın konfigürasyonlarını denetlemenizi ve değerlendirmenizi sağlayan bir hizmettir. Config, AWS kaynak konfigürasyonlarını sürekli olarak izler ve kaydeder. İstenen konfigürasyonların değerlendirmesini otomatikleştirir. +-- Config servisi kayıtlarıyla, “Nasıl?” sorusunun cevabını verir. +-- Bütünlük ve uyumluluk denetiminde kullanılabilir. + +AWS Config, AWS kaynaklarının konfigürasyonlarını, gözlemenizi, denetlemenizi ve değerlendirmenizi sağlayan hizmettir. İki temel hizmet sunmaktadır: + +- Devreye alındığı andan itibaren belirtilen kaynakları izler. Tüm konfigürasyon değişikliklerini not eder ve zaman çizelgesi içeren bir ekranda raporlar. Bir önceki gün sağlıklı çalışan bir servis bir sonraki gün çalışmıyor ise bu ekrandan inceleyerek sorunun neden oluştuğunu anlaşılabilir. ‒ +- Uyumluluk kuralları yaratmaya imkân veren “Rules” hizmeti vardır. Config servisinin, bu uyumluluk kurallarına uyup uymadığını denetler. Örneğin, yaratılan tüm EBS volume’lerinin bir sanal makineye bağlı olma kuralı tanımlayıp kural dışına çıkıldığında bunu raporlaması sağlanır. + +## 24.1. AWS Config Kullanımı +Öncelikle bu servisin çalışmasını simüle etmek için bir sanal makine oluşturalım. Bu iş için EC2 kontrol paneline gidelim ve “BaseAMI”ı kullanarak, t2.micro, varsayılan VPC de konuşlanan ve adı “AWSConfigDeneme” olan bir sanal makine oluşturalım. Güvenlik grubu olarak “Ec2-Sec-Group” seçilebilir. Sonrasında da bir tane Elastic IP oluşturalım ancak şu an için herhangi bir instance’a atamayalım. Sanal makine ve Elastic IP oluşturduktan sonra aşağıdaki adımları takip edebiliriz: + +- AWS Config servisinin kontrol paneline ulaşalım ve “GetStarted” ile işlemlere başlayalım. +- Kayıtları tüm kaynaklardan mı yoksa belirli bir kaynaktan mı çekmek istediğimizi belirtmemiz gerekiyor. Bu aşamada “Record all resources supported in this region” diyelim. Bir role seçebilir veya AWS’nin uygun bir rol oluşturmasına izin verebiliriz.“ Create AWS Config service-linked role” seçeneğini kullanarak yeni bir rol yaratmasını isteyelim. +- Kayıtları nereye kaydetmemiz gerektiğini belirtmemiz gereken alanda “Create a bucket” diyerek yeni bir S3 bucket’ı oluşturmak istediğimizi belirtelim. +- “Stream configuration changes and notifications to an Amazon SNS topic” seçeneğini bu aşamada seçmemize gerek yok. +- Diğer ayarları varsayılan olarak bırakarak “next” diyelim. +- Karşımıza çıkan “AWS Managed Rules” ekranında arama çubuğuna “eip” yazalım ve “eip-attached” kuralını seçerek “next” diyelim. +- Son aşamada “Confirm” diyerek ilk konfigürasyonu (config) oluşturalım. + +Bu aşamadan sonra oluşturulan config tüm kaynakları izleyecek ve bize raporlar oluşturacaktır. Normalde uzun süreçte oluşacak bazı aksiyonları arka arkaya yapıp bir nevi servisin kullanımını simüle edelim. Bu aşamada aşağıdaki adımları takip edebiliriz: + +- EC2 kontrol paneline gidelim ve “AWSConfigDeneme” sanal makinesini durduralım. +- EC2 kontrol paneli üzerinden sanal makinemizle aynı AZ’de bulunacak şekilde bir “volume” yaratalım. Actions’ı kullanarak bu volume’ü “AWSConfigDeneme” sanal makinesine bağlayalım. +- EC2 kontrol paneli üzerinden adı “Deneme1” olan bir Network Interface oluşturalım. Auto assign IP, güvenlik grubu olarak varsayılan VPC güvenlik grubunu atayalım. Sonrasında ise bu interface’i “AWSConfigDeneme” sanal makinesine atayalım. +- Instances ekranına geri dönerek sanal makineyi tekrar başlatalım. +- Elastic IP’yi Action üzerinden az önce oluşturduğumuz “Deneme1” isimli Network Interface’e atayalım (bağlayalım). Sonrasında birkaç dakika sonra Elastic IP atamasını geri alalım. + +AWS Config kontrol paneline döndüğümüzde bir saat içerisinde tüm kaynakların listelendiği görülecektir. EC2 Instances → AWSConfigDeneme sanal makinesinin ID değerine ait instance’ı seçelim. Configuration Timeline seçeneğinde verilen tutulduğunu ve bir zaman çizelgesi olarak raporlandığı görülecektir. + +Rules alt başlığında ise uyumsuzluk olduğunu belirtir. Çünkü oluşturulan Elastic IP herhangi bir sanal makine veya network interface’e bağlanmamış durumdadır. Böylelikle servis hakkında raporlarla ve kurallara sistemimiz ve kaynakların daha verimli kullanılması AWS Config servisi sayesinde sağlanmış olur. +