AWS Mesajlaşma Servisleriyle Ayrıştırma

AWS üzerinde Uygulama Geliştirme

Ricardo Sueiras

Principal Technologist

Amazon SQS temelleri

 

sqs genel bakış

  • Trafik patlamalarını üreticilerden bağımsız yönetir.
  • Asenkron mesajlaşma için yönetilen mesaj kuyruğu.
  • Üreticiler mesajları kuyruğa gönderir.
  • Tüketiciler mesajları kuyruktan çeker.
  • Mesajlar bir tüketici alana kadar tutulur.
  • Saklama: varsayılan 4 gün, en fazla 14 gün.
  • Tüketiciler kuyruğu yoklar ve kendi hızında işler.
AWS üzerinde Uygulama Geliştirme

Mesaj görünürlüğü

  • Bir tüketici mesajı okuduğunda mesaj görünmez olur.
  • Görünürlük zaman aşımı, ne kadar saklı kalacağını belirler.
  • İşleme başarısız olur ve mesaj silinmezse:
    • Yeniden görünür olur.
    • Yeniden işlenebilir.
  • Varsayılan görünürlük zaman aşımı 30 saniyedir.
  • En fazla görünürlük zaman aşımı 12 saattir.

 

mesaj görünürlüğü

AWS üzerinde Uygulama Geliştirme

Mesaj boyutu

 

görüntü boyutu

  • Mesaj boyutu en fazla 256KB olabilir.
  • SQS Extended Client kitaplığı daha büyük mesajları etkinleştirir.
  • Büyük yükü Amazon S3'te saklar.
  • Mesaj içinde S3'e bir gösterge (pointer) gönderir.
AWS üzerinde Uygulama Geliştirme

Kısa yoklama

  • Yoklama stratejisi maliyeti ve verimliliği etkiler.
  • Kısa yoklama varsayılandır.
  • SQS sunucularının bir alt kümesini sorgular, hemen döner.
  • Mesaj varken bile boş dönebilir.
  • Daha fazla API çağrısı ve daha yüksek maliyet doğurur.

 

yoklama

AWS üzerinde Uygulama Geliştirme

Uzun yoklama

  • Uzun yoklama tüm SQS sunucularını sorgular.
  • Bir mesaj için 20 saniyeye kadar bekler.
  • Gereksiz boş yanıtları ortadan kaldırır.
  • API çağrılarını azaltır, maliyeti düşürür.

 

yoklama

AWS üzerinde Uygulama Geliştirme

Standart kuyruklar

  • SQS iki tür kuyruk sunar.
  • Standart kuyruklar:
    • En az bir kez teslimat.
    • Azami gayretle sıralama.
    • Neredeyse sınırsız iş hacmi (throughput).

 

kuyruk türleri

AWS üzerinde Uygulama Geliştirme

FIFO kuyruklar

 

kuyruk türleri

  • FIFO kuyruklar:
    • Tam olarak bir kez işleme.
    • Sıkı mesaj sıralaması.
    • Yerleşik mesaj tekilleştirme.
  • Varsayılan 300 TPS
    • Toplu gönderimle 3.000'e, yüksek iş hacmi moduyla daha fazlasına çıkar.
  • Kullanıma göre kuyruk türü seç:
    • Ölçek ve iş hacmi için Standart.
    • Sıralama ve tekilleştirme için FIFO.
AWS üzerinde Uygulama Geliştirme

Zehirli mesajları yönetme

 

dlq

  • Dead letter kuyrukları (DLQ), işlenemeyen mesajları saklar.
  • Bir mesaj maxReceiveCount aşınca DLQ'ya taşınır.
  • Bu, zehirli bir mesajın sonsuza dek yeniden denenmesini önler.
  • DLQ, kaynakla aynı kuyruk türünde olmalıdır.
  • Yeniden işlemek için mesajları kaynak kuyruğa geri taşı.
AWS üzerinde Uygulama Geliştirme

Kuyrukları güvene alma

 

SQS güvenliği

  • Varsayılan olarak HTTPS ile aktarımda şifreler.
  • AWS KMS ile beklemede sunucu tarafı şifreleme.
  • Yükü istemci tarafında AWS Encryption SDK ile şifrele.
  • IAM ilkeleri, SQS kuyruklarına kimin erişebileceğini belirler.
  • Kaynak tabanlı ilkeler, kuyruk düzeyinde ayrıntılı kontrol sağlar.
AWS üzerinde Uygulama Geliştirme

Amazon SNS temelleri

  • Yönetilen yayınla-abone ol (pub/sub) servisi.
  • İtme (push) modeli kullanır.
  • Yayıncılar mesajları bir konuya gönderir.
    • En fazla mesaj boyutu 256KB'dir.
  • Tüketiciler konulara abone olur.
  • Aboneler mesajları pasif olarak alır.

 

sns genel bakış

AWS üzerinde Uygulama Geliştirme

Ölçek

  • Konu başına 12,5 milyon aboneye kadar destekler.
  • Mesaj saklama yok:
    • Bir abone müsait değilse mesajlar kaybolur.
    • Kaybı önlemek için DLQ veya dayanıklı abone (SQS kuyruğu) kullan.
  • Tek bir olayı birçok tüketiciye dağıtır (fan-out).

 

sns ölçekleme

AWS üzerinde Uygulama Geliştirme

Mesaj filtreleme

  • SNS mesaj filtreleme ilkelerini destekler.
  • Abonelikler yalnızca ilgilendikleri mesajları alır.
  • Filtre yoksa, bir abonelik her mesajı alır.
  • Filtre ilkeleri konuya değil, aboneliğe uygulanır.

 

filtre

AWS üzerinde Uygulama Geliştirme

Filtre mantığı ve değerlendirme

 

filtre ilkeleri

  • Filtreler JSON ile tanımlanır.
  • Mesaj özniteliklerine göre eşleştirilir.
  • Birden çok koşul AND olarak değerlendirilir.
  • Bir koşul içindeki birden çok değer OR olarak değerlendirilir.
  • Çok sayıda filtre işlemi desteklenir:
    • Birebir metin, sayısal, önek, hariç tutma ve aralık eşleştirme.
AWS üzerinde Uygulama Geliştirme

SNS güvenliği

 

sns güvenliği

  • Varsayılan olarak HTTPS ile aktarımda şifreler.
  • AWS KMS ile beklemede sunucu tarafı şifreleme.
    • SNS'e KMS anahtarını kullanma izni ver.
  • IAM ilkeleri erişim denetimi sağlar.
    • Bir konuya kimin yayınlayıp/kimlerin abone olabileceğini belirler.
AWS üzerinde Uygulama Geliştirme

Hadi pratik yapalım!

AWS üzerinde Uygulama Geliştirme

Preparing Video For Download...