Dissocier avec les services de messagerie AWS

Développer des applications sur AWS

Ricardo Sueiras

Principal Technologist

Notions de base d'Amazon SQS

 

aperçu de SQS

  • Gère les pointes de trafic indépendamment des producteurs.
  • File de messages gérée pour la messagerie asynchrone.
  • Les producteurs envoient des messages dans une file.
  • Les consommateurs récupèrent les messages de la file.
  • Messages conservés jusqu'à leur prise en charge par un consommateur.
  • Rétention : 4 jours par défaut, 14 jours maximum.
  • Les consommateurs interrogent la file et traitent à leur rythme.
Développer des applications sur AWS

Visibilité des messages

  • Un message devient invisible dès qu'un consommateur le lit.
  • Le délai de visibilité détermine combien de temps il reste caché.
  • Si le traitement échoue et que le message n'est pas supprimé :
    • Il redevient visible.
    • Il peut être retraité.
  • Délai de visibilité : 30 secondes par défaut.
  • Délai de visibilité maximal : 12 heures.

 

visibilité des messages

Développer des applications sur AWS

Taille des messages

 

taille du message

  • Les messages peuvent atteindre 256 KB.
  • La bibliothèque SQS Extended Client permet des messages plus gros.
  • Stocke la charge utile volumineuse dans Amazon S3.
  • Envoie un pointeur vers S3 dans la charge utile du message.
Développer des applications sur AWS

Interrogation courte

  • La stratégie d'interrogation influence le coût et l'efficacité.
  • L'interrogation courte est le mode par défaut.
  • Interroge un sous-ensemble de serveurs SQS et répond immédiatement.
  • Peut retourner vide, même si des messages sont disponibles.
  • Entraîne plus d'appels à l'API et des coûts plus élevés.

 

interrogation

Développer des applications sur AWS

Interrogation longue

  • L'interrogation longue couvre tous les serveurs SQS.
  • Patiente jusqu'à 20 secondes pour un message.
  • Élimine les réponses vides inutiles.
  • Réduit les appels à l'API et les coûts.

 

interrogation

Développer des applications sur AWS

Files Standard

  • SQS offre deux types de files.
  • Files Standard :
    • Remise au moins une fois.
    • Ordonnancement au mieux.
    • Débit quasi illimité.

 

types de files

Développer des applications sur AWS

Files FIFO

 

types de files

  • Files FIFO :
    • Traitement une seule fois.
    • Ordre strict des messages.
    • Déduplication intégrée.
  • 300 TPS par défaut
    • Jusqu'à 3 000 avec le traitement par lots, ou plus en mode haut débit.
  • Choisir le type selon le cas d'usage :
    • Standard pour l'échelle et le débit.
    • FIFO pour l'ordre et la déduplication.
Développer des applications sur AWS

Gérer les messages toxiques

 

dlq

  • Les files de lettres mortes (DLQ) stockent les messages en échec.
  • Un message va à la DLQ lorsqu'il dépasse maxReceiveCount.
  • Évite de relancer indéfiniment un message toxique.
  • La DLQ doit être du même type que la file source.
  • Renvoyez les messages vers la file source pour les retraiter.
Développer des applications sur AWS

Sécuriser les files

 

sécuriser SQS

  • Chiffrement en transit avec HTTPS par défaut.
  • Chiffrement côté serveur au repos avec AWS KMS.
  • Chiffrez la charge utile côté client avec AWS Encryption SDK.
  • Les politiques IAM régissent l'accès aux files SQS.
  • Les politiques basées sur les ressources offrent un contrôle fin au niveau de la file.
Développer des applications sur AWS

Notions de base d'Amazon SNS

  • Service de publication/abonnement (pub/sub) géré.
  • Utilise un modèle par poussée.
  • Les éditeurs envoient des messages à un sujet.
    • Taille maximale du message : 256 KB.
  • Les consommateurs s'abonnent aux sujets.
  • Les abonnés reçoivent les messages passivement.

 

aperçu de SNS

Développer des applications sur AWS

Mise à l'échelle

  • Prend en charge jusqu'à 12,5 millions d'abonnements par sujet.
  • Aucune rétention des messages :
    • Les messages sont perdus si un abonné est indisponible.
    • Utilisez une DLQ ou un abonné durable (file SQS) pour éviter les pertes.
  • Diffuse un même événement à de nombreux consommateurs (diffusion en éventail).

 

mise à l'échelle de SNS

Développer des applications sur AWS

Filtrage des messages

  • SNS prend en charge des politiques de filtrage des messages.
  • Les abonnements reçoivent seulement les messages pertinents.
  • Sans filtre, un abonnement reçoit tous les messages.
  • Les politiques de filtrage s'appliquent à l'abonnement, pas au sujet.

 

filtre

Développer des applications sur AWS

Logique et évaluation des filtres

 

politiques de filtrage

  • Les filtres sont définis en JSON.
  • Évalués par rapport aux attributs des messages.
  • Plusieurs conditions sont évaluées comme ET.
  • Plusieurs valeurs dans une condition sont évaluées comme OU.
  • De nombreuses opérations de filtrage sont prises en charge :
    • Correspondance exacte de chaîne, numérique, préfixe, exclusion et plage.
Développer des applications sur AWS

Sécurité SNS

 

sécurité SNS

  • Chiffrement des données en transit avec HTTPS par défaut.
  • Chiffrement côté serveur au repos avec AWS KMS.
    • Accordez à SNS l'autorisation d'utiliser la clé KMS.
  • Les politiques IAM assurent le contrôle d'accès.
    • Déterminent qui peut publier dans ou s'abonner à un sujet.
Développer des applications sur AWS

Passons à la pratique !

Développer des applications sur AWS

Preparing Video For Download...