Ana içeriğe geç

Yeni Başlayanlar için AWS MSK: Kapsamlı Başlangıç Rehberi

Bu başlangıç dostu rehberle, yönetilen bir Kafka hizmeti olan AWS MSK’ye nasıl başlayacağınızı keşfedin; pratik ipuçları ve önde gelen alternatiflerle karşılaştırmalar içerir.
· 11 dk. oku

Yapay Zeka ile Keşfedin

Birçok şirket, Apache Kafka kümelerini yönetmenin getirdiği operasyonel zorluklardan kaçınmak için AWS MSK'ye geçmeyi tercih ediyor.

Bu eğitimde, AWS MSK'nin özelliklerini, avantajlarını ve en iyi uygulamalarını inceleyeceğiz. Ayrıca AWS MSK'yi kurmanın temel adımlarını ele alacak ve Kinesis ile Confluent gibi diğer popüler hizmetlerle nasıl karşılaştırıldığını göreceğiz.

AWS MSK nedir?

Önce Apache Kafka'yı ve veri akışı için neden bu kadar faydalı olduğunu anlayalım. 

Apache Kafka, gerçek zamanlı veri akışlarını işleyen ve olay odaklı uygulamalar oluşturabilen, açık kaynaklı, dağıtık bir akış platformudur. Veriyi oluştuğu anda içeri alıp işleyebilir.

Kafka’nın web sitesine göre Fortune 100 şirketlerinin %80’inden fazlası Kafka’ya güveniyor ve onu kullanıyor.

En önemlisi, Kafka ölçeklenebilirdir ve çok hızlıdır. Bu da tek bir makineye sığmayacak kadar fazla veriyi son derece düşük gecikmeyle işleyebileceği anlamına gelir.

Veri akışı için Kafka’yı nasıl oluşturacağınızı, yöneteceğinizi ve sorun gidereceğinizi öğrenmek isterseniz Introduction to Kafka kursunu inceleyin. 

Apache Kafka’yı ne zaman kullanmak en uygundur? 

  1. IoT cihaz verisi akışlarının yönetimi gibi, gerçek zamanlı olarak çok büyük miktarda veriyi işlemeniz gerektiğinde.
  2. Canlı kullanıcı etkinliği takibi veya sahtekarlık tespiti sistemlerinde olduğu gibi anlık veri işleme ve analiz gerektiğinde.
  3. Uyumluluk gereksinimleri olan denetim izlerinin gerektiği olay kaynaklı (event-sourcing) senaryolarda.

Bununla birlikte, Kafka örneklerini yönetmek pek çok baş ağrısıyla gelebilir. Tam bu noktada AWS MSK devreye girer.

AWS MSK, Apache Kafka ve AWS'yi birleştirir.

Görsel: Yazar

AWS MSK (Managed Streaming for Kafka), Kafka kümelerinin sağlanması, yapılandırılması, ölçeklendirilmesi ve bakımıyla ilgilenen tamamen yönetilen bir hizmettir. Veri akışlarına anında tepki veren uygulamalar geliştirmek için kullanabilirsiniz.

Kafka çoğu zaman daha büyük bir veri işleme yapısının parçası olarak kullanılır ve AWS MSK, farklı sistemler arasında veri taşıyan gerçek zamanlı veri hatları oluşturmayı daha da kolaylaştırır.

AWS ekosisteminde AWS MSK nasıl çalışır.

Amazon MSK nasıl çalışır. Görsel kaynağı: AWS

AWS’ye yeniyseniz, temelleri öğrenmek için Introduction to AWS kursumuzu düşünebilirsiniz. Hazır olduğunuzda, işletmelerin kullandığı hizmetlerin tamamını keşfetmek için AWS Cloud Technology and Services kursumuza geçebilirsiniz.

AWS MSK'nin Özellikleri

AWS MSK, tamamen yönetilen bir hizmet olduğu için rakiplerinden ayrılır. Sunucu kurulumlarıyla veya güncellemelerle uğraşmanız gerekmez. 

