0Pricing
Cloud & IT Cert Prep · Ders

SNS Konuları ve Fan-Out Mimarisi

Bir SNS konusuna mesaj yayımlayacak ve bunu aynı anda birden fazla SQS kuyruğuna, Lambda işlevine ve HTTP uç noktasına dağıtacaksınız.

SNS Konuları ve Fan-Out Mimarisi, CoddyKit'te ücretsiz bir Cloud & IT Cert Prep dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cloud & IT Cert Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.

Amazon SNS Nedir

Amazon Simple Notification Service (SNS), tamamen yönetilen bir yayınla/abone ol mesajlaşma hizmetidir. Yayıncılar bir SNS konusuna mesaj gönderir ve SNS bu mesajları tüm abonelere hemen iletir. SQS'nin (çekme tabanlı) aksine SNS, itme tabanlıdır—mesajları yayımlanır yayımlanmaz abonelere iletir. Bu özellik, SNS'yi olayları aynı anda birden fazla alt sisteme yayınlamak için ideal hâle getirir.

SNS Konuları: Standard ve FIFO

SQS gibi SNS'nin de iki konu türü vardır: Standard konuları en iyi çaba esaslı mesaj sıralaması, en az bir kez teslim ve neredeyse sınırsız aktarım hızı sunar; SQS, Lambda, HTTP uç noktaları, e-posta, SMS ve mobil anında iletime teslimat yapabilir. FIFO konuları yalnızca FIFO SQS abonelerine kesin sıralama ve tam olarak bir kez teslim garantisi verir. FIFO konuları, toplu işlemeyle saniyede 3.000 mesaja kadar destek sunar ve olayların sırasının birden fazla abone arasında korunması gerektiğinde kullanılır.

aws sns create-topic --name 'OrderEvents'

# Create FIFO topic
aws sns create-topic \
  --name 'OrderEvents.fifo' \
  --attributes '{"FifoTopic": "true", "ContentBasedDeduplication": "true"}'

SNS Abone Türleri

SNS, protokol tabanlı birden fazla abone türünü destekler:

  • SQS: kalıcı kuyruklama (eşzamansız işleme için en yaygın seçenek)
  • Lambda: doğrudan çağırma (SNS açısından eşzamanlı)
  • HTTP/HTTPS: harici uç noktalara webhook teslimatı
  • E-posta / E-posta-JSON: insanlara bildirim
  • SMS: kısa mesaj teslimatı
  • Mobil Anında İletim: platform uygulamaları aracılığıyla FCM, APNs
  • Firehose: Kinesis Data Firehose aracılığıyla S3'e veya Redshift'e akış
# Subscribe an SQS queue to an SNS topic
aws sns subscribe \
  --topic-arn 'arn:aws:sns:us-east-1:123456789012:OrderEvents' \
  --protocol sqs \
  --notification-endpoint 'arn:aws:sqs:us-east-1:123456789012:InventoryQueue'

Fan-Out Mimari Deseni

Fan-out, temel SNS desenidir: bir mesaja bir konuya yayımlar ve SNS bunu tüm abonelere aynı anda iletir. Örneğin yeni bir sipariş olayı şu hedeflere dağıtılabilir: depo sipariş karşılama işlemleri için bir SQS kuyruğu, envanter güncellemesi için başka bir SQS kuyruğu, dolandırıcılık tespiti için bir Lambda işlevi ve operasyon ekibi için bir e-posta aboneliği. Her abone, aralarında bağımlılık olmadan olayı bağımsız şekilde işler. Bu yaklaşım, birden fazla sisteme yönlendirme yapan tek bir tüketiciden çok daha ölçeklenebilirdir.

SNS + SQS Fan-Out: En İyi Uygulama

Önerilen desen SNS ve SQS'yi birleştirir: SNS'ye yayımlanan mesaj birden fazla SQS kuyruğuna dağıtılır. Bu yaklaşım şunları sağlar:

  • Kalıcılık: bir tüketici çalışmıyorsa mesajlar SQS'de kuyruğa alınır
  • Bağımsız ölçeklendirme: her tüketici kendi hızında işlem yapar
  • Gevşek bağlılık: yeni tüketiciler, yayıncıyı değiştirmeden SNS'ye abone olabilir
  • Yeniden denemeye dayanıklılık: SQS, görünürlük zaman aşımı ve DLQ sağlar

Doğrudan Lambda abonelerinde SQS'nin sağladığı arabelleğe alma bulunmaz; bu nedenle SNS→SQS→Lambda, daha dayanıklı üç katmanlı desendir.

Mesaj Teslimatında Yeniden Denemeler ve DLQ

SNS bir aboneye teslimat yapamadığında (HTTP uç noktası 5xx döndürür, Lambda hata verir veya SQS kullanılamaz durumdadır), üstel geri çekilme stratejisiyle yeniden dener. Yeniden deneme ilkeleri protokole göre farklılık gösterir: HTTP uç noktaları 23 gün boyunca en fazla 4 anlık yeniden denemeden ve ardından üstel geri çekilmeden yararlanır; Lambda ve SQS yeniden denemeleri kendi yeniden deneme mekanizmalarıyla yönetir. Tüm teslimat yeniden denemelerini tüketen mesajları yakalamak için bir SNS Topic DLQ yapılandırın; böylece hiçbir olay sessizce kaybolmaz.

SNS'ye Mesaj Yayımlama

SNS'ye AWS SDK veya CLI kullanarak yayımlayın. Her mesajda bir Subject (e-posta için), bir Message gövdesi (en fazla 256 KB) ve yönlendirme için Message Attributes bulunabilir. Farklı abone türleri (SQS, e-posta veya mobil) için her protokole farklı içerik göndermek üzere Message Structure kullanabilirsiniz—protokole özgü anahtarlar içeren JSON, yükü her abone türüne göre uyarlamanızı sağlar.

