Formation DevOps | Formation AWS Services : 10 - Service SQS
AWS Simple Queue Service
✓ Pourquoi utiliser une Queue?
✓ Intérêt du ServiceSQS
✓ Concepts
✓ Cycle de vie desmessages
✓ Monitoring
✓ ConfigurationIAM
✓ Requêtes versSQS
✓ Configuration et utilisation d’une Queue (démo)
✓ Pointsd’attention
✓ Autres fonctionnalités SQS (non détaillées enformation)
✓ SQS FIFO
Pourquoi utiliser une Queue?
✓ Traitements asynchrones
✓ Découplage des composants
✓ Reprise sur erreur
✓ Garantie de livraison ( at least once )
Service Fiable
➢ Service hautement disponible
➢ Géré par AWS
➢ Les données sont réparties dans les multiples zones de disponibilités
➢ Métriques accessibles via CloudWatch
➢ Montée en compétence rapide sur le service
➢ Trois opérations de base ( Send / Receive / Delete )
➢ D’autres API permettent d’obtenir l’accès à des fonctionnalités avancées
➢ Les queues peuvent être mise en place rapidement avec
relativement peu de configuration
Intérêts du service SQS Service évolutif
➢ Possibilité de créer autant de Queues que nécessaire
➢ Nombre de message en attente important (120K)
➢ AWS assure la mise à l’échelle ( Scalability ) et garantit la qualité du service en fonction de la charge
➢ La taille des messages peut atteindre 256Ko (cette limite peut être dépassé en couplant SQS et S3 )
Intérêts du service SQS Service Sécurisé
✓ Repose sur le service IAM en terme de gestion d’authentification et d’autorisations
✓ Seules les utilisateurs ou services autorisés peuvent lire ou écrire dans une Queue SQS
✓ AWS SQS est PCI DSS compliant ( P ayment C ard I ndustry D ataS ecurity S tandard)
Intérêts du service SQS Service peu coûteux
➢ Pas de frais de mise en place des queues
➢ Paiement au nombre de messages et au transfert de données
➢ 0,50$ / millions de requêtes (< 64Ko par message)
Concepts Visibility timeout
➢ une fois reçu, un message devient invisible durant une période donnée ( In Flight )
➢ durant cette période, seul le process ayant lu le message peut le supprimer
➢ si au terme de la période le message n’a pas été supprimé, il redevient visible et un process peut le lire
Concepts Receipt handle
➢ cet identifiant récupéré lors de la lecture d’un message permet de le supprimer
➢ contrairement a l’ID du message, cet identifiant change à chaque lecture du message
Concepts Redrive policy
➢ Permet de définir le comportement de la queue face à un message dont le traitement échoue un certain nombre de fois
➢ la Redrive Policy permet de définir le nombre de fois ou le message est présenté, et le cas échéant ce qu’il advient après un certain nombre d’échec du traitement
Concepts Dead queue
➢ Une dead queue permet de stocker les messages dont le traitement n’a pas pu aboutir
➢ Permet l’analyse a postériori des messages ne passant pas
➢ Permet la reprise de messages après que le problème soit fixé
Concepts Short Polling / Long Polling
➢ En Short Polling , une réponse à un Receive est retournée immédiatement, avec ou sans message
➢ En Long Polling , si aucun message n’est disponible, SQS attendra à concurrence du paramètre WaitTimeSeconds
➢ WaitTimeSeconds == 0 => Short Polling
➢ Le Long Polling est le mode a privilégier
Concepts Delayed Queues
➢ Permet d’introduire un délai pendant lequel les messages postés sont invisibles
➢ Configurable entre 0 et 900 sec (15 min)
Delayed Message
➢ Il est possible d’introduire le délai avant lequel un message spécifique est invisible
Producer Consumer
- sendmessage 2. messageinvisible 3. receivemessage
5. deletemessage 4. processmessage
Cycle de vie des messages (Redrive Policy)
Producer Consumer
- sendmessage 3. receivemessage
2. messageinvisible
4. processXFailuremessage - messagereappear
- process- success until: - max receivedreached
- move to deadqueue
Monitoring
➢ SQS est intégré à CloudWatch pour monitorer les indicateurs clé des queues
➢ Possibilité de créer des alarmes suivant certains critères
➢ ex : remplissage de la dead queue, nombre d’éléments dans une Queue …
➢ Possibilité de créer ses propres métriques via l’API CloudWatch. Ex: agrégation de comptages sur plusieurs Queues
Monitoring Quelques indicateurs clé :
➢ remplissage de la Dead Queue (messages non traités) nombre d’éléments dans une Queue
➢ ( autoscaling si on dépasse un certain seuil)
ConfigurationIAM Arn d’une QueueSQS
➢ arn:aws:sqs:region:account_ID:queue_name
➢ ex: arn:aws:sqs::123456789:my_queue_
Configuration IAM Autorisation des actions d’administration
➢ sqs:CreateQueue
➢ sqs:DeleteQueue
➢ sqs:ListQueues
➢ sqs:PurgeQueue
Configuration IAM Autorisation pour utiliser une Queue SQS
➢ sqs:ChangeMessageVisibility
➢ sqs:DeleteMessage
➢ sqs:GetQueueAttributes
➢ sqs:GetQueueUrl
➢ sqs:ReceiveMessage
➢ sqs:SendMessage
Configuration IAM Exemple de configuration d’une Policy (envoi de messages)
{ “Version”: “2012- 10 - 17”,
“Statement”:[{“Effect”:“Allow”,
“Action”:“sqs:SendMessage”,“Resource”:“arn:aws:sqs:*:123456789012:MyQueue”
] }
}
{ “Version”: “2012- 10 - 17”,
“Statement”:[{“Effect”:“Allow”, “Action”:[
“sqs:ReceiveMessage”, “sqs:GetQueueUrl”, “sqs:DeleteMessage”
“Resource”:“arn:aws:sqs:*:123456789012:MyQueue”],
] }
}
➢ Il est possible d’appliquer une Ressource Policy sur une Queue
➢ Dans ce cas le Principal doit être spécifié
➢ Nécessaire dans certains cas :
➢ Utilisation d’une Queue en Cross Account
➢ Accès àune Queue via une ressource (ex: S3)
Requêtes vers SQS Type de requêtes (principales)
➢ SendMessage
➢ ReceiveMessage (de préférence configurer du long polling en configurant ReceiveMessageWaitTime > 0 )
➢ DeleteMessage (un message reçu mais non supprimé reviendra a l’échéance du Visibility Timeout )
Requêtes vers SQS Type de requêtes (batchprocess)
➢ ReceiveMessageBatch jusqu’a 10 messages dans une mêmerequête
➢ SendMessageBatch : envoi jusqu’a 10 messages dans une même requête pour
un payload total < 256Ko
➢ Utiliserl’AmazonSQSBufferedAsyncClient
➢ DeleteMessageBatch supprime jusqu’à 10 messages dans une mêmerequête
➢ longPollWaitTimeoutSeconds < (visibilityTimeout + processing time)dans le cas du receive!
Requêtes vers SQS Authentication
➢ Les requêtes envoyées vers SQS contiennent l’ AccessKey , une signature HMAC-SHA et un timestamp
➢ Les SDK ainsi que la CLI AWS gèrent pour nous ces paramètre d’authentification
➢ Privilégiez les rôles si vous soumettez vos requêtes SQS à partir d’une instance EC2!
Configuration et utilisation d’une Queue
Pointsd’attention
➢ L’ordre des message n’est pas garantit par SQS
➢ Le traitement d’un message doit être idempotent ( at least oncedelivery )
➢ Regarder un message dans la console consomme un Receive dans le compte de MaximumReceivePolicy de la Redrive Policy
➢ Par défaut, un message non consommé est supprimé au bout de 14j
➢ A date, il n’y a pas de VPC Endpoint pour SQS.
Le traffic entre EC2 et SQS
passe donc par la NAT Gateway pour les instances sans IPpubliques
Autres fonctionnalités SQS
➢ Possible de poster des messages dont la taille est > 256Ko en passant par S3
➢ Compatibilité SQS - Java Messaging Service
➢ SQS Batch processing (traitement par lot d’opérations Send/Receive/Delete )
SQS FIFO
➢ Annoncé mi Nov 2016. Disponible uniquement aux US pour lemoment
➢ Garantie de livraison exactly-once
➢ Garantie de l’ordre de livraison (dans un groupe de messages)
➢ Les messages dans un groupe sont consommés ( Receive puis Delete ) les
un après les autres
➢ Les performances sont limitées à 300 tps (non distribué)
➢ 20,000 messages maximum dans laqueue
Decouvrez plus d’Offres de la plateform ItGalaxy.io :
Découvrez notre gamme complète de services et formations pour accélérer votre carrière.
1. Nous contactez
- Description: Besoin de Formation et des Solutions cloud complètes pour vos applications
- Links:
2. Infra as a Service
- Description: Infrastructure cloud évolutive et sécurisée
- Links:
3. Projets Développeurs
- Description: Découvrez des opportunités passionnantes pour les développeurs
- Links:
4. Développeurs
- Description: Rejoignez notre communauté de développeurs
- Links:
5. Formations Complètes
- Description: Accédez à des formations professionnelles de haute qualité
- Links:
6. Marketplace
- Description: Découvrez notre place de marché de services
- Links:
7. Blogs
- Description: Découvrez nos blogs
- Links:
- comment creer une application mobile ?
- Comment monitorer un site web ?
- Command Checkout in git ?
- Comment git checkout to commit ?
- supprimer une branche git
- dockercoin
- kubernetes c est quoi
- architecture kubernetes
- Installer Gitlab Runner ?
- .gitlab-ci.yml exemples
- CI/CD
- svelte 5 vs solid
- svelte vs lit
- solidjs vs qwik
- alpine vs vue
- Plateform Freelance 2025
- Creation d’un site Web gratuitement
This website is powered by ItGalaxy.io