Ancak mesele sadece bu değildir. AWS MSK'nin bu beş temel özelliği onu değerli bir yatırım haline getirir:

  1. MSK yüksek erişilebilirliğe sahiptir ve AWS katı SLA’lerin karşılandığını garanti eder. Uygulamalarınız için kesinti olmadan arızalı bileşenleri otomatik olarak değiştirir.
  2. MSK’de depolama için otomatik ölçeklendirme seçeneği vardır, böylece ihtiyaçlarınıza göre otomatik olarak büyür. Ayrıca depolamayı hızla artırıp azaltabilir veya gerekirse daha fazla broker ekleyebilirsiniz.
  3. Güvenlik açısından MSK, hareketsiz ve aktarım halindeki veriler için şifreleme sağlayan kapsamlı bir çözümdür. Erişim denetimi için AWS IAM ile de entegre olur.
  4. Zaten Kafka kullanıyorsanız, MSK tüm standart Kafka API’lerini ve araçlarını desteklediği için kodunuzda değişiklik yapmadan MSK’ye geçebilirsiniz.
  5. MSK, kümeleri izlemek ve yönetmek için tüm bir mühendislik ekibi tutmanızı gerektirmeyen, uygun maliyetli bir seçenektir. AWS, hatta kendi kendine yönetilen Kafka’dan %40’a kadar daha ucuz olabileceğini iddia ediyor.

AWS MSK kullanmanın faydaları

Gördüğümüz gibi AWS MSK, erişilebilirlik, ölçeklenebilirlik, güvenlik ve entegrasyon kolaylığı sayesinde anında değer sağlar. Bu temel avantajlar, bulutta Kafka iş yüklerini çalıştıran şirketler için onu başlıca tercih haline getirmiştir.

AWS MSK, her veri akışı projesinin karşılaştığı dört kritik sorunu çözer:

  • MSK tamamen yönetilen bir hizmettir; bu da altyapıyı yönetmek yerine uygulama geliştirmeye odaklanmanızı sağlar.
  • MSK yüksek erişilebilir ve güvenilirdir; bu da kullanıcıların hizmet ve uygulamalara 7/24 erişim beklediği günümüzde giderek daha kritik hale gelmektedir.
  • MSK, kritik ve kapsamlı güvenlik yeteneklerine sahiptir.
  • MSK, yerel AWS entegrasyonuna sahiptir; bu da AWS ekosistemi içinde uçtan uca akış çözümleri kurmayı çok daha kolay hale getirir.

AWS MSK Kurulumu

AWS MSK ile başlamadan önce bir AWS hesabı oluşturun. AWS’yi ilk kez kullanıyorsanız, kapsamlı eğitimimizle AWS hesabınızı nasıl kurup yapılandıracağınızı öğrenin.

AWS Management Console’a giriş yapın ve MSK konsolunu açın. Kurulum sürecini başlatmak için "Create cluster"a tıklayın. 

AWS MSK Başlarken, Küme Oluştur.

AWS MSK ile çalışmaya başlama. Görsel kaynağı: AWS

Varsayılan ayarlar için "Quick create"i seçin, sonra açıklayıcı bir küme adı girin.

Bundan sonra, kümenize ilişkin gereksinimlerinize bağlı olarak seçebileceğiniz birçok ek seçenek vardır. İşte seçeneklerin hızlı bir özeti:

  • Küme türü: “Provisioned” veya “Serverless”
  • Apache Kafka sürümü
  • Broker türü: “Standard” veya “Express”
  • Broker boyutu
  • EBS depolama birimi

AWS MSK Küme Oluşturma yapılandırma seçenekleri.

AWS MSK yapılandırma seçenekleri

Küme her zaman bir Amazon VPC içinde oluşturulur. Varsayılan VPC’yi kullanmayı seçebilir veya özel bir VPC yapılandırıp belirtebilirsiniz.

Şimdi kümenizin etkinleştirilmesini beklemeniz yeterli; bu işlem 15 ila 30 dakika sürebilir. Küme özet sayfasından durumunu izleyebilir ve durumun “Creating”den “Active”e değiştiğini görebilirsiniz.

