Disaccoppiamento con i servizi di messaggistica AWS

Sviluppare applicazioni su AWS

Ricardo Sueiras

Principal Technologist

Fondamenti di Amazon SQS

 

panoramica sqs

  • Gestisce i picchi di traffico in modo indipendente dai produttori.
  • Coda di messaggi gestita per messaggistica asincrona.
  • I produttori inviano messaggi in una coda.
  • I consumer recuperano i messaggi dalla coda.
  • I messaggi restano finché un consumer li preleva.
  • Conservazione: 4 giorni predefiniti, massimo 14.
  • I consumer interrogano la coda ed elaborano al proprio ritmo.
Sviluppare applicazioni su AWS

Visibilità dei messaggi

  • Un messaggio diventa invisibile quando un consumer lo legge.
  • Il visibility timeout controlla per quanto resta nascosto.
  • Se l'elaborazione fallisce e il messaggio non viene eliminato:
    • Torna visibile.
    • Può essere rielaborato.
  • Visibility timeout: 30 secondi predefiniti.
  • Timeout massimo: 12 ore.

 

visibilità messaggi

Sviluppare applicazioni su AWS

Dimensione dei messaggi

 

dimensione messaggi

  • I messaggi possono essere grandi fino a 256KB.
  • La libreria SQS Extended Client abilita messaggi più grandi.
  • Archivia il payload grande in Amazon S3.
  • Invia nel payload un puntatore a S3.
Sviluppare applicazioni su AWS

Short polling

  • La strategia di polling influisce su costi ed efficienza.
  • Lo short polling è predefinito.
  • Interroga un sottoinsieme di server SQS, ritorna subito.
  • Può restituire vuoto anche se ci sono messaggi.
  • Comporta più chiamate API e costi più alti.

 

polling

Sviluppare applicazioni su AWS

Long polling

  • Il long polling interroga tutti i server SQS.
  • Attende fino a 20 secondi un messaggio.
  • Elimina risposte vuote non necessarie.
  • Riduce le chiamate API e i costi.

 

polling

Sviluppare applicazioni su AWS

Code Standard

  • SQS offre due tipi di code.
  • Code Standard:
    • Consegna almeno una volta.
    • Ordinamento best-effort.
    • Throughput quasi illimitato.

 

tipi di coda

Sviluppare applicazioni su AWS

Code FIFO

 

tipi di coda

  • Code FIFO:
    • Elaborazione exactly-once.
    • Ordinamento rigoroso dei messaggi.
    • De-duplicazione integrata dei messaggi.
  • 300 TPS predefiniti
    • Aumenta a 3.000 con batching o di più con la modalità high-throughput.
  • Scegli il tipo di coda in base al caso d'uso:
    • Standard per scala e throughput.
    • FIFO per ordinamento e de-duplica.
Sviluppare applicazioni su AWS

Gestire i poison message

 

dlq

  • Le dead letter queue (DLQ) archiviano i messaggi che non si riesce a elaborare.
  • Un messaggio passa alla DLQ quando supera maxReceiveCount.
  • Evita di ritentare all'infinito un poison message.
  • La DLQ deve essere dello stesso tipo della coda origine.
  • Sposta i messaggi di nuovo nella coda origine per rielaborarli.
Sviluppare applicazioni su AWS

Mettere in sicurezza le code

 

mettere in sicurezza SQS

  • Crittografa in transito con HTTPS per impostazione predefinita.
  • Crittografia lato server a riposo con AWS KMS.
  • Crittografa il payload lato client con AWS Encryption SDK.
  • Le policy IAM regolano chi può accedere alle code SQS.
  • Le policy basate su risorsa offrono controllo granulare a livello di coda.
Sviluppare applicazioni su AWS

Fondamenti di Amazon SNS

  • Servizio publish-subscribe (pub/sub) gestito.
  • Usa un modello push.
  • I publisher inviano messaggi a un topic.
    • Dimensione massima del messaggio: 256KB.
  • I consumer si iscrivono ai topic.
  • I subscriber ricevono i messaggi passivamente.

 

panoramica sns

Sviluppare applicazioni su AWS

Scalabilità

  • Supporta fino a 12,5 milioni di sottoscrizioni per topic.
  • Nessuna conservazione dei messaggi:
    • I messaggi si perdono se un subscriber non è disponibile.
    • Usa una DLQ o un subscriber durevole (coda SQS) per evitarlo.
  • Distribuisce un singolo evento a molti consumer (fan-out).

 

scalabilità sns

Sviluppare applicazioni su AWS

Filtraggio dei messaggi

  • SNS supporta policy di filtraggio dei messaggi.
  • Le sottoscrizioni ricevono solo i messaggi rilevanti.
  • Senza filtro, una sottoscrizione riceve tutti i messaggi.
  • Le policy di filtro si applicano alla sottoscrizione, non al topic.

 

filtro

Sviluppare applicazioni su AWS

Logica ed evaluation dei filtri

 

policy di filtro

  • I filtri sono definiti in JSON.
  • Confrontati con gli attributi del messaggio.
  • Condizioni multiple sono valutate come AND.
  • Valori multipli nella stessa condizione sono valutati come OR.
  • Sono supportate molte operazioni di filtro:
    • Corrispondenza esatta di stringa, numerica, prefisso, esclusione e intervallo.
Sviluppare applicazioni su AWS

Sicurezza di SNS

 

sicurezza sns

  • Crittografa i dati in transito con HTTPS per impostazione predefinita.
  • Crittografia lato server a riposo con AWS KMS.
    • Concedi a SNS il permesso di usare la chiave KMS.
  • Le policy IAM forniscono controllo degli accessi.
    • Regolano chi può pubblicare o sottoscrivere un topic.
Sviluppare applicazioni su AWS

Esercitiamoci!

Sviluppare applicazioni su AWS

Preparing Video For Download...