Oddzielanie komponentów za pomocą usług AWS Messaging

Tworzenie aplikacji na AWS

Ricardo Sueiras

Principal Technologist

Podstawy Amazon SQS

 

sqs overview

  • Obsługuje skoki ruchu niezależnie od producentów.
  • Zarządzana kolejka komunikatów do asynchronicznej wymiany wiadomości.
  • Producenci wysyłają komunikaty do kolejki.
  • Konsumenci pobierają komunikaty z kolejki.
  • Komunikaty są przechowywane, dopóki konsument ich nie odbierze.
  • Czas przechowywania: domyślnie 4 dni, maksymalnie 14 dni.
  • Konsumenci odpytują kolejkę i przetwarzają we własnym tempie.
Tworzenie aplikacji na AWS

Widoczność komunikatów

  • Po odczytaniu przez konsumenta komunikat staje się niewidoczny.
  • Limit czasu widoczności określa, jak długo pozostaje ukryty.
  • Jeśli przetwarzanie się nie powiedzie i komunikat nie zostanie usunięty:
    • Staje się ponownie widoczny.
    • Można go przetworzyć ponownie.
  • Domyślny limit czasu widoczności: 30 sekund.
  • Maksymalny limit czasu widoczności wynosi 12 godzin.

 

message visibility

Tworzenie aplikacji na AWS

Rozmiar komunikatu

 

image size

  • Komunikaty mogą mieć maksymalnie 256 KB.
  • Biblioteka SQS Extended Client umożliwia obsługę większych komunikatów.
  • Przechowuje duży ładunek w Amazon S3.
  • W treści komunikatu umieszcza wskaźnik do obiektu S3.
Tworzenie aplikacji na AWS

Krótkie odpytywanie

  • Strategia odpytywania wpływa na koszty i wydajność.
  • Domyślna metoda to krótkie odpytywanie.
  • Odpytuje podzbiór serwerów SQS i natychmiast zwraca wynik.
  • Może zwrócić pustą odpowiedź, nawet gdy komunikaty są dostępne.
  • Generuje więcej wywołań API i wyższe koszty.

 

polling

Tworzenie aplikacji na AWS

Długie odpytywanie

  • Długie odpytywanie przeszukuje wszystkie serwery SQS.
  • Czeka na komunikat do 20 sekund.
  • Eliminuje zbędne puste odpowiedzi.
  • Ogranicza liczbę wywołań API i obniża koszty.

 

polling

Tworzenie aplikacji na AWS

Kolejki standardowe

  • SQS oferuje dwa rodzaje kolejek.
  • Kolejki standardowe:
    • Dostarczenie co najmniej raz.
    • Kolejność według najlepszego wysiłku.
    • Niemal nieograniczona przepustowość.

 

queue types

Tworzenie aplikacji na AWS

Kolejki FIFO

 

queue types

  • Kolejki FIFO:
    • Przetwarzanie dokładnie raz.
    • Ścisła kolejność komunikatów.
    • Wbudowana deduplikacja komunikatów.
  • Domyślnie 300 TPS
    • Wzrost do 3 000 przy wsadowaniu lub więcej w trybie wysokiej przepustowości.
  • Wybór typu kolejki zależy od przypadku użycia:
    • Standardowa — gdy liczy się skalowalność i przepustowość.
    • FIFO — gdy wymagana jest kolejność i deduplikacja.
Tworzenie aplikacji na AWS

Obsługa uszkodzonych komunikatów

 

dlq

  • Kolejki utraconych komunikatów (DLQ) przechowują komunikaty, których nie udało się przetworzyć.
  • Komunikat trafia do DLQ po przekroczeniu wartości maxReceiveCount.
  • Zapobiega to nieskończonemu ponawianiu przetwarzania uszkodzonego komunikatu.
  • DLQ musi być tego samego typu co kolejka źródłowa.
  • Przenieś komunikaty z powrotem do kolejki źródłowej, aby je ponownie przetworzyć.
Tworzenie aplikacji na AWS

Zabezpieczanie kolejek

 

securing SQS

  • Domyślnie szyfruje dane w transporcie za pomocą HTTPS.
  • Szyfrowanie po stronie serwera w spoczynku przy użyciu AWS KMS.
  • Szyfrowanie ładunku po stronie klienta za pomocą AWS Encryption SDK.
  • Polityki IAM kontrolują dostęp do kolejek SQS.
  • Polityki zasobów zapewniają szczegółową kontrolę na poziomie kolejki.
Tworzenie aplikacji na AWS

Podstawy Amazon SNS

  • Zarządzana usługa publikowania i subskrypcji (pub/sub).
  • Używa modelu push.
  • Wydawcy wysyłają komunikaty do tematu.
    • Maksymalny rozmiar komunikatu wynosi 256 KB.
  • Konsumenci subskrybują tematy.
  • Subskrybenci odbierają komunikaty pasywnie.

 

sns overview

Tworzenie aplikacji na AWS

Skalowalność

  • Obsługuje do 12,5 miliona subskrypcji na temat.
  • Brak przechowywania komunikatów:
    • Komunikaty są tracone, gdy subskrybent jest niedostępny.
    • Aby uniknąć utraty komunikatów, użyj DLQ lub trwałego subskrybenta (kolejki SQS).
  • Rozsyła pojedyncze zdarzenie do wielu konsumentów (fan-out).

 

scaling sns

Tworzenie aplikacji na AWS

Filtrowanie komunikatów

  • SNS obsługuje polityki filtrowania komunikatów.
  • Subskrypcje otrzymują tylko interesujące je komunikaty.
  • Bez filtra subskrypcja odbiera każdy komunikat.
  • Polityki filtrowania są stosowane na poziomie subskrypcji, nie tematu.

 

filter

Tworzenie aplikacji na AWS

Logika i ocena filtrów

 

filter polices

  • Filtry są definiowane w formacie JSON.
  • Porównywane z atrybutami komunikatu.
  • Wiele warunków jest ocenianych jako AND.
  • Wiele wartości w obrębie jednego warunku jest ocenianych jako OR.
  • Obsługiwanych jest wiele operacji filtrowania:
    • Dokładne dopasowanie ciągu, numeryczne, prefiksowe, wykluczające i zakresowe.
Tworzenie aplikacji na AWS

Bezpieczeństwo SNS

 

sns security

  • Domyślnie szyfruje dane w transporcie za pomocą HTTPS.
  • Szyfrowanie po stronie serwera w spoczynku przy użyciu AWS KMS.
    • Nadaj SNS uprawnienia do używania klucza KMS.
  • Polityki IAM zapewniają kontrolę dostępu.
    • Określają, kto może publikować w temacie lub go subskrybować.
Tworzenie aplikacji na AWS

Czas na praktykę!

Tworzenie aplikacji na AWS

Preparing Video For Download...