AWS MSK ile Verileri Alma ve İşleme

MSK kümeniz kurulduktan sonra, bir veya daha fazla konu (topic) arasında veri üretip tüketmek için bir istemci makinesi oluşturmanız gerekir. Apache Kafka birçok veri üreticiyle (web siteleri, IoT cihazları, Amazon EC2 örnekleri vb.) çok iyi entegre olduğundan, MSK de bu avantajı paylaşır.

Apache Kafka, veriyi topic adı verilen yapılarda organize eder. Her topic tek veya çok sayıda bölümden (partition) oluşur. Partitionlar, Apache Kafka’daki paralellik derecesidir. Veriler, veri bölümlendirmesi kullanılarak broker’lar arasında dağıtılır.

Apache Kafka kümeleriyle çalışırken bilmeniz gereken temel terimler:

  • Topic’ler, Kafka’da veriyi organize etmenin temel yoludur.
  • Producer’lar topic’lere veri yayımlayan uygulamalardır—Kafka’ya veri üretir ve yazarlar. Belirli topic ve partition’lara yazarlar.
  • Consumer’lar topic’lerden veri okuyan ve işleyen uygulamalardır. Abone oldukları topic’lerden veriyi çekerler.

AWS MSK ile olay odaklı bir mimari kurarken, MSK’nin ana veri alma bileşeni olduğu birkaç katmanı yapılandırmanız gerekir. Gerekebilecek katmanlara genel bir bakış:

  1. Veri alma kurulumu
  2. İşleme katmanı
  3. Depolama katmanı
  4. Analitik katmanı

Amazon MSK ve Amazon EventBridge ile olay odaklı mimariye bir örnek. Görsel kaynağı: AWS

Veri hattı iş akışlarınızda Python’dan yararlanmakla ilgileniyorsanız Introduction to AWS Boto in Python kursumuza göz atın.

AWS MSK Kullanımı için En İyi Uygulamalar

AWS MSK, kurulumu nispeten basit ve hemen kullanıma hazırdır. Ancak bazı temel en iyi uygulamalar, kümelerinizin performansını artıracak ve ileride size zaman kazandıracaktır.

Kümenizi doğru boyutlandırın

Broker başına doğru partition sayısını ve küme başına doğru broker sayısını seçmeniz gerekecektir. 

Buradaki kararlarınızı etkileyebilecek birçok faktör vardır; ancak AWS bu süreçte size yol gösterecek kullanışlı öneriler ve kaynaklar sunar.

Buna ek olarak AWS, kümenizin doğru boyutunu ve AWS MSK kullanmanın benzer bir kendi kendine yönetilen EC2 Kafka kümesine kıyasla ilişik maliyetlerini tahmin etmenize yardımcı olacak kullanımı kolay bir boyutlandırma ve fiyatlandırma hesap tablosu sağlar.

Yüksek erişilebilir kümeler oluşturun

AWS, kümelerinizi yüksek erişilebilir olacak şekilde kurmanızı önerir. Bu, bir güncelleme (örneğin Apache Kafka sürümünü güncelleme) yaparken veya AWS bir broker’ı değiştirirken özellikle önemlidir. 

Kümelerinizin yüksek erişilebilir olmasını sağlamak için yapmanız gereken üç şey vardır:

  1. Kümelerinizi üç erişilebilirlik alanına (üç-AZ küme olarak da adlandırılır) dağıtın.
  2. Çoğaltma faktörünü 3 veya daha fazla ayarlayın.
  3. Senkron kopya (in-sync replicas) sayısını en az RF-1 olarak belirleyin.

AWS’nin güzel yanı, çoklu AZ dağıtımları için katı SLA’lere bağlı kalmalarıdır; aksi halde kredilerinizi geri alırsınız.

Disk ve CPU kullanımını izleyin

