Fermer

avril 29, 2023

Déployer et mettre à l’échelle des microservices et des applications sans serveur —

Déployer et mettre à l’échelle des microservices et des applications sans serveur —


Dans ce didacticiel, nous présenterons AWS SQS et expliquerons comment l’utiliser pour déployer et mettre à l’échelle des microservices et des applications sans serveur.

Contenu:

  1. Une introduction à AWS SQS
  2. Les avantages d’AWS SQS
  3. Les cas d’utilisation AWS SQS les plus courants
  4. Inconvénients et alternatives au SQS
  5. Configuration du SDK AWS
  6. Création d’une file d’attente SQS
  7. Envoi de messages à la file d’attente
  8. Recevoir des messages de la file d’attente
  9. Suppression de messages de la file d’attente
  10. Suppression de la file d’attente SQS
  11. Aide-mémoire de la méthode AWS SQS

Une introduction à AWS SQS

Amazon Simple Queue Service (SQS) est un service de file d’attente de messages entièrement géré qui vous permet de découpler et de mettre à l’échelle des microservices, des systèmes distribués et des applications sans serveur. SQS élimine la complexité et les frais généraux associés à la gestion et à l’exploitation d’intergiciels orientés message et permet aux développeurs de se concentrer sur la différenciation du travail.

AWS SQS est conçu pour les développeurs, les architectes et les administrateurs système qui ont besoin d’un service de file d’attente de messages robuste et évolutif pour gérer la communication entre les différents composants d’un système distribué, des microservices ou des applications sans serveur. Il est particulièrement utile pour ceux qui souhaitent créer des systèmes tolérants aux pannes et hautement disponibles capables de gérer des charges de travail et un débit variables.

Les avantages d’AWS SQS

Voici quelques-uns des principaux avantages du service Simple Queue d’Amazon :

  • Évolutivité: il évolue automatiquement avec le nombre de messages et peut gérer un débit élevé, ce qui le rend adapté aux applications avec des charges de travail variables.
  • Durabilité: les messages sont stockés de manière redondante sur plusieurs serveurs et centres de données, garantissant qu’ils ne sont pas perdus même en cas de défaillance de l’infrastructure.
  • Rentable: avec SQS, vous ne payez que ce que vous utilisez, et il n’y a pas de frais initiaux ni d’engagements à long terme requis.
  • L’intégration: il s’intègre de manière transparente avec d’autres services AWS, tels que Lambda, S3 et EC2, permettant une mise en œuvre facile au sein de votre infrastructure existante.

Les cas d’utilisation AWS SQS les plus courants

Voici quelques-uns des cas d’utilisation les plus courants de SQS :

  • Composants de découplage: SQS permet aux développeurs de découpler les composants d’un système distribué, ce qui facilite la maintenance et la mise à jour des composants individuels sans affecter l’ensemble du système.
  • L’équilibrage de charge: En distribuant les messages à plusieurs consommateurs, SQS aide à équilibrer la charge de travail, en veillant à ce qu’aucun composant ne devienne un goulot d’étranglement.
  • Traitement différé: SQS permet aux développeurs de planifier le traitement des messages ultérieurement, ce qui permet une utilisation plus efficace des ressources.
  • Le traitement par lots: SQS prend en charge le traitement par lots, vous permettant de traiter plusieurs messages simultanément, améliorant ainsi les performances globales.
  • Files d’attente de lettres mortes: SQS prend en charge les files d’attente de lettres mortes (DLQ), qui stockent les messages qui ne parviennent pas à être traités après un nombre spécifié de tentatives, ce qui facilite l’identification et la résolution des problèmes au sein de votre système.

Inconvénients et alternatives au SQS

Alors qu’AWS SQS offre de nombreux avantages, il y a quelques inconvénients à prendre en compte lors de la comparaison avec des solutions alternatives sur le marché :

  • Latence: SQS peut avoir une latence plus élevée par rapport à d’autres solutions de messagerie, telles qu’Apache Kafka ou RabbitMQ, ce qui pourrait être un problème pour les applications sensibles au facteur temps.
  • Taille de message limitée: SQS a une taille de message maximale de 256 Ko, ce qui peut être insuffisant pour certains cas d’utilisation. Cependant, vous pouvez utiliser Amazon S3 pour stocker des charges utiles plus importantes et inclure une référence à l’objet S3 dans votre message SQS.
  • Verrouillage du fournisseur: En utilisant AWS SQS, vous pouvez devenir plus dépendant de l’écosystème AWS, ce qui rendra plus difficile le passage à un autre fournisseur de cloud ou à une autre solution de messagerie à l’avenir.
  • Complexité: Bien que SQS offre des fonctionnalités puissantes, il peut être plus complexe à configurer et à gérer par rapport à des alternatives plus simples comme Redis ou Google Cloud Pub/Sub.
  • Coût: bien que SQS soit rentable pour de nombreux cas d’utilisation, il peut devenir coûteux pour le stockage de messages à volume élevé ou à long terme, car vous payez pour le nombre de demandes et la durée de conservation des messages.

Configuration du SDK AWS

Avant de commencer à travailler avec AWS SQS, nous devons configurer le kit SDK AWS pour votre langage de programmation préféré. Dans ce didacticiel, nous utiliserons le kit AWS SDK pour Python (Boto3). Pour installer Boto3, exécutez la commande suivante :

pip install boto3

Ensuite, configurez vos informations d’identification AWS en créant un fichier nommé ~/.aws/credentials avec le contenu suivant :

aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET_KEY

Remplacer YOUR_ACCESS_KEY et YOUR_SECRET_KEY avec votre clé d’accès et votre clé secrète AWS réelles.

Création d’une file d’attente SQS

Pour créer une file d’attente SQS, nous utiliserons le create_queue méthode du client Boto3 SQS. Voici un exemple de code :

import boto3


sqs = boto3.client('sqs')


response = sqs.create_queue(
QueueName='MyQueue'
)

print("Queue URL:", response['QueueUrl'])

Remplacer 'MyQueue' avec le nom souhaité pour votre file d’attente.

Envoi de messages à la file d’attente

Pour envoyer des messages à la file d’attente SQS, nous utiliserons le send_message méthode du client Boto3 SQS. Voici un exemple de code :

import boto3


sqs = boto3.client('sqs')


queue_url = 'https://sqs.YOUR_REGION.amazonaws.com/YOUR_ACCOUNT_ID/MyQueue'


response = sqs.send_message(
QueueUrl=queue_url,
MessageBody='Hello, World!'
)

print("Message ID:", response['MessageId'])

Remplacer YOUR_REGION et YOUR_ACCOUNT_ID avec votre région AWS et votre ID de compte réels, et 'MyQueue' avec le nom de votre file d’attente.

Recevoir des messages de la file d’attente

Pour recevoir des messages de la file d’attente SQS, nous utiliserons le receive_message méthode du client Boto3 SQS. Voici un exemple de code :

import boto3


sqs = boto3.client('sqs')


queue_url = 'httpsqs.YOUR_REGION.amazonaws.com/YOUR_ACCOUNT_ID/MyQueue'


response = sqs.receive_message(
QueueUrl=queue_url,
MaxNumberOfMessages=10,
WaitTimeSeconds=20
)


for message in response['Messages']:
print("Message ID:", message['MessageId'])
print("Message Body:", message['Body'])

Remplacer YOUR_REGION et YOUR_ACCOUNT_ID avec votre région AWS et votre ID de compte réels, et 'MyQueue' avec le nom de votre file d’attente.

Suppression de messages de la file d’attente

Pour supprimer des messages de la file d’attente SQS, nous utiliserons le delete_message méthode du client Boto3 SQS. Voici un exemple de code :

import boto3


sqs = boto3.client('sqs')


queue_url = 'https://sqs.YOUR_REGION.amazonaws.com/YOUR_ACCOUNT_ID/MyQueue'


response = sqs.receive_message(
QueueUrl=queue_url,
MaxNumberOfMessages=10,
WaitTimeSeconds=20
)


for message in response['Messages']:
print("Deleting message:", message['MessageId'])
sqs.delete_message(
QueueUrl=queue_url,
ReceiptHandle=message['ReceiptHandle']
)

Remplacer YOUR_REGION et YOUR_ACCOUNT_ID avec votre région AWS et votre ID de compte réels, et 'MyQueue' avec le nom de votre file d’attente.

Suppression de la file d’attente SQS

Pour supprimer la file d’attente SQS, nous utiliserons le delete_queue méthode du client Boto3 SQS. Voici un exemple de code :

import boto3
sqs = boto3.client('sqs')


queue_url = 'https://sqs.YOUR_REGION.amazonaws.com/YOUR_ACCOUNT_ID/MyQueue'


response = sqs.delete_queue(
QueueUrl=queue_url
)

print("Queue deleted:", queue_url)

Remplacer YOUR_REGION et YOUR_ACCOUNT_ID avec votre région AWS et votre ID de compte réels, et 'MyQueue' avec le nom de votre file d’attente.

Aide-mémoire de la méthode AWS SQS

Voici un tableau au format HTML avec une feuille de triche sur toutes les options disponibles pour AWS SQS.

ActionMéthodeDescription
Créer une file d’attentecreate_queueCréer une nouvelle file d’attente SQS
Envoyer le messageenvoyer le messageEnvoyer un message à la file d’attente spécifiée
Recevoir un messagerecevoir_messageRecevoir les messages de la file d’attente spécifiée
Supprimer le messagedelete_messageSupprimer un message de la file d’attente spécifiée
Supprimer la file d’attentedelete_queueSupprimer la file d’attente SQS spécifiée

Conclusion

Ce didacticiel a fourni un guide étape par étape sur la façon de travailler avec AWS SQS à l’aide du SDK Boto3 pour Python. Nous avons couvert la création d’une file d’attente SQS, l’envoi de messages à la file d’attente, la réception de messages de la file d’attente, la suppression de messages de la file d’attente et la suppression de la file d’attente SQS. Le tableau de triche récapitule les options disponibles pour AWS SQS.






Source link