Amazon DOP-C02: Olay Güdümlü Mimariler ve Otomasyon — Çalışma kılavuzu

Şunun bir parçası: AWS DevOps Engineer Professional DOP-C02 — Çalışma kılavuzu. Doğrulanmış cevaplarla şurada pratik yapın: Amazon sınav merkezi, veya şurada süreli deneme sınavları çözün: ExamRoll.io.

Genel Bakış

Olay güdümlü mimariler, üreticileri (producer) tüketicilerden (consumer) ayırır, asenkron iletişimi vurgular ve sistemleri ani yoğunluklara ve arızalara karşı dayanıklı hale getirir. Temel ilkeleri; olaylar/mesajlar aracılığıyla gevşek bağlılık (loose coupling), tüketici odaklı ölçeklendirme, bir kez etkili (idempotent) işleyiciler ve belirgin hata yönetimi ile gözlemlenebilirliktir. AWS; dayanıklı kuyruklar, yayınla/abone ol (pub/sub), olay yolları (event bus), akış işleme, orkestrasyon ve operasyonel otomasyon için yapı taşları sağlar. Amazon SQS, Amazon SNS, Amazon EventBridge, AWS Step Functions, Lambda olay kaynağı eşlemeleri (event source mappings), AWS Systems Manager Automation ve OpsCenter ile Kinesis Data Streams ve Firehose arasındaki etkileşimde uzmanlaşmak, ölçeklenebilir, hataya dayanıklı ve denetlenebilir otomasyon ve veri işlem hatları (data pipeline) oluşturmanıza olanak tanır.

Mesajlaşma ve Veri Alımı: SQS, SNS, Kinesis ve Firehose

Amazon SQS, bileşenleri birbirinden ayırmak (decoupling) için dayanıklı, ölçeklenebilir kuyruklar sağlar. Standart kuyruklar, en az bir kez teslim (at-least-once delivery) ve en iyi çaba sıralaması (best-effort ordering) ile neredeyse sınırsız aktarım hızı (throughput) sunar; bir kez etkili (idempotent) anahtarlar ve koşullu yazımlar aracılığıyla yinelenen ve sıra dışı mesajları tolere edebilen paralel çalışanlar için uygundurlar. FIFO kuyrukları, mesaj grubu başına sıralı teslimatı ve tekilleştirme (beş dakikalık bir pencere içinde) ile tam olarak bir kez işleme (exactly-once processing) semantiğini zorunlu kılar. Sırayı ve tekil işlemeyi garanti ederler ancak mutlak aktarım hızından ödün verirler: FIFO içinde paralelleştirmek için birden çok mesaj grubu kullanın veya saniyede binlerce mesaj için yüksek verimli FIFO’yu (high-throughput FIFO) etkinleştirin. Görünürlük zaman aşımını (visibility timeout) kuyruk veya mesaj başına maksimum işlem süresini aşacak şekilde yapılandırın; Lambda tüketicileriyle, bir mesaj yeniden görünmeden önce yeniden denemelere izin vermek için görünürlük zaman aşımını fonksiyon zaman aşımınızın en az altı katına ayarlayın. Boş alımları (empty receive) azaltmak için uzun yoklama (long polling) kullanın. Ölü mektup kuyrukları (Dead-letter queues - DLQ), bir mesaj maxReceiveCount değerini aştığında zehirli mesajları (poison message) yakalar; daha sonra düzeltmelerle yeniden işlemek için DLQ’dan kaynak kuyruğa yeniden yönlendirme (redrive) yapın. Birikmeleri (backlog) tespit etmek ve eş zamanlılık/otomatik ölçeklendirme (concurrency/autoscaling) değişikliklerini tetiklemek için ApproximateAgeOfOldestMessage metriğini izleyin.

Amazon SNS, yönetilen, yüksek verimli bir yayınla/abone ol (pub/sub) hizmeti sunar. Yayıncılar bir konuya (topic) bir kez gönderim yapar; SNS bunu birden çok aboneliğe (SQS, Lambda, HTTP/S, e-posta, mobil) dağıtır (fan-out). Abonelik filtre politikaları, abone başına yalnızca ilgili bildirimleri yönlendirmek için mesaj niteliklerini (message attribute) kullanır, bu da alt sistemlerdeki maliyeti ve yükü azaltır; tam eşleşme, ön ek, sayısal aralıklar, …hariç tümü (anything-but) ve var (exists) gibi koşulları ifade eder. SNS’i fan-out, birbirinden ayrılmış bildirimler ve mobil anlık bildirimler (mobile push) için kullanın. Yeniden denemeleri etkinleştirin ve teslim edilemeyen gönderimler için abonelik başına DLQ’ları değerlendirin. Sıralı fan-out gereksinimleri için, FIFO SQS abonelikleriyle birlikte SNS FIFO konuları (topic) sıralamayı ve tekilleştirmeyi zorunlu kılar.