AWS CloudWatch üzerinden izlemeniz gereken iki temel metrik disk ve CPU kullanımidir. Bunu yapmak yalnızca sisteminizin sorunsuz çalışmasını sağlamakla kalmaz, maliyetleri de düşük tutmaya yardımcı olur. 

Disk kullanımını ve ilişkili depolama maliyetlerini yönetmenin en iyi yolu, disk kullanımının belirli bir değeri (örneğin %85) aştığında sizi uyaran bir CloudWatch alarmı kurmak ve saklama ilkelerinizi ayarlamaktır. Günlüklerinizdeki iletiler için bir saklama süresi belirlemek, disk alanını otomatik olarak boşaltmaya büyük katkı sağlar.

Ayrıca, kümenizin performansını korumak ve darboğazları önlemek için AWS, broker’larınızın toplam CPU kullanımını %60’ın altında tutmanızı önerir. Bunu AWS CloudWatch ile izleyebilir ve örneğin broker boyutunu güncelleyerek düzeltici önlem alabilirsiniz.

Verinizi aktarım sırasında şifreleme ile koruyun

Varsayılan olarak AWS, MSK kümeniz içindeki broker’lar arasında aktarım halindeki verileri şifreler. Sisteminiz yüksek CPU kullanımı veya gecikme yaşıyorsa bunu devre dışı bırakabilirsiniz. Ancak, aktarım sırasındaki şifrelemeyi her zaman etkin tutmanız ve performans bir sorun ise bunu iyileştirmenin başka yollarını bulmanız şiddetle tavsiye edilir.

AWS bulut ortamınızı nasıl güvence altına alıp optimize edeceğiniz ve AWS’de maliyetleri ile kaynakları nasıl yöneteceğiniz hakkında daha fazla bilgi edinmek için AWS Security and Cost Management kursumuza göz atın.

AWS MSK Fiyatlandırmasını Anlamak

AWS MSK fiyatlandırması kullandıkça öde modelindedir; yani yalnızca kullandığınız kaynaklar için ödeme yaparsınız. Ancak fiyatlandırma, küme türüne, broker örnek boyutuna, depolamaya ve veri aktarımına göre değişir. Aşağıda temel maliyet bileşenlerini ve MSK harcamanızı nasıl optimize edebileceğinizi özetliyoruz.

AWS MSK fiyatlandırma bileşenleri

Maliyet bileşeniAçıklamaFaturalama yöntemi
Broker Instance SaatleriKümeniz içindeki Kafka broker’larının çalışma süresiÖrnek türüne göre saat başına
DepolamaKafka günlükleri için EBS depolamaAyda GB başına
Veri AktarımıBroker’lar ve istemciler arasında taşınan veriStandart AWS veri aktarım ücretleri
Sağlanan Bant Genişliği (İsteğe bağlı)Okuma/yazma için özel bant genişliğiSaniye başına MB
Sunucusuz İstekler (Serverless Kümeler için)Okuma ve yazma istekleriAlınan ve getirilen GB başına

Küme türüne göre AWS MSK fiyatlandırması

AWS MSK, farklı fiyatlandırma modellerine sahip iki küme türü sunar:

Sağlanan MSK kümesi (standart fiyatlandırma modeli)

  • Broker örnekleri, depolama ve veri aktarımı için ödeme yaparsınız.
  • İnce ayarlı performans kontrolü gereken iş yükleri için en iyisidir.

Sunucusuz MSK kümesi (istek başına ödeme modeli)

  • Fiyatlandırma, işlenen veri hacmine (alınan/getirilen GB) göre yapılır.
  • Trafik desenleri öngörülemeyen uygulamalar için en iyisi.

Hangisini seçmelisiniz?

  • Sağlanan MSK kullanın → Öngörülebilir iş yükleriniz ve örnek boyutları üzerinde kontrol ihtiyacınız varsa.
  • Sunucusuz MSK kullanın → İş yükünüz dalgalanıyorsa ve broker yönetiminden kaçınmak istiyorsanız.

Maliyetleri iş yükünüze göre tahmin etmek için AWS Pricing Calculator’ı deneyin.

