Pourquoi mes frais Amazon SQS sont-ils plus élevés que prévu ?

Lecture de 3 minute(s)
0

Amazon Simple Queue Service (Amazon SQS) m'a facturé des frais plus élevés que ceux auxquels je m'attendais en fonction de mon utilisation. -ou- J'atteins la limite de l’offre gratuite d'Amazon SQS, mais je n'ai envoyé que quelques messages pendant la période de facturation. Comment puis-je mieux comprendre les frais d'Amazon SQS et comment puis-je réduire les coûts d'Amazon SQS ?

Brève description

La cause la plus fréquente d'un nombre élevé de requêtes SQS est la réception vide, qui est facturée comme des requêtes ReceiveMessage ne renvoyant aucun message. Les frais d'Amazon SQS sont basés sur le volume de requêtes et les données transférées vers et depuis Amazon SQS. Un consommateur interrogeant une file d'attente SQS entraîne en permanence des réceptions vides. Ces réceptions vides sont facturées conformément à la tarification Amazon SQS, même si aucun message n'est envoyé ou reçu depuis votre file d'attente SQS.

Résolution

Consulter la métrique CloudWatch NumberOfEmptyReceives

Pour déterminer si les réceptions vides contribuent à des frais Amazon SQS élevés, examinez la métrique NumberOfEmptyReceives Amazon CloudWatch pour la file d'attente SQS. Un nombre élevé de réceptions vides indique qu'un consommateur effectue un grand nombre de requêtes ReceiveMessage.

Vérifier si la file d'attente SQS est configurée pour invoquer une fonction Lambda

Lorsqu'une file d'attente SQS est configurée pour invoquer une fonction AWS Lambda, Lambda effectue une longue interrogation sur la file d'attente. Cela signifie que même si la file d'attente SQS n'est pas utilisée, l'invocation d'une fonction Lambda entraîne des réceptions vides et des frais associés.

Bonnes pratiques pour réduire les coûts d'Amazon SQS

Suivez ces bonnes pratiques pour minimiser les coûts liés à Amazon SQS :

Supprimez les files d'attente inutiles

Pour éviter les requêtes ReceiveMessage adressées à des files d'attente inactives, pensez à supprimer les files d'attente SQS lorsqu'elles ne sont plus nécessaires.

Effectuez une mise à l'échelle verticale descendante des consommateurs

La mise à l'échelle horizontale est utilisée pour optimiser le débit des files d'attente Amazon SQS en augmentant le nombre de producteurs de messages et de consommateurs à mesure que vos besoins en volume augmentent. De même, lorsque le débit de messages diminue, veillez à réduire le nombre de consommateurs pour éviter les requêtes inutiles ReceiveMessage.

Interrogation longue

L’interrogation longue d'Amazon SQS permet de réduire à la fois les coûts et les réceptions vides. Vous pouvez définir le temps d'attente ReceiveMessage sur une valeur maximale de 20 secondes pour activer la longue interrogation. Vous pouvez spécifier le temps d'attente à l'aide de l'une des méthodes suivantes :

  • Au niveau de la file d'attente, vous pouvez configurer l'attribut de file d'attente ReceiveMessageWaitTimeSeconds.
  • Au niveau du message, vous pouvez envoyer l'appel d'API ReceiveMessage avec le paramètre ReceiveMessageWaitTime.
    Remarque : La définition du paramètre ReceiveMessageWaitTime au niveau du message dans l'API ReceiveMessage remplace la valeur du paramètre configurée au niveau de la file d'attente. Pour une fonction Lambda invoquée à l'aide d'Amazon SQS, Lambda utilise une interrogation longue pour interroger une file d'attente.

Opérations par lots

La tarification d'Amazon SQS est basée sur le nombre de requêtes. Vous pouvez réduire le nombre de requêtes, et ainsi réduire les coûts, en regroupant les actions de messages. Par exemple, au lieu d'appeler 10 fois l'API SendMessage, une seule opération SendMessageBatch peut être configurée pour envoyer 10 messages. Les autres actions d'opération par lots disponibles incluent DeleteMessageBatch et ChangeMessageVisibilityBatch.


Informations connexes

Réduction des coûts d'Amazon SQS

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 4 ans