Kinesis Data Streams, gerçek zamanlı analitik ve olay işleme için parça (shard) düzeyinde paralellik ile sıralı, düşük gecikmeli akışlar sağlar. Üreticiler, bölüm anahtarları (partition key) ile kayıtları parçalara (shard) yazar; tüketiciler (Lambda, KCL, Enhanced Fan-Out tüketicileri, Kinesis Data Analytics) kontrol noktası (checkpointing) oluşturarak her parçadan sırayla okuma yapar. Tahmin edilemeyen yükler için isteğe bağlı (on-demand) kapasiteyi veya tahmin edilebilir aktarım hızı için yeniden parçalama (resharding) ile tedarik edilmiş (provisioned) parçaları kullanın. Yoğun parçaları (hot shard) dengelemek için bölüm anahtarlarını (partition key) ayarlayın ve tüketici gecikmesini (consumer lag) görmek için IteratorAge metriğini izleyin. Enhanced Fan-Out, HTTP/2 üzerinden düşük gecikmeli gönderim (push) ile tüketici akışı başına 2 MB/s’lik özel aktarım hızı sunar.

Kinesis Data Firehose; S3, Amazon OpenSearch Service, Splunk veya HTTP uç noktalarına (endpoint) neredeyse gerçek zamanlı veri alımı (ingestion) için tam olarak yönetilen bir teslimat hizmetidir ve isteğe bağlı olarak Lambda ile dönüştürme, arabelleğe alma (boyut/zaman), sıkıştırma ve şifreleme özellikleri sunar. Doğrudan PutRecord/PutRecordBatch, Kinesis Data Streams veya CloudWatch Logs/Events aboneliklerinden veri alır. Dönüştürme ve toplu işleme (batching) ile yönetilen bir teslimata ihtiyacınız olduğunda ve tüketici kodu oluşturup işletmeniz gerekmediğinde Firehose’u kullanın. Dinamik bölümleme (Dynamic partitioning), alt sistemlerde verimli işleme için kayıtları anahtarlara göre S3 ön eklerine (prefix) yönlendirmenize olanak tanır.

Yönlendirme, Orkestrasyon ve Zamanlama: EventBridge ve Step Functions

Amazon EventBridge; yönlendirme, yönetişim ve hesaplar arası/olay etki alanı entegrasyonu için merkezi olay bus’ıdır (event bus). AWS hizmet olayları için varsayılan bus’ı, etki alanlarını bölümlere ayırmak ve izinleri uygulamak için özel bus’ları ve SaaS entegrasyonları için iş ortağı bus’larını kullanın. Kurallar, içerik tabanlı desenler aracılığıyla olayları eşleştirir ve 200’den fazla AWS hizmetini hedef alır. Payload’ları şekillendirmek için girdi dönüştürücülerini (input transformers) ve kurtarma veya yeni bir consumer’ın sisteme dahil edilmesi sırasında geçmiş olayları yeniden işlemek için arşivleme/yeniden oynatmayı (archive/replay) kullanın. Kaynak politikaları (Resource policies), yönetişimi bir platform hesabında birleştirmek için hesaplar arası olay yönlendirmeyi mümkün kılar. EventBridge Pipes, olay kaynaklarından (SQS, Kinesis, DynamoDB Streams, Amazon MSK üzerinde kendi kendine yönetilen Apache Kafka ve diğerleri) hedeflere noktadan noktaya yapılandırılabilir akışlar sağlar. Bu akışlar; Lambda veya Step Functions aracılığıyla yerleşik filtreleme, toplu işleme (batching), dönüştürme ve zenginleştirme özelliklerine sahiptir. Tam bir consumer uygulamasını yönetmek istemediğiniz ancak hafif bir arabuluculuğa (mediation) ihtiyaç duyduğunuz durumlar için idealdir. EventBridge Scheduler, hedefleri bir yürütme rolü (execution role), saat dilimi desteği ve “thundering herd” etkisini azaltmak için isteğe bağlı esnek zaman pencereleri ile çağırmak için tek seferlik ve cron zamanlamaları sağlar.