AWS MSK’nin Diğer Akış Araçlarıyla Karşılaştırılması

Bir proje için hangi aracın en iyi olduğuna karar verirken sıklıkla birkaç seçeneği değerlendirmemiz gerekir. İşte AWS MSK’ye en yaygın alternatifler ve karşılaştırmaları. 

AWS MSK vs EC2 üzerinde Apache Kafka

MSK ile EC2 kullanarak kendi barındırdığınız bir seçenek arasındaki temel ödünleşim, rahatlık ile kontrol arasındadır:

  • AWS MSK:
    • Operasyonel karmaşıklığı azaltan, tamamen yönetilen hizmet.
    • Otomatik sağlama ve yapılandırma—peşin altyapı maliyeti yok.
    • AWS hizmetleriyle sorunsuz entegrasyon.
    • Güçlü güvenlik özellikleri.
    • Kendi barındırmaya kıyasla daha az esneklik.
  • EC2 üzerinde Kafka:
    • Kurulum, yapılandırma ve bakımın manuel yapılmasını gerektirir.
    • Altyapı ve özelleştirme üzerinde tam kontrol sunar.
    • Potansiyel olarak daha yüksek operasyonel maliyetler.
    • Daha fazla uzmanlık ve süreğen yönetim gerektirir.

AWS MSK vs. Kinesis

AWS MSK ile Kinesis arasında seçim önceliklerinize bağlıdır:

  • Şunlar için Kinesis kullanın:
    • Tamamen sunucusuz bir mimariye ihtiyacınız varsa.
    • En az operasyonel yükle AWS tarafından yönetilen bir hizmet.
    • Veri akışı için shard kullanır ancak veri saklama sınırlamaları vardır.
    • Daha basit veri akışı gereksinimleri için en uygunudur.
  • Şunlar için AWS MSK kullanın:
    • Kafka’nın topic ve partition modeline ihtiyacınız varsa.
    • Neredeyse sınırsız veri saklama (depolamaya bağlıdır).
    • Daha esnek ve özelleştirilebilir.
    • Gerektiğinde AWS’den taşınmaya olanak tanır.

Kinesis’e aşina değilseniz, AWS Kinesis ve Lambda ile akış verileri üzerinde çalışmayı anlatan bir kursumuz var.

AWS MSK vs. Confluent

AWS MSK ile Confluent arasındaki seçim, özellik gereksinimleri ve bulut stratejisine bağlıdır:

  • Şunlar için Confluent kullanın:
    • Yerleşik bağlayıcılarla kapsamlı bir özellik setine ihtiyacınız varsa.
    • Daha yalın bir dağıtım sürecini tercih ediyorsanız.
    • Dinamik ölçeklendirme gerektiren ani tepe yapan iş yüklerini yönetiyorsanız.
    • Daha yüksek maliyetlidir ancak sınırlı özelliklere sahip ücretsiz bir katman sunar.
  • Şunlar için AWS MSK kullanın:
    • Tutarlı iş yükleri için uygun maliyetli bir seçenek istiyorsanız.
    • AWS ekosistemiyle derin entegrasyona sahipseniz.
    • Kurumiçi Kafka uzmanlığınız varsa.
    • Genişletilmiş işlevsellik için ek AWS hizmetlerini entegre etmeye açıksanız.

Aşağıdaki tablo, AWS MSK ve alternatiflerinin bir karşılaştırmasını sunar:

Özellik

AWS MSK

EC2 üzerinde Apache Kafka

Kinesis

Confluent

Dağıtım

Tamamen yönetilen

EC2 üzerinde kendi kendine yönetilen

Tamamen yönetilen

Tamamen yönetilen veya kendi kendine yönetilen

Kullanım kolaylığı

Kurulumu ve yönetimi kolay

Manuel kurulum ve ölçeklendirme gerektirir

Basit kurulum; AWS-yerel

Kullanıcı dostu arayüz ve gelişmiş araçlar

Ölçeklenebilirlik

