Amazon DEA-C01: Veri Orkestrasyonu ve İş Akışı Yönetimi — Çalışma kılavuzu
Şunun bir parçası: Amazon Data Engineer Associate DEA-C01 — Ç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.
Orkestrasyon ve iş akışı yönetimi, güvenilir ve sürdürülebilir veri platformları oluşturmanın merkezinde yer alır: ayıklama-dönüştürme-yükleme (ETL) işlerini koordine eder, bağımlılıkları yönetir, hataları ele alır ve olay odaklı süreçleri entegre ederler. Bu alan, toplu ETL, karmaşık DAG’ler, sunucusuz durum makineleri ve olay zamanlaması için yönetilen AWS seçeneklerini kapsar — her biri farklı yürütme semantiği, dayanıklılık ve ölçeklendirme ödünleşimlerine sahiptir. AWS Glue Workflows, MWAA, Step Functions veya EventBridge Scheduler’ı ne zaman kullanacağınızı — ve hata yönetimi ile gözlemlenebilirliği nasıl yapılandıracağınızı — anlamak, öngörülebilir işlem hatları ve operasyonel maliyet kontrolü için kritik öneme sahiptir.
AWS Glue Workflows ve tetikleyiciler
AWS Glue Workflows, Glue işlerini, tarayıcılarını (crawler) ve tetikleyicileri bir bağımlılık grafiğinde gruplandırır ve koordine edilmiş ETL çalıştırmanıza olanak tanır. İş akışlarını konsol veya CLI aracılığıyla oluşturun (aws glue create-workflow –name MyWorkflow). Tetikleyiciler iş akışlarına eklenir ve üç türde gelir: zamanlanmış, isteğe bağlı ve koşullu. Zamanlanmış bir tetikleyici için örnek CLI oluşturma komutu:
- aws glue create-trigger –name hourly-trigger –workflow-name MyWorkflow –type SCHEDULED –schedule “cron(0 * * * ? *)” –actions ‘[{“JobName”:“etl-job”}]’
Koşullu tetikleyiciler, iş adına ve durumuna (SUCCEEDED, FAILED) referans veren bir Predicate kullanır. Örnek predicate JSON’u: {“Logical”:“AND”,“Conditions”:[{“JobName”:“prev-job”,“State”:“SUCCEEDED”}]}. Varsayılan olarak Glue koşullu tetikleyicileri başarı durumunda ateşlenir; hataları yönetmek için koşulları State=FAILED ile yapılandırın veya hataları düzeltme işlerine ya da SNS uyarılarına yönlendirmek için açık bir FAILED tetikleyicisi oluşturun.
Operasyonel desenler ve karar kriterleri:
- Yerel Glue iş/tarayıcı orkestrasyonuna ve veri kökeni (lineage) takibine ihtiyacınız olduğunda Glue Workflows kullanın; cron zamanlaması veya işleri tamamlandıklarında zincirleme çalıştırmak için tetikleyicileri seçin.
- Anlık (ad-hoc) çağırma için aws glue start-workflow-run –name MyWorkflow komutunu veya isteğe bağlı tetikleyiciler için start-trigger’ı kullanın.
- Karmaşık dallanma veya Glue dışı görevler için Step Functions veya MWAA’yı tercih edin; Glue iş akışları, işlem hattı Glue merkezli olduğunda en iyi seçenektir.
Hata yönetimi: FAILED tetikleyicileri ekleyin, iş başarısı/başarısızlığı için CloudWatch metrikleri yayınlayın ve otomatik yeniden denemeler ve inceleme için hataları Lambda aracılığıyla bir SQS/SNS işlenemeyen mesaj kuyruğuna (dead-letter queue) gönderin.
Karmaşık DAG’ler için Amazon MWAA (Managed Airflow)
MWAA, karmaşık DAG’leri, görev bağımlılıklarını, sensörleri ve özel operatörleri ifade etmek için yönetilen bir Apache Airflow ortamı sağlar. aws mwaa create-environment –name MyEnv –airflow-configuration-options Key=core.executor,Value=CeleryExecutor komutuyla ortamlar oluşturun ve bir DAG’ler S3 yolu ile yürütme rolü (execution role) belirtin. Önemli boyutlandırma ve ağ detayları:
- MWAA, internet erişimi için özel alt ağlara (private subnets) ve bir NAT ağ geçidine (NAT gateway) sahip bir VPC gerektirir; yalnızca genel alt ağ (public-subnet-only) kurulumları desteklenmez.
- Worker ve zamanlayıcının (scheduler) davranışı, ortam oluşturma sırasında sağlanan Airflow yapılandırma seçenekleri (AirflowConfigurationOptions) aracılığıyla kontrol edilir. Görev eşzamanlılığına ve DAG karmaşıklığına uyacak şekilde celery.worker_concurrency, celery.worker_autoscale ve zamanlayıcı ayarlarını düzenleyin.
- CloudWatch metriklerini (SchedulerHeartbeat, TasksFailed, TasksRunning, QueuedTasks) izleyin ve kuyrukta büyüme gördüğünüzde worker otomatik ölçeklendirmesini ayarlayın veya maksimum worker sayısını artırın.
Karar kriterleri:
- Karmaşık DAG’ler, zengin operatörler, DAG’ler arası bağımlılıklar, SLA/kaçırılan görev sensörleri ve özel Python mantığı gibi Airflow özelliklerine ihtiyacınız olduğunda MWAA kullanın.
- Görevler kısa ömürlü ve aşırı yüksek verimli ise, yönetilen ETL operasyonları için sunucusuz Step Functions Express veya Glue’yu tercih edin.
- Ağır, uzun süren görevleri yönetilen işlem birimlerinde (Glue/EMR/EKS) tutun ve MWAA görevlerini yalnızca orkestrasyon için kullanın — büyük veri dönüşümlerini doğrudan MWAA worker’ları üzerinde çalıştırmaktan kaçının.
Airflow’da hata yönetimi: DAG tanımlarında görev yeniden denemelerini (retries) ve retry_delay’i kullanın, bildirim göndermek veya bir SQS işlenemeyen mesaj kuyruğuna (dead-letter queue) göndermek için on_failure_callback’i ayarlayın ve düzeltme DAG’lerini tetiklemek için görev seviyesinde SLA yönetimini yapılandırın.
Sunucusuz orkestrasyon için AWS Step Functions
Step Functions, JSON tabanlı Amazon States Language ile durum bilgisi olan (stateful) orkestrasyon sağlar ve AWS hizmetleriyle geniş çapta entegre olur. Standard ve Express iş akışları arasında seçim yapın:
- Standard İş Akışları: Uzun süren, dayanıklı durum makineleri (aylardan yıllara kadar) için tasarlanmıştır; tam olarak bir kez (exactly-once) yürütme semantiğine, yerleşik yürütme geçmişine ve yürütme başına izleme/günlüğe kaydetme özelliklerine sahiptir. aws stepfunctions start-execution –state-machine-arn arn:… –input ‘{“key”:“value”}’ ile başlatın.
- Express İş Akışları: Yüksek verimli, düşük gecikmeli, kısa süreli işlemler için optimize edilmiştir ve büyük ölçekte maliyet etkindir; en az bir kez (at-least-once) yürütme semantiği kullanırlar, bu nedenle görevler idempotent olmalı veya tekilleştirme (deduplication) desenleri kullanmalıdır.
Kullanım senaryoları ve karar kriterleri:
- Uzun süreler çalışabilecek, denetlenebilir, dayanıklı ve yalnızca bir kez yürütme semantiği gerektiren iş akışlarına ihtiyacınız olduğunda Standard kullanın.
- Saniyede binlerce yürütme içeren, kısa sürenin ve maliyet verimliliğinin önemli olduğu olay odaklı mikro orkestrasyonlar için ve idempotent görevler tasarlayabildiğiniz veya alt sistemlerde tekilleştirme yapabildiğiniz durumlarda Express kullanın.
Hata yönetimi ve entegrasyon desenleri:
- ASL’de ErrorEquals, IntervalSeconds, BackoffRate ve MaxAttempts ile yeniden denemeleri tanımlamak için Retry bloklarını kullanın.
- Hataları alternatif dallara veya bir Fail/Success durumuna yönlendirmek ve tanılama için ResultPath’i hata ayrıntılarıyla doldurmak için Catch bloklarını kullanın.
- Asenkron işlenemeyen mesaj yönlendirmesi için, başarısız mesajları SQS/SNS’e gönderin veya hata yüklerini (payloads) çevrimdışı işleme için bir SQS DLQ’suna gönderen bir Step Functions deseni tasarlayın. Gözlemlenebilirlik için LoggingConfiguration ve TracingConfiguration aracılığıyla CloudWatch Logs ve X-Ray izlemeyi etkinleştirin.
EventBridge Scheduler ve olay odaklı işlem hatları
EventBridge, zengin olay yönlendirme ve cron ile tek seferlik görevler için bir Zamanlayıcı (Scheduler) özelliği sunar.
undefined
ile zamanlama tabanlı kurallar oluşturun ve
undefined
aracılığıyla hedefler ekleyin. Olay odaklı (desen) yönlendirme için, S3 olaylarını Lambda, Step Functions veya SQS’e yönlendirmek amacıyla
undefined
ile
undefined
kullanın.
Önemli operasyonel noktalar:
- EventBridge, zamanlama ifadelerini (cron ve rate) destekler. rate ifadeleri kullanırken EventBridge kuralları için 5 dakikalık minimum aralığın farkında olun; daha hassas zamanlama için Step Functions veya bir yoklama (polling) katmanını düşünün.
- Tek seferlik, anlık gelecekteki çağırmalar ve yinelenen zamanlamalar için EventBridge Scheduler’ı kullanın; Zamanlayıcı, saat dilimlerini ve hedef başına esnek yeniden deneme ayarlarını destekler ve teslim edilemeyen çağırmalar için bir dead-letter SQS kuyruğu yapılandırabilir.
- Yüksek güvenilirlikli işlem hatları için Step Functions, Lambda veya SQS gibi hedefler ekleyin ve hedef başına yeniden deneme politikaları ile DLQ’ları yapılandırın. Örneğin,
undefined
bir SQS kuyruğunun Arn’sini içeren bir
undefined
kabul eder.
Hata yönetimi: hedefe özgü yeniden deneme girişimlerini ve geri çekilme (backoff) sürelerini yapılandırın, başarısız teslimatlar için DLQ kullanın ve karmaşık hata yönetimi ile telafi edici işlemler (compensating transactions) için EventBridge’i Step Functions ile birleştirin.
Sık Karşılaşılan Hatalar ve Karar Kriterleri
- Hata: Idempotent olmayan görevler için Express Workflows kullanmak. Doğru yaklaşım: Idempotency tasarlayın (tekilleştirme anahtarları, idempotent Lambda) veya tam olarak bir kez (exactly-once) semantiği için Standard iş akışlarını kullanın.
- Hata: Glue koşullu tetikleyicilerinin (conditional triggers) hata durumunda ateşleneceğini varsaymak. Doğru yaklaşım: Hataları yönlendirmek için açıkça
undefined
durumlu tetikleyiciler oluşturun veya tetikleyicinin
undefined
‘ine
undefined
ifadesini ekleyin.
- Hata: MWAA’i public subnet’lerde veya NAT olmadan dağıtmak. Doğru yaklaşım: MWAA’i private subnet’lere yerleştirin ve gerekli hizmet erişimi için bir NAT ağ geçidi veya VPC uç noktaları (endpoints) sağlayın.
- Hata: EventBridge zamanlamalarının bir dakikanın altında olmasını beklemek. Doğru yaklaşım: EventBridge kurallarının 5 dakikalık minimum aralığı olduğunu unutmayın; 5 dakikanın altındaki ihtiyaçlar için Step Functions veya Lambda zamanlayıcılarını kullanın.
- Hata: Servisler arasında merkezi bir yeniden deneme/yakalama (retry/catch) stratejisinin olmaması. Doğru yaklaşım: Yeniden deneme/geri çekilmeyi (ASL
undefined
, EventBridge yeniden deneme yapılandırması, Airflow retries) standartlaştırın ve başarısız olayları manuel/otomatik düzeltme için saklamak üzere DLQ’ları kullanın.
- Hata: MWAA worker’larını ağır veri işleme görevleriyle aşırı yüklemek. Doğru yaklaşım: Orkestrasyonu yalnızca MWAA üzerinde yapın, ağır dönüşüm işlemlerini Glue/EMR/EKS üzerinde çalıştırın ve görevler arasında işaretçiler (S3 yolları) aktarın.
Pratik Problem: Acme Retail’in ani yoğunluklar yaşayan saatlik ETL’i
Acme Retail’in saatlik bir ETL’e ihtiyacı var. Bu ETL, ham veri alımı için Glue işlerini, Python operatörleri içeren karmaşık bir zenginleştirme DAG’ını ve yüksek frekanslı envanter olaylarına yanıt vermesi gereken kısa ömürlü bir SKU toplama işlemini çalıştırmalıdır. Sağlam yeniden deneme mekanizmalarına ve hata yakalamaya ihtiyaçları var.
- Genel işlem hattını koordine etmek üzere bir Step Functions Standard iş akışını çağıran saatlik zamanlanmış bir kuralı tetiklemek için EventBridge kullanın.
- Step Functions içinde, uzun süren Glue işlerini (
undefined
)
undefined
ve
undefined
işleyicileriyle yönetin; hata durumunda bir
undefined
bloğu aracılığıyla bir SQS DLQ’suna ve bir düzeltme Lambda’sına yönlendirin. 3. Karmaşık zenginleştirme DAG’larını MWAA’de dağıtın ve bunları Step Functions’tan Airflow REST API’sini kullanarak veya SQS’e DAG çalıştırma mesajları yerleştirerek çağırın; beklenen eşzamanlılığa göre
undefined
ayarları aracılığıyla MWAA worker’larını boyutlandırın ve ayarlama yapmak için CloudWatch metriklerini izleyin. 4. Yüksek frekanslı envanter olayları için, ani yoğunlukları absorbe etmek üzere idempotency anahtarları ve SQS destekli bir DLQ ile bir Express Step Function’a veya Lambda’ya yönlendirme yapmak için EventBridge olay deseni (event-pattern) kurallarını kullanın. 5. Merkezi izleme (CloudWatch Logs/Metrics, Step Functions için X-Ray) uygulayın ve DLQ büyümesi ile görev yeniden deneme limitlerinin tükenmesi durumları için alarmlar kurun.
Gerekçe: Bu tasarım, her gereksinim için doğru aracı kullanır — dayanıklı servisler arası orkestrasyon ve hata yönetimi için Step Functions, karmaşık DAG mantığı için MWAA, yönetilen ETL için Glue ve zamanlama ile reaktif olaylar için EventBridge. AWS en iyi pratikleriyle uyumlu, dayanıklı ve gözlemlenebilir işlem hatları için idempotency ve DLQ’ları zorunlu kılar.
← Veri Dönüşümü ve İşleme · Tüm alanlar · Veri Sorgulama ve Analitik →
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 →