AWS Step Functions, Amazon States Language ile tanımlanan dağıtık iş akışlarını yönetir. Bu iş akışları; Task, Choice, Parallel, Map (dağıtık Map dahil), Wait, Pass, Succeed/Fail gibi durumlardan (states) ve sağlam Retry/Catch desenlerinden oluşur. Derin hizmet entegrasyonları, AWS API’lerini çağırmak için gereken “glue code” (yapıştırıcı kod) ihtiyacını ortadan kaldırır. Buna senkron (.sync) ve görev token’ları (task tokens) ile geri arama (callback) desenleri de dahildir. Uzun süren, denetim (audit) yoğun orkestrasyonlar için Standart İş Akışlarını (Standard Workflows) seçin. Bunlar, tam olarak bir kez (exactly-once) durum ilerlemesi, bir yıla kadar süre ve durum geçişi başına fiyatlandırma sunar. Yürütme geçmişi saklanır ve güçlü görünürlük ile yerleşik X-Ray izleri (traces) sağlar. Yüksek verimli, kısa ömürlü (saniyelerden dakikalara) orkestrasyonlar için Ekspres İş Akışlarını (Express Workflows) seçin. Bu iş akışlarında, devasa ölçek elde etmek için istek başına+süreye dayalı fiyatlandırma ve en az bir kez (at-least-once) yürütme semantiği arasında bir denge kurabilirsiniz. Akış verisi alımı zenginleştirmeleri (streaming ingest enrichments), olay yönlendiricileri (event routers) ve görevleri idemponent yapabileceğiniz mikro orkestrasyonlar için kullanın. Telafi edici görevler (compensating tasks) ve merkezi hata yönetimi ile saga gibi desenleri uygulayın; görev kodunu basitleştirmek için yeniden denemeleri/zaman aşımlarını (retries/timeouts) durum makinesinin (state machine) dışına taşıyın.

İşlem Tetikleyicileri ve Geri Basınç (Backpressure): Lambda Olay Kaynağı Eşlemeleri

Lambda olay kaynağı eşlemeleri (ESM’ler), yoklama tabanlı (poll-based) kaynakları Lambda’ya bağlar ve eş zamanlılığı (concurrency), toplu işlemeyi (batching) ve hata yönetimini kontrol eder.

ESM’lerdeki olay filtreleme, ilgili olmayan olayları daha poller (yoklayıcı) aşamasında atarak çağırma (invocation) sayısını azaltır. Mini toplu işleme (mini-batch processing) desenleri için kayıtları zaman içinde birleştirmek amacıyla Lambda ile akışlar üzerinde takla atan pencere (tumbling window) birleştirmesi kullanın.

Operasyon Otomasyonu ve Düzeltme: Systems Manager Automation ve OpsCenter

AWS Systems Manager Automation, JSON/YAML formatında yazılmış ve aws:runCommand, aws:executeScript, aws:invokeLambda, aws:approve, aws:createStack ve aws:executeAutomation gibi adımlar içeren runbook’lar (Automation türünde belgeler) sağlar. Automation’lar parametreleri kabul eder, çıktılar üretir, değişiklik geçmişiyle birlikte sürümlenir ve en az ayrıcalık (least privilege) ilkesi ve hesaplar/Bölgeler (Region) arası operasyonlar için özel bir AutomationAssumeRole ile çalışır. Filolar genelinde eş zamanlılığı (concurrency) ve hata eşiklerini kontrol edin, onaylar ve Change Calendar pencereleri gerektirin ve SNS aracılığıyla bildirimlerle entegre edin. Automation’ları bir programa göre, EventBridge kurallarından (AWS Health, CloudWatch veya API olayları üzerinde neredeyse gerçek zamanlı düzeltme için), ilkeyi uygulamak amacıyla AWS Config düzeltmelerinden (örneğin, EBS birimlerine varsayılan etiketleri uygulama veya EC2 bulut sunucularına varsayılan bir instance profile ekleme) ve OpsCenter’dan çağırın.

OpsCenter; CloudWatch alarmları, AWS Config, Health olayları veya özel kaynaklardan gelen operasyonel sorunları OpsItems altında toplar. Her bir OpsItem; durumu, önceliği, tekilleştirmeyi (deduplication), ilgili kaynakları ve runbook bağlantılarını izler. Standart düzeltmeler için tek tıklamalı runbook’ları ilişkilendirin ve bir OpsItem oluşturulduğunda veya eşleşen bir koşula güncellendiğinde (örneğin, SSH üzerinde 0.0.0.0/0’a izin veren bir güvenlik grubu, uyumluluktan sapmış yama durumu veya başarısız yedeklemeler) belirli bir Automation’ı başlatmak için EventBridge veya Config kurallarını bağlayarak otomatik düzeltmeyi etkinleştirin. Hesaplar ve Bölgeler (Region) genelindeki filo sağlığını ve açık OpsItems’ları görselleştirmek için Systems Manager Explorer’ı kullanın. Bu eşleştirme — kalıcı kayıtlar olarak OpsItems ve kodlanmış düzeltmeler olarak Automation runbook’ları — ölçekte denetlenebilir ve tutarlı operasyonlar sağlar.

Tasarım ve Operasyonel Rehberlik