Manuel ayarlamalarla otomatik ölçeklendirme

Manuel ölçeklendirme

Sorunsuz ölçeklendirme

Esneklikle otomatik ölçeklendirme

Gecikme

Düşük gecikme

Düşük gecikme

Küçük yükler için daha düşük gecikme

MSK ile karşılaştırılabilir

Protokol desteği

Kafka API uyumlu

Kafka API uyumlu

Sahipli Kinesis protokolü

Kafka API ve ek protokoller

Veri saklama

Yapılandırılabilir (varsayılan en fazla 7 gün)

Yapılandırılabilir

Yapılandırılabilir (azami 365 gün)

Yüksek düzeyde yapılandırılabilir

İzleme ve metrikler

CloudWatch ile entegre

Özel kurulum gerektirir

CloudWatch ile entegre

Gelişmiş izleme araçları

Maliyet

Kullandıkça öde

EC2 örnek fiyatlandırmasına dayalı

Kullandıkça öde

Abonelik tabanlı

Güvenlik

Yerleşik AWS güvenlik özellikleri

Güvenliğin manuel yapılandırılması gerekir

AWS IAM ile entegre

Kapsamlı güvenlik özellikleri

Kullanım durumu uygunluğu

AWS ekosistemindeki Kafka kullanıcıları için en iyisi

Esnek, ancak bakım yükü yüksek

AWS-yerel uygulamalar için en iyisi

Gelişmiş Kafka kullanıcıları ve işletmeler

Kapanış Düşünceleri

Apache Kafka, veri kaybını göze alamayan ve birden çok veri kaynağını bağlamayı veya karmaşık veri hatları kurmayı gerektiren durumlar için başlıca tercihtir. AWS MSK, Kafka kümelerini kurma ve yapılandırma konusundaki pek çok sorunu ortadan kaldırarak geliştiricilerin altyapı yerine uygulamaları oluşturmaya ve iyileştirmeye daha fazla odaklanmasını sağlar.

AWS sertifikası almak AWS kariyerinize başlamak için mükemmel bir yoldur. kurs kataloğumuza göz atarak AWS becerilerinizi geliştirebilir ve projeler aracılığıyla uygulamalı deneyim kazanabilirsiniz!

SSS

AWS MSK, Lambda ve S3 gibi diğer AWS hizmetleriyle entegre olabilir mi?

Evet, AWS MSK birçok AWS hizmetiyle entegre olur. Tamamen yönetilen Kafka Connect bağlayıcılarını çalıştırmak için MSK Connect’i kullanabilirsiniz. Önceden oluşturulmuş bağlayıcıları kullanabilir veya MSK ile S3, OpenSearch ve RDS gibi hizmetler arasında veri taşımak için özel bağlayıcılar oluşturabilirsiniz. AWS MSK ayrıca Lambda işlevleri için bir olay kaynağı olarak hizmet verebilir. Lambda’yı MSK topic’lerinizi yoklayacak şekilde yapılandırabilir ve yeni iletilere göre işlevleri otomatik olarak tetikleyebilirsiniz; toplu işleme ve hata yönetimi desteği vardır.

Mevcut Kafka kümemi AWS MSK’ye taşıyabilir miyim?

Evet, MSK’ye geçiş birkaç farklı yolla mümkündür. Küme çoğaltması için MirrorMaker 2.0’ı kullanabilir, doğrudan topic geçişi yapabilir veya üçüncü taraf araçları kullanabilirsiniz. AWS, minimum kesinti süresi için ayrıntılı geçiş dokümantasyonu ve en iyi uygulamalar sunar.

AWS MSK kümeleri için hangi izleme ve metrikler mevcut?

MSK, izleme için CloudWatch ile entegre olur ve broker sağlığı, küme performansı ve consumer gecikmesi için metrikler sağlar. Temel metrikler arasında CPU kullanımı, disk alanı, ağ bant genişliği ve partition sayıları yer alır.

Joleen Bothma

Yazar

Joleen Bothma

Konular

İlgili