Dissocier avec les services de messagerie AWS

Développer des applications sur AWS

Ricardo Sueiras

Principal Technologist

Principes de base d'Amazon SQS

 

aperçu sqs

  • Gère les pics de trafic indépendamment des producteurs.
  • File de messages managée pour l'asynchrone.
  • Les producteurs envoient des messages dans une file.
  • Les consommateurs récupèrent les messages de la file.
  • Messages conservés jusqu'à leur récupération par un consommateur.
  • Rétention : 4 jours par défaut, 14 jours max.
  • Les consommateurs sondent la file et traitent à leur rythme.
Développer des applications sur AWS

Visibilité des messages

  • Un message devient invisible une fois lu par un consommateur.
  • Le délai de visibilité contrôle la durée de masquage.
  • 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.
Développer des applications sur AWS

Sondage court

  • La stratégie de sondage impacte le coût et l'efficacité.
  • Le sondage court est le mode par défaut.
  • Interroge un sous-ensemble de serveurs SQS, renvoie immédiatement.
  • Peut être vide, même si des messages sont disponibles.
  • Entraîne plus d'appels d'API et un coût plus élevé.

 

sondage

Développer des applications sur AWS

Sondage long

  • Le sondage long interroge tous les serveurs SQS.
  • Attend jusqu'à 20 secondes un message.
  • Évite les réponses vides inutiles.
  • Réduit les appels d'API et le coût.

 

sondage

Développer des applications sur AWS

Files Standard

  • SQS propose deux types de files.
  • Files Standard :
    • Livraison 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 exactement une fois.
    • Ordre strict des messages.
    • Déduplication intégrée.
  • Par défaut : 300 TPS
    • Jusqu'à 3 000 avec le batching, plus en mode haut débit.
  • Choisir selon l'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 passe en DLQ s'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 source pour les retraiter.
Développer des applications sur AWS

Sécuriser les files

 

sécuriser SQS

  • Chiffrement en transit via HTTPS par défaut.
  • Chiffrement côté serveur au repos via AWS KMS.
  • Chiffrez la charge utile côté client avec l'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 par file.
Développer des applications sur AWS

Principes de base d'Amazon SNS

  • Service de publication/abonnement (pub/sub) managé.
  • Utilise un modèle push.
  • Les éditeurs envoient des messages à un sujet.
    • Taille max d'un message : 256 KB.
  • Les consommateurs s'abonnent aux sujets.
  • Les abonnés reçoivent les messages passivement.

 

aperçu sns

Développer des applications sur AWS

Passage à l'échelle

  • Jusqu'à 12,5 millions d'abonnements par sujet.
  • Pas de rétention des messages :
    • Perte de messages si un abonné est indisponible.
    • Utilisez une DLQ ou un abonné durable (file SQS) pour éviter les pertes.
  • Diffuse un événement unique vers de nombreux consommateurs (fan-out).

 

montée en charge sns

Développer des applications sur AWS

Filtrage des messages

  • SNS prend en charge des politiques de filtrage.
  • Les abonnements ne reçoivent que les messages pertinents.
  • Sans filtre, un abonnement reçoit tous les messages.
  • Les politiques s'appliquent au niveau de l'abonnement, pas du 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 du message.
  • Conditions multiples évaluées en ET.
  • Valeurs multiples dans une condition évaluées en OU.
  • Nombreuses opérations 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 via HTTPS par défaut.
  • Chiffrement côté serveur au repos via AWS KMS.
    • Accordez à SNS l'autorisation d'utiliser la clé KMS.
  • Les politiques IAM assurent le contrôle d'accès.
    • Définissent qui peut publier sur ou s'abonner à un sujet.
Développer des applications sur AWS

Passons à la pratique !

Développer des applications sur AWS

Preparing Video For Download...