En az bir kez teslimat (at-least-once delivery) yaygın olduğundan, tüm tüketicilerde idempotentlik için tasarım yapın. Düşük gecikmeli paralel reaksiyonlar için SNS veya EventBridge kuralları aracılığıyla olay tabanlı fan-out yöntemini tercih edin; iş yüklerini arabelleğe almak ve üreticileri tüketici yavaşlığından korumak için SQS’i tercih edin; analitik için parça (shard) başına katı sıralama ve tekrar oynatılabilir akışlar gerektiğinde Kinesis’i tercih edin. Özel olarak geliştirilmiş bir tüketicinin gereksiz olduğu durumlarda kaynaklar ve hedefler arasında hafif, yönetilen entegrasyon için EventBridge Pipes’ı ve bir cron altyapısı bakımını ortadan kaldıran zaman tabanlı tetikleyiciler için EventBridge Scheduler’ı kullanın.

Zaman aşımlarını ve yeniden denemeleri doğru boyutlandırın. SQS için görünürlük zaman aşımı (visibility timeout), maksimum işlem süresi artı yeniden denemeleri aşmalıdır; akışlar için, bozuk kayıtların sonsuz bir şekilde yeniden oynatılmasını önlemek amacıyla yeniden denemeleri sınırlayın ve MaximumRecordAgeInSeconds’i ayarlayın. Sistematik olarak DLQ’ları (Ölü Mektup Kuyrukları) veya hata durumunda hedef belirlemeyi (on-failure destinations) kullanın ve SQS ApproximateAgeOfOldestMessage, Lambda ConcurrentExecutions/Throttles/Errors, IteratorAge, Step Functions ExecutionFailed/TimedOut ve EventBridge FailedInvocations metrikleri için panolar ve alarmlar ekleyin. Düzensiz (ani yükselen) trafik kaçınılmaz olduğunda ancak gecikme SLA’ları katı olduğunda, kapasiteyi önceden ısıtmak için Lambda sağlanmış eşzamanlılığını (provisioned concurrency) kullanın. Yönetişim için, hesaplar arası yönlendirme ve tüketici evrimini ve olay kurtarmayı desteklemek amacıyla arşivleme/tekrar oynatma (archive/replay) özellikleri sunan kaynak politikalarına sahip EventBridge’i tercih edin.

Pratik Problem Senaryosu

Shopify’ın, flaş indirim etkinlikleri için sipariş işleme süreçlerini modernize etmesi, aynı zamanda bağımlı (downstream) servisler yavaşladığında veya başarısız olduğunda gerçek zamanlı analitik ve otomatik iyileştirme eklemesi gerekiyor.

  1. Sipariş olaylarını alma ve yayma (fan-out)
  1. Sipariş karşılamayı arabelleğe alma ve işleme
  1. Çok adımlı saga’yı düzenleme (orkestrasyon)
  1. Alan (domain) olaylarını yeteneklere yönlendirme
  1. İş ortağı akışını zenginleştirmeye yönlendirme (pipe)
  1. Gerçek zamanlı analitik ve arama
  1. Zaman tabanlı otomasyon
  1. Otomatik iyileştirme ve operasyonlar

Bu tasarım, arabelleğe alma ve fan-out yoluyla flaş indirim anındaki ani trafik artışlarını sürdürür, orkestrasyon aracılığıyla iş değişmezlerini (business invariants) korur, saniyeler içinde analitik verileri sunar ve ilke tabanlı, otomatik iyileştirme ile döngüyü tamamlar.


Yüksek Erişilebilirlik · Tüm alanlar · Depolama

Bu soruları çözün → · ExamRoll.io’da süreli pratik →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Sınavınızı geçin →

Amazon'a göz atın →

Related guides

Hepsi bir arada erişim

Tek abonelik. Her sınav.

Her plan, sınırsız cevap aramayı, pratik testlerini, AI açıklamalarını ve tam kaynak kütüphanesini — 20'den fazla dilde — açar.

Aylık
24.87
Just €0.83/day
Her şey dahil:
  • Sınırsız cevap arama
  • Sınırsız pratik testi
  • AI destekli açıklamalar
  • Tam kaynak kütüphanesi
  • 20+ dil
  • Haftalık içerik güncellemeleri
  • Ödüller ve yönlendirmeler
  • Öncelikli destek
Ücretsiz denemeyi başlat

Kredi kartı gerekmez*

En iyi değer
12 ay
179.87
Just €0.49/daySave 40%
Her şey dahil:
  • Sınırsız cevap arama
  • Sınırsız pratik testi
  • AI destekli açıklamalar
  • Tam kaynak kütüphanesi
  • 20+ dil
  • Haftalık içerik güncellemeleri
  • Ödüller ve yönlendirmeler
  • Öncelikli destek
Ücretsiz denemeyi başlat

Kredi kartı gerekmez*

✓ Ücretsiz plan dahil · ✓ İstediğiniz zaman iptal edin · ✓ Tüm planlar tam ürünü açar