aws sns publish \
  --topic-arn 'arn:aws:sns:us-east-1:123456789012:OrderEvents' \
  --message '{"orderId": "12345", "status": "PLACED", "amount": 99.99}' \
  --subject 'New Order Placed' \
  --message-attributes '{
    "orderType": {"DataType": "String", "StringValue": "PREMIUM"}
  }'

SNS Abonelik Filtre İlkeleri

Abonelik filtre ilkeleri, her abonenin mesaj özniteliklerine göre yalnızca kendisiyle ilgili mesajları almasını sağlar. Filtreleme yapılmadığında tüm aboneler yayımlanan tüm mesajları alır. Bir filtre ilkesiyle abone, hangi öznitelik değerleriyle ilgilendiğini belirtir. Örneğin 'PREMIUM' sipariş kuyruğu {"orderType": ["PREMIUM"]} filtresiyle abone olur; 'STANDARD' kuyruğu ["STANDARD"] değerini filtreler. Her abone yalnızca kendisiyle ilgili alt kümeyi işler ve gereksiz işlemeyi azaltır.

aws sns set-subscription-attributes \
  --subscription-arn 'arn:aws:sns:...:subscription/...' \
  --attribute-name FilterPolicy \
  --attribute-value '{"orderType": ["PREMIUM"], "region": ["US", "EU"]}'

Mobil Anında İletim Bildirimleri için SNS

SNS, iOS (APNs) ve Android (FCM/GCM) cihazlarına doğrudan mobil anında iletim bildirimleri göndermeyi destekler. Cihaz belirteçlerini platform uç noktası ARN'leri olarak kaydeder, ardından doğrudan bir uç noktaya veya platform uygulaması aboneleri olan bir konuya yayımlarsınız. Büyük ölçekli doğrudan cihaza bildirimlerde (milyonlarca cihaz) SNS'yi SQS fan-out ile birleştirin: SNS bildirim olayını SQS'ye yönlendirir, bir çalışan hizmeti de belirteçlerin toplu çözümlemesini ve geniş ölçekte teslimatını gerçekleştirir.

SNS Mesaj Şifreleme ve Erişim Denetimi

AWS KMS kullanarak SNS mesajlarını sunucu tarafı şifrelemeyle koruyun. Bu işlem, mesajları SNS altyapısı içinde bekleme durumundayken şifreler. Erişim denetimi hem kaynak tabanlı ilkeleri (konuya kimin yayımlama veya konudan kimin abone olabileceği) hem de IAM ilkelerini kullanır. Bir S3 klasörünün bir SNS konusuna bildirim yayımlamasına izin vermek için konuya ait kaynak ilkesindeki S3 hizmet sorumlusuna sns:Publish izni verin. Yetkisiz olay eklenmesini önlemek için yayımlamayı her zaman yetkili kaynaklarla sınırlandırın.

SNS ve SQS: Birbirini Tamamlayan Hizmetler

SNS ve SQS birbirinin alternatifi değil, birbirini tamamlayan hizmetlerdir. SNS (itme), birden fazla tüketiciye hemen yayın yapmak içindir—birden fazla sistemin bir olaya tepki vermesi gerektiğinde kullanın. SQS (çekme), yeniden deneme ve DLQ ile güvenilir, kalıcı ve tek tüketicili işleme içindir—her mesajı tek bir tüketicinin kendi hızında tam olarak bir kez işlemesi gerektiğinde kullanın. SNS→SQS fan-out deseni her ikisini de sağlar: SNS'den yayın teslimi ve SQS'den kalıcı, yeniden denenebilir işleme. Bu birleşim, SAA-C03 sınav senaryolarında sıkça görülür.

Hızlı Kontrol

Bu dersteki AWS Solutions Architect (SAA-C03) kavramlarını anlayıp anlamadığınızı test edin.

Ders Özeti

Bu derste şunları öğrendiniz: SNS konuları, SQS, Lambda, HTTP, SMS ve e-posta dâhil olmak üzere abonelere itme tabanlı yayın sağlar; fan-out mimarisi, kalıcı ve bağımsız olarak ölçeklenebilen çok tüketicili olay işleme elde etmek için tek bir SNS konusunun birden fazla SQS kuyruğunu beslemesini kullanır; abonelik filtre ilkeleri, mesaj özniteliklerine göre yalnızca ilgili olayları her aboneye yönlendirerek gereksiz işlemeyi azaltır. Sırada SQS mesaj filtreleme ile SNS + SQS tümleştirmesini ayrıntılı olarak inceleyeceğiz.

Sıkça Sorulan Sorular

“SNS Konuları ve Fan-Out Mimarisi” dersi ücretsiz mi?

Evet — “SNS Konuları ve Fan-Out Mimarisi” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cloud & IT Cert Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.

“SNS Konuları ve Fan-Out Mimarisi” dersinde ne öğreneceğim?

Bir SNS konusuna mesaj yayımlayacak ve bunu aynı anda birden fazla SQS kuyruğuna, Lambda işlevine ve HTTP uç noktasına dağıtacaksınız. Cloud & IT Cert Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Cloud & IT Cert Prep öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Cloud & IT Cert Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“SNS Konuları ve Fan-Out Mimarisi” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Cloud & IT Cert Prep dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Cloud & IT Cert Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. SQS Standard ve FIFO Kuyrukları
  2. Görünürlük Zaman Aşımı, DLQ ve Uzun Yoklama
  3. SNS Konuları ve Fan-Out Mimarisi
  4. SQS Mesaj Filtreleme ve SNS + SQS Entegrasyonu
← Cloud & IT Cert Prep Sayfasına Dön