Files d’attente SQS Standard ou FIFO
Comparez les files d’attente Standard, conçues pour un débit maximal, aux files FIFO, conçues pour un traitement ordonné et exactement une fois, puis choisissez le type approprié.
Files d’attente SQS Standard ou FIFO est une leçon AWS Solutions Architect gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AWS Solutions Architect, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AWS Solutions Architect comprend 4 leçons au total.
Pourquoi les files de messages sont importantes
Les files de messages découplent les producteurs des consommateurs : un producteur envoie un message à la file sans attendre qu’un consommateur le traite. Le consommateur traite les messages à son propre rythme. Ce modèle empêche les producteurs rapides de submerger les consommateurs lents, permet de mettre à l’échelle chaque niveau indépendamment et fournit une mémoire tampon durable si le consommateur est temporairement indisponible. Amazon SQS est un service de mise en file de messages entièrement géré et hautement disponible d’AWS.
Caractéristiques des files Standard SQS
Les files Standard offrent un débit illimité (un nombre de transactions par seconde quasiment illimité). Elles garantissent une livraison au moins une fois : dans de rares cas, un message peut être livré plusieurs fois (en raison de l’infrastructure distribuée). L’ordre des messages est garanti dans la mesure du possible : les messages sont généralement livrés dans l’ordre d’envoi, mais cela n’est pas garanti. Les files Standard sont idéales lorsque le débit est essentiel et que votre consommateur peut gérer les doublons occasionnels ainsi que la livraison dans le désordre.
# Create a Standard queue
aws sqs create-queue \
--queue-name 'OrderProcessingQueue'
# Send a message
aws sqs send-message \
--queue-url 'https://sqs.us-east-1.amazonaws.com/123456789012/OrderProcessingQueue' \
--message-body 'OrderId-12345'Caractéristiques des files FIFO SQS
Les files FIFO (First-In, First-Out) garantissent un traitement exactement une fois et un ordre strict des messages. Les messages sont livrés exactement dans l’ordre où ils sont envoyés. Les files FIFO prennent en charge jusqu’à 300 transactions par seconde (3 000 avec le traitement par lots). Les noms des files FIFO doivent se terminer par .fifo. Utilisez les files FIFO lorsque l’ordre et le traitement exactement une fois sont essentiels : transactions financières, traitement des commandes de commerce électronique et mises à jour des stocks.
# Create a FIFO queue
aws sqs create-queue \
--queue-name 'OrderProcessingQueue.fifo' \
--attributes '{
"FifoQueue": "true",
"ContentBasedDeduplication": "true"
}'Groupes de messages dans les files FIFO
Les files FIFO utilisent des identifiants de groupe de messages pour répartir l’ordre au sein de la file. Les messages ayant le même identifiant de groupe sont livrés dans l’ordre ; ceux ayant des identifiants de groupe différents peuvent être traités en parallèle. Par exemple, utilisez customerId comme identifiant de groupe : les commandes de chaque client sont traitées séquentiellement, tandis que les commandes de clients différents sont traitées simultanément. Cela permet de respecter la sémantique FIFO tout en assurant une mise à l’échelle horizontale entre les consommateurs.
aws sqs send-message \
--queue-url 'https://sqs.us-east-1.amazonaws.com/123456789012/Orders.fifo' \
--message-body 'Order details here' \
--message-group-id 'customer-789' \
--message-deduplication-id 'order-uuid-abc123'Déduplication dans les files FIFO
Les files FIFO empêchent le traitement en double des messages grâce à un identifiant de déduplication. Si deux messages sont envoyés avec le même identifiant dans un intervalle de déduplication de 5 minutes, le second est silencieusement supprimé. Vous pouvez fournir explicitement un identifiant de déduplication (MessageDeduplicationId) ou activer la déduplication basée sur le contenu, auquel cas SQS calcule automatiquement une empreinte SHA-256 du corps du message comme identifiant de déduplication. La déduplication basée sur le contenu est plus simple, mais elle exige que les corps des messages soient uniques.
Rétention et limites de taille des messages
SQS conserve les messages pendant une durée configurable : au minimum 1 minute et au maximum 14 jours (4 jours par défaut). Les messages qui ne sont pas consommés pendant la période de rétention sont automatiquement supprimés. La taille maximale d’un message est de 256 KB. Pour les charges utiles plus volumineuses, utilisez la bibliothèque cliente étendue SQS ou stockez la charge utile dans S3 et envoyez uniquement la référence à l’objet S3 dans le message SQS. Les files Standard et FIFO partagent ces limites.
Réception et suppression des messages
Les consommateurs interrogent la file à l’aide de receive-message. Après sa réception, le message devient invisible (masqué pour les autres consommateurs) pendant la période de délai de visibilité. Le consommateur doit traiter le message, puis le supprimer explicitement à l’aide du gestionnaire de réception avant l’expiration du délai. Si le consommateur tombe en panne ou ne le supprime pas à temps, le message réapparaît et un autre consommateur peut le traiter, ce qui permet une livraison au moins une fois dans les files Standard.
RECEIPT=$(aws sqs receive-message \
--queue-url 'https://...' \
--query 'Messages[0].ReceiptHandle' --output text)
# Process message, then delete it
aws sqs delete-message \
--queue-url 'https://...' \
--receipt-handle "$RECEIPT"Comparaison du débit en pratique
Les files Standard conviennent à la génération de vignettes d’images, à l’envoi de courriels de notification et au traitement des journaux : ce sont des charges de travail pour lesquelles les doublons peuvent être traités de manière idempotente et l’ordre n’a pas d’importance. Les files FIFO sont nécessaires pour le traitement des virements bancaires (débit avant crédit), les mises à jour des paniers de commerce électronique (ajout d’un article avant le paiement) et les étapes d’un flux de travail où l’étape 2 doit suivre l’étape 1. Pour la plupart des architectures à haut débit, les files Standard sont le choix par défaut ; passez aux files FIFO uniquement lorsque l’ordre ou la livraison exactement une fois constitue une exigence stricte.
Traitement par lots pour le débit et les coûts
SQS facture chaque requête d’API. Utilisez les opérations par lots pour envoyer, recevoir et supprimer jusqu’à 10 messages par appel d’API, ce qui permet de réduire les coûts jusqu’à 10 fois. Les files FIFO prennent en charge le mode à haut débit (qui active le traitement par lots), ce qui porte la limite à 3 000 messages par seconde avec des lots de 10 messages. En production, utilisez toujours send-message-batch et delete-message-batch afin de réduire au minimum les coûts des appels d’API.
aws sqs send-message-batch \
--queue-url 'https://...' \
--entries '[
{"Id": "msg1", "MessageBody": "Order-001"},
{"Id": "msg2", "MessageBody": "Order-002"},
{"Id": "msg3", "MessageBody": "Order-003"}
]'Politiques d’accès aux files
Les files SQS sont sécurisées par des politiques fondées sur les ressources (politiques de file) qui contrôlent qui peut envoyer des messages à la file ou en recevoir. Cela est essentiel lorsque vous autorisez un accès entre comptes ou lorsque SNS publie des messages dans une file SQS. L’accès de Lambda à SQS est contrôlé par la politique IAM du rôle d’exécution de Lambda (sqs:ReceiveMessage, sqs:DeleteMessage, sqs:GetQueueAttributes). Appliquez toujours le principe du moindre privilège : n’accordez pas à un consommateur davantage d’autorisations que celles nécessaires pour recevoir et supprimer des messages.
Choisir Standard ou FIFO : guide de décision
Posez-vous les questions suivantes pour faire votre choix : (1) L’ordre est-il important ? Si oui → FIFO. (2) Un traitement exactement une fois est-il nécessaire ? Si oui → FIFO. (3) Un débit supérieur à 3 000 TPS est-il nécessaire ? Si oui → Standard (FIFO est limité à 3 000 TPS avec le traitement par lots). (4) Les consommateurs peuvent-ils gérer les doublons ? Si oui → Standard est plus simple et moins coûteux. Pour l’examen SAA-C03, les mots-clés de FIFO sont : « ordering », « exactly-once », « sequential », « deduplication ». Ceux de Standard sont : « high throughput », « best effort », « at-least-once ».
Vérification rapide
Testez votre compréhension des concepts AWS Solutions Architect (SAA-C03) présentés dans cette leçon.
Récapitulatif de la leçon
Dans cette leçon, vous avez appris que les files Standard offrent un débit illimité, une livraison au moins une fois et un ordre garanti dans la mesure du possible, ce qui les rend adaptées aux charges de travail volumineuses tolérant les doublons ; que les files FIFO garantissent un traitement exactement une fois et un ordre strict des messages grâce aux identifiants de groupe de messages et aux identifiants de déduplication, avec une limite de 3 000 TPS en traitement par lots ; et que le choix entre les deux dépend du caractère strict ou non des exigences d’ordre et de déduplication. Nous allons maintenant étudier le délai de visibilité, les files d’attente de lettres mortes et l’interrogation longue.
Questions Fréquemment Posées
La leçon « Files d’attente SQS Standard ou FIFO » est-elle gratuite ?
Oui — le texte complet de « Files d’attente SQS Standard ou FIFO » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AWS Solutions Architect, passe à CoddyKit PRO. Le cours AWS Solutions Architect comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Files d’attente SQS Standard ou FIFO » ?
Comparez les files d’attente Standard, conçues pour un débit maximal, aux files FIFO, conçues pour un traitement ordonné et exactement une fois, puis choisissez le type approprié. Tu pratiques AWS Solutions Architect avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer AWS Solutions Architect ?
Aucune expérience préalable n'est requise. AWS Solutions Architect sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Files d’attente SQS Standard ou FIFO » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon AWS Solutions Architect ?
Oui. Chaque leçon AWS Solutions Architect inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Files d’attente SQS Standard ou FIFO
- Délai de visibilité, DLQ et interrogation longue
- Rubriques SNS et architecture de diffusion multiple
- Filtrage des messages SQS et intégration SNS + SQS