Kinesis Data Streams, Producers, Consumers, and Enhanced Fan-Out Genel Bakış
Günümüzün veri odaklı dünyasında, gerçek zamanlı veri analizi ve işleme yeteneği, işletmeler için kritik bir rekabet avantajı…
AWS Kinesis Data Streams, Producers, Consumers, and Enhanced Fan-Out Genel Bakış
Günümüzün veri odaklı dünyasında, gerçek zamanlı veri analizi ve işleme yeteneği, işletmeler için kritik bir rekabet avantajı sağlamaktadır. Finansal işlemlerden IoT cihaz verilerine, sosyal medya akışlarından oyun etkinliklerine kadar birçok farklı alanda anlık veri akışını yönetmek, doğru kararları hızla almanın anahtarıdır. İşte bu noktada, AWS’in sunduğu tam yönetimli (fully managed) ve yüksek ölçekli bir servis olan AWS Kinesis Data Streams devreye giriyor.

AWS Kinesis Data Streams, saniyede terabaytlarca veriyi sürekli olarak yakalamanıza olanak tanıyan, ölçeklenebilir ve dayanıklı bir gerçek zamanlı veri akış hizmetidir. Toplanan veriler, varsayılan olarak 24 saat boyunca, isteğe bağlı olarak 365 güne kadar saklanabilir. Bu veriler, AWS’in farklı Kullanılabilirlik Alanları (Availability Zones — AZ) arasında eşzamanlı olarak çoğaltılarak yüksek dayanıklılık ve erişilebilirlik sağlar. Kısacası Kinesis, sürekli akan verileriniz için güvenilir, sıralı ve tekrar oynatılabilir (replayable) bir kayıt defteri (ledger) görevi görür.
Temel Bileşenler ve İşleyiş Mekanizması

1. Kinesis Data Stream: Shard ve Partition Key İlişkisi
Bir Kinesis Data Stream’in temel iş birimi ve ölçeklendirme noktası Shard’dır. Ancak verinin hangi Shard’a gideceğini belirleyen kritik unsur Partition Key (Bölümleme Anahtarı)’dir.
- Shard Kapasitesi: Her bir Shard, saniyede 1 MB veya 1000 kayıt yazma (hangisi önce dolarsa) ve saniyede 2 MB okuma kapasitesine sahiptir. Akışınızın toplam kapasitesi, sahip olduğunuz Shard sayısıyla doğrudan orantılıdır.
- Partition Key’in Rolü: Üretici, her kaydı bir
Partition Keyile birlikte gönderir. Kinesis, bu anahtarı bir hash fonksiyonundan geçirerek sonucuna göre kaydın hangi Shard'a yerleştirileceğini belirler. AynıPartition Key'e sahip tüm kayıtlar, her zaman aynı Shard'a gider. Bu, ilgili verilerin (örneğin, aynı kullanıcıya ait tüm olayların) sıralı bir şekilde işlenmesini garanti eder. - “Hot Shard” Problemi ve Çözümü: Eğer
Partition Keydağılımınız dengesizse (örneğin, tüm veriyi "kullanici-1" gibi tek bir anahtarla gönderirseniz), tüm trafik tek bir Shard'a yığılır. Bu durum "Hot Shard" olarak bilinir ve ilgili Shard'ın kapasite limitlerine takılarak veri akışınızın tıkanmasına neden olur. Profesyonel İpucu:Partition Keyolarak yüksek kardinaliteye sahip (çok sayıda benzersiz değere sahip) bir alan seçin (örneğin,user_id,session_id,device_id) ve gerekirse rastgele bir sonek ekleyerek dağılımı garantileyin.Özellikle sertifika sınavlarına hazırlanıyorsanız çok sıklıkla karşınıza çıkabilir.,
2. Producers (Üreticiler)
Üreticiler, verileri Kinesis Data Stream'e gönderen uygulamalardır. Bu veriler herhangi bir formatta olabilir (JSON, metin, ikili veri vb.). Bir üretici, veriyi bir kayıt (record) olarak stream'e gönderir. Her kayıt, bir veri yükü (data blob), bir bölüm anahtarı (partition key) ve isteğe bağlı bir sıra numarası (sequence number) içerir.
Üretici Türleri:
- AWS SDK: Doğrudan Kinesis PutRecord veya PutRecords API çağrıları kullanarak.
- Kinesis Producer Library (KPL): Veri birleştirmeyi (aggregation) ve yeniden denemeyi (retry) otomatik olarak ele alan, daha yüksek verim sağlayan bir kütüphane.
- Kinesis Agent: Log dosyalarını veya diğer dosya tabanlı verileri Kinesis Stream’e göndermek için kullanılan bir Java uygulaması.
- IoT Cihazları, Mobil Uygulamalar, Veritabanları: Gerçek zamanlı olarak veri üreten her türlü kaynak.
3. Consumers (Tüketiciler): Okuma Modelleri ve Enhanced Fan-Out
Veriyi Kinesis’ten okumak, mimarinin en kritik parçasıdır. Kinesis iki temel tüketici modeli sunar:
a) Standart Tüketici (Paylaşımlı Verim — Shared Throughput)
- Çalışma Prensibi: Tüketiciler, her Shard’dan
GetRecordsAPI'sini periyodik olarak çağırarak (pull modeli) veri çeker. - Limitasyon: Bir Shard’ın saniyede 2 MB’lık okuma kapasitesi, o Shard’ı okuyan tüm standart tüketiciler arasında paylaşılır. Yani iki tüketiciniz varsa, her biri ideal durumda saniyede en fazla 1 MB veri alabilir. Bu durum, birden fazla analitik uygulamanın aynı stream’i okuduğu senaryolarda bir darboğaz oluşturabilir.
- Kinesis Client Library (KCL): Standart tüketici modelinin karmaşıklığını yönetmek için kullanılır. KCL, Shard’ları keşfetme, işçi (worker) örnekleri arasında Shard dağılımını dengeleme ve işlenen kayıtların konumunu (checkpointing) takip etme gibi zorlu görevleri otomatikleştirir.
b) Gelişmiş Fan-Out Tüketicisi (Adanmış Verim — Dedicated Throughput)
- Çalışma Prensibi: Kinesis, veriyi HTTP/2 üzerinden tüketicilere aktif olarak gönderir (push modeli).
- Avantajı: Her bir Gelişmiş Fan-Out tüketicisi, her Shard için saniyede 2 MB’lık adanmış (dedicated) bir okuma kapasitesine sahip olur. Bu, diğer tüketicilerden etkilenmeden, paralel olarak ve çok daha düşük gecikmeyle (~70 milisaniye) veri okumanıza olanak tanır.
- Kullanım Alanları: Birden fazla gerçek zamanlı analitik panosu, anomali tespiti ve makine öğrenmesi uygulamasının aynı veri akışını minimum gecikmeyle beslemesi gereken durumlar için mükemmeldir. AWS Lambda, Kinesis Data Analytics gibi servisler bu özelliği native olarak destekler.

4.Güvenlik (Security):
- Veri Şifreleme: Kinesis, AWS KMS (Key Management Service) kullanarak sunucu tarafı şifrelemeyi (Server-Side Encryption) destekler. Bu, bekleyen verilerinizin (data at rest) güvenliğini sağlar.
- Erişim Kontrolü: IAM (Identity and Access Management) rolleri ve politikaları ile hangi kullanıcıların veya servislerin akışınıza veri yazabileceğini (
kinesis:PutRecord) veya okuyabileceğini (kinesis:GetRecords) hassas bir şekilde kontrol edebilirsiniz.- Ağ Güvenliği: VPC Endpoints kullanarak, Kinesis Data Streams’e genel internet yerine özel AWS ağınız üzerinden erişerek veri güvenliğini artırabilirsiniz.
메타데이터
- post_id
- 9ba2ddd9414a
- slug
- kinesis-data-streams-producers-consumers-and-enhanced-fan-out-genel-bakış-9ba2ddd9414a
- url
- https://medium.com/@merdemirz/kinesis-data-streams-producers-consumers-and-enhanced-fan-out-genel-bak%C4%B1%C5%9F-9ba2ddd9414a
- canonical_url
- https://medium.com/@merdemirz/kinesis-data-streams-producers-consumers-and-enhanced-fan-out-genel-bak%C4%B1%C5%9F-9ba2ddd9414a
- author_url
- https://medium.com/@merdemirz
- status
- ok
- fetched_at
- 2026-07-24 18:52:03