Oddělení pomocí AWS Messaging Services

Developing Applications on AWS

Ricardo Sueiras

Principal Technologist

Základy Amazon SQS

 

přehled SQS

  • Zvládá nárůsty provozu nezávisle na producentech.
  • Spravovaná fronta zpráv pro asynchronní komunikaci.
  • Producenti odesílají zprávy do fronty.
  • Konzumenti zprávy z fronty čtou.
  • Zprávy zůstávají ve frontě, dokud je konzument nepřevezme.
  • Uchovávání: výchozí 4 dny, maximum 14 dní.
  • Konzumenti frontu dotazují a zpracovávají vlastním tempem.
Developing Applications on AWS

Viditelnost zprávy

  • Po přečtení konzumentem se zpráva stane neviditelnou.
  • Časový limit viditelnosti určuje, jak dlouho zůstane skrytá.
  • Pokud zpracování selže a zpráva není smazána:
    • Znovu se stane viditelnou.
    • Lze ji znovu zpracovat.
  • Výchozí časový limit viditelnosti: 30 sekund.
  • Maximum je 12 hodin.

 

viditelnost zprávy

Developing Applications on AWS

Velikost zprávy

 

velikost zprávy

  • Zprávy mohou mít velikost až 256 KB.
  • Knihovna SQS Extended Client umožňuje větší zprávy.
  • Velký obsah ukládá do Amazon S3.
  • Do těla zprávy vloží odkaz na S3.
Developing Applications on AWS

Krátké dotazování

  • Strategie dotazování ovlivňuje náklady i efektivitu.
  • Výchozí je krátké dotazování.
  • Dotazuje podmnožinu serverů SQS a ihned vrátí výsledek.
  • Může vrátit prázdnou odpověď, i když jsou zprávy dostupné.
  • Vede k více voláním API a vyšším nákladům.

 

dotazování

Developing Applications on AWS

Dlouhé dotazování

  • Dlouhé dotazování se obrací na všechny servery SQS.
  • Čeká až 20 sekund na příchod zprávy.
  • Eliminuje zbytečné prázdné odpovědi.
  • Snižuje počet volání API a náklady.

 

dotazování

Developing Applications on AWS

Standardní fronty

  • SQS nabízí dva typy front.
  • Standardní fronty:
    • Doručení alespoň jednou.
    • Řazení podle nejlepšího úsilí.
    • Téměř neomezená propustnost.

 

typy front

Developing Applications on AWS

FIFO fronty

 

typy front

  • FIFO fronty:
    • Zpracování právě jednou.
    • Striktní pořadí zpráv.
    • Vestavěná deduplikace zpráv.
  • Výchozí 300 TPS
    • S dávkováním až 3 000, s režimem vysoké propustnosti i více.
  • Volba typu fronty závisí na případu použití:
    • Standardní pro škálování a propustnost.
    • FIFO pro řazení a deduplikaci.
Developing Applications on AWS

Zpracování problematických zpráv

 

dlq

  • Fronty nedoručitelných zpráv (DLQ) uchovávají zprávy, jejichž zpracování selhalo.
  • Zpráva se přesune do DLQ po překročení maxReceiveCount.
  • Zabrání donekonečna opakovanému zpracování problematické zprávy.
  • DLQ musí být stejného typu jako zdrojová fronta.
  • Zprávy lze přesunout zpět do zdrojové fronty k opětovnému zpracování.
Developing Applications on AWS

Zabezpečení front

 

zabezpečení SQS

  • Šifrování přenosu pomocí HTTPS je výchozí.
  • Šifrování dat v klidu na straně serveru pomocí AWS KMS.
  • Šifrování obsahu na straně klienta pomocí AWS Encryption SDK.
  • Přístup k frontám SQS řídí zásady IAM.
  • Zásady na úrovni prostředku umožňují granulární kontrolu na úrovni fronty.
Developing Applications on AWS

Základy Amazon SNS

  • Spravovaná služba publish-subscribe (pub/sub).
  • Používá model push.
  • Vydavatelé odesílají zprávy do tématu.
    • Maximální velikost zprávy je 256 KB.
  • Konzumenti odebírají témata.
  • Odběratelé přijímají zprávy pasivně.

 

přehled SNS

Developing Applications on AWS

Škálování

  • Podporuje až 12,5 milionu odběrů na téma.
  • Žádné uchovávání zpráv:
    • Zprávy se ztratí, pokud je odběratel nedostupný.
    • Ke ztrátě zpráv předcházej pomocí DLQ nebo trvalého odběratele (fronta SQS).
  • Distribuuje jednu událost mnoha konzumentům (fan-out).

 

škálování SNS

Developing Applications on AWS

Filtrování zpráv

  • SNS podporuje zásady filtrování zpráv.
  • Odběry přijímají pouze zprávy, které je zajímají.
  • Bez filtru odběr přijímá každou zprávu.
  • Zásady filtrování se uplatňují na úrovni odběru, nikoli tématu.

 

filtr

Developing Applications on AWS

Logika a vyhodnocení filtrů

 

zásady filtrování

  • Filtry jsou definovány v JSON.
  • Porovnávají se s atributy zprávy.
  • Více podmínek se vyhodnocuje jako AND.
  • Více hodnot v rámci podmínky se vyhodnocuje jako OR.
  • Podporuje se mnoho operací filtrování:
    • Přesná shoda řetězce, číselná, prefixová, vylučovací a rozsahová shoda.
Developing Applications on AWS

Zabezpečení SNS

 

zabezpečení SNS

  • Šifrování přenosu pomocí HTTPS je výchozí.
  • Šifrování dat v klidu na straně serveru pomocí AWS KMS.
    • Udělení oprávnění SNS k použití klíče KMS.
  • Řízení přístupu pomocí zásad IAM.
    • Určují, kdo může publikovat do tématu nebo ho odebírat.
Developing Applications on AWS

Pojďme cvičit!

Developing Applications on AWS

Preparing Video For Download...