Frikoppling med AWS meddelandetjänster

Utveckla applikationer på AWS

Ricardo Sueiras

Principal Technologist

Grunderna i Amazon SQS

 

sqs overview

  • Hanterar trafikstockar oberoende av producenter.
  • Hanterad meddelandekö för asynkron meddelandehantering.
  • Producenter skickar meddelanden till en kö.
  • Konsumenter hämtar meddelanden från kön.
  • Meddelanden lagras tills en konsument hämtar dem.
  • Lagring: 4 dagar som standard, max 14 dagar.
  • Konsumenter pollar kön och bearbetar i sin egen takt.
Utveckla applikationer på AWS

Meddelandesynlighet

  • Ett meddelande blir osynligt när en konsument läser det.
  • Synlighetstimeout styr hur länge det är dolt.
  • Om bearbetningen misslyckas och meddelandet inte tas bort:
    • Det blir synligt igen.
    • Det kan bearbetas på nytt.
  • Synlighetstimeout: 30 sekunder som standard.
  • Maximal synlighetstimeout är 12 timmar.

 

message visibility

Utveckla applikationer på AWS

Meddelandestorlek

 

image size

  • Meddelanden kan vara upp till 256 KB stora.
  • Biblioteket SQS Extended Client möjliggör större meddelanden.
  • Lagrar den stora nyttolasten i Amazon S3.
  • Skickar en pekare till S3 i meddelandets nyttolast.
Utveckla applikationer på AWS

Kort polling

  • Pollingstrategi påverkar kostnad och effektivitet.
  • Kort polling är standard.
  • Frågar en delmängd av SQS-servrar och returnerar omedelbart.
  • Kan returnera tomt svar även när meddelanden finns.
  • Ger fler API-anrop och högre kostnad.

 

polling

Utveckla applikationer på AWS

Lång polling

  • Lång polling frågar alla SQS-servrar.
  • Väntar upp till 20 sekunder på ett meddelande.
  • Eliminerar onödiga tomma svar.
  • Minskar API-anrop och sänker kostnaden.

 

polling

Utveckla applikationer på AWS

Standardköer

  • SQS erbjuder två typer av köer.
  • Standardköer:
    • Leverans minst en gång.
    • Bästa möjliga ordning.
    • Nästan obegränsat genomflöde.

 

queue types

Utveckla applikationer på AWS

FIFO-köer

 

queue types

  • FIFO-köer:
    • Bearbetning exakt en gång.
    • Strikt meddelandeordning.
    • Inbyggd meddelandededuplicering.
  • Standard 300 TPS
    • Öka till 3 000 med batchning eller mer med högt genomflödesläge.
  • Välj kötyp efter användningsfall:
    • Standardkö för skalbarhet och genomflöde.
    • FIFO för ordning och deduplicering.
Utveckla applikationer på AWS

Hantera felaktiga meddelanden

 

dlq

  • Dead letter queues (DLQ) lagrar meddelanden som inte kan bearbetas.
  • Ett meddelande flyttas till DLQ när det överskrider maxReceiveCount.
  • Det förhindrar oändliga försök med ett felaktigt meddelande.
  • DLQ måste vara samma kötyp som källkön.
  • Flytta meddelanden tillbaka till källkön för ny bearbetning.
Utveckla applikationer på AWS

Säkra köer

 

securing SQS

  • Krypterar data under överföring med HTTPS som standard.
  • Serversideskryptering i vila med AWS KMS.
  • Krypterar nyttolasten på klientsidan med AWS Encryption SDK.
  • IAM-policyer styr åtkomst till SQS-köer.
  • Resursbaserade policyer ger detaljerad kontroll på könivå.
Utveckla applikationer på AWS

Grunderna i Amazon SNS

  • Hanterad publicera-prenumerera-tjänst (pub/sub).
  • Använder en push-modell.
  • Utgivare skickar meddelanden till ett ämne.
    • Maximal meddelandestorlek är 256 KB.
  • Konsumenter prenumererar på ämnen.
  • Prenumeranter tar emot meddelanden passivt.

 

sns overview

Utveckla applikationer på AWS

Skalbarhet

  • Stöder upp till 12,5 miljoner prenumerationer per ämne.
  • Ingen meddelandelagring:
    • Meddelanden går förlorade om en prenumerant är otillgänglig.
    • Använd DLQ eller beständig prenumerant (SQS-kö) för att undvika förluster.
  • Distribuerar en enskild händelse till många konsumenter (fan-out).

 

scaling sns

Utveckla applikationer på AWS

Meddelandefiltrering

  • SNS stöder filtreringspolicyer för meddelanden.
  • Prenumerationer tar bara emot de meddelanden de är intresserade av.
  • Utan filter tar en prenumeration emot alla meddelanden.
  • Filterpolicyer gäller på prenumerationsnivå, inte ämnesnivå.

 

filter

Utveckla applikationer på AWS

Filterlogik och utvärdering

 

filter polices

  • Filter definieras i JSON.
  • Matchas mot meddelandeattribut.
  • Flera villkor utvärderas som AND.
  • Flera värden inom ett villkor utvärderas som OR.
  • Många filteroperationer stöds:
    • Exakt sträng, numerisk, prefix, exkludering och intervallmatchning.
Utveckla applikationer på AWS

SNS-säkerhet

 

sns security

  • Krypterar data under överföring med HTTPS som standard.
  • Serversideskryptering i vila med AWS KMS.
    • Ge SNS behörighet att använda KMS-nyckeln.
  • IAM-policyer ger åtkomstkontroll.
    • Styr vem som kan publicera till eller prenumerera på ett ämne.
Utveckla applikationer på AWS

Nu kör vi en övning!

Utveckla applikationer på AWS

Preparing Video For Download...