Présentation

Q : Quels sont les avantages d'Amazon SQS par rapport aux systèmes de file d'attente conçus en interne ou intégrés ?

Amazon SQS offre plusieurs avantages par rapport au développement de votre propre logiciel de gestion de files d'attente de messages ou par rapport à l'utilisation de systèmes de file d'attente de messages commerciaux ou open source, dont le développement et la configuration nécessitent un investissement considérable en temps.

Ces alternatives nécessitent des ressources en maintenance du matériel et en administration des systèmes. La complexité de la configuration et de la gestion de ces systèmes est aggravée par la nécessité de mettre en place un stockage redondant des messages, afin d'éviter que les messages soient perdus en cas de défaillance du matériel.

Par opposition, Amazon SQS ne suppose aucuns frais généraux administratifs et nécessite peu de configuration. Amazon SQS fonctionne à très grande échelle et traite des milliards de messages par jour. Vous pouvez augmenter ou réduire la quantité de trafic envoyée à Amazon SQS sans la moindre configuration. Amazon SQS permet également aux messages de bénéficier d'une durabilité extrêmement élevée, ce qui renforce votre confiance et celle de vos parties prenantes.

Q : En quoi Amazon SQS diffère-t-il d'Amazon SNS ?

Amazon SNS permet aux applications d'envoyer des messages à caractère urgent à plusieurs abonnés par le biais d'un mécanisme « push », en éliminant le besoin de rechercher périodiquement des mises à jour ou de les « interroger ». Amazon SQS est un service de file d'attente de messages utilisé par les applications distribuées pour échanger des messages par le biais d'un modèle d'interrogation et il peut être utilisé pour découpler des éléments d'envoi et de réception. 

Q : En quoi Amazon SQS diffère-t-il d'Amazon MQ ?

Si vous utilisez une messagerie avec des applications existantes et que vous souhaitez faire migrer votre messagerie sur le cloud facilement et rapidement, nous vous recommandons d'utiliser Amazon MQ. Ce service prend en charge les API et les protocoles aux normes de l'industrie. Vous pouvez ainsi passer de n'importe quel agent de messages basé sur les normes à Amazon MQ, sans devoir réécrire le code de messagerie dans vos applications. Si vous créez de toutes nouvelles applications dans le cloud, nous vous recommandons d'utiliser Amazon SQS ou Amazon SNS. Amazon SQS et SNS sont des services de file d'attente de messages et de rubriques légers et entièrement gérés qui se mettent à l'échelle à l'infini et qui fournissent des API simples et faciles d'utilisation. 

Q : Amazon SQS propose-t-il une fonctionnalité de classement des messages ?

Oui. Les files d'attente FIFO (premier entré, premier sorti) préservent l'ordre exact selon lequel les messages sont envoyés et reçus. Si vous utilisez une file d'attente FIFO, il est inutile d'ajouter des informations de séquençage dans vos messages. Pour plus d'informations, consultez Logique de la file d'attente FIFO dans le Guide du développeur Amazon SQS.

Les files d'attente standard proposent une fonctionnalité FIFO libre, qui tente de préserver l'ordre des messages. Cependant, dans la mesure où ces files d'attente standard sont conçues pour être extrêmement évolutives à travers une architecture hautement distribuée, il n'est pas garanti que la réception des messages aura lieu précisément selon leur ordre d'envoi.

Q : Le service Amazon SQS garantit-il la remise des messages ?

Les files d'attente standard proposent une fonctionnalité de remise au moins une fois, qui garantit au moins une remise pour chaque message.

Les files d'attente FIFO fournissent un traitement en une seule fois, ce qui signifie que chaque message est délivré une fois et reste disponible tant qu'un consommateur ne l'a pas traité et supprimé. Aucun doublon n'est jamais inséré dans la file d'attente.

Q : En quoi Amazon SQS diffère-t-il d'Amazon Kinesis Streams ?

Amazon SQS propose une file d'attente hébergée fiable et hautement évolutive pour stocker les messages qui transitent entre des applications ou des microservices. Il déplace des données entre composants d'applications distribuées et vous permet de découpler ces composants. Amazon SQS offre des structures intergicielles courantes, telles que des files d'attente de lettre morte, et la gestion des pilules empoisonnées (« poison pill »). Il fournit également une API générale de services Web, accessible par n'importe quel langage de programmation pris en charge par le SDK d'AWS. Amazon SQS prend en charge à la fois les files d'attente standard et les files d'attente FIFO.

Amazon Kinesis Streams assure le traitement en temps réel des données de Big Data diffusées en continu et permet de lire et relire les enregistrements de diverses applications Amazon Kinesis. La bibliothèque client Amazon Kinesis (KCL) envoie tous les enregistrements associés à une clé de partition donnée vers un même processeur d'enregistrements. Il est ainsi très simple de créer plusieurs applications ayant accès au même flux Amazon Kinesis, ce qui peut s'avérer utile pour combiner des tâches de décompte, d'agrégation ou encore de filtrage.

Pour plus d'informations, consultez la documentation Amazon Kinesis.

Q : Est-ce qu'Amazon utilise Amazon SQS pour ses propres applications ?

Oui. Les développeurs chez Amazon utilisent Amazon SQS pour diverses applications traitant quotidiennement un grand nombre de messages. Des processus d'entreprise clés sur Amazon.com et Amazon Web Services utilisent Amazon SQS.

Facturation

Q : Combien coûte Amazon SQS ?

Vous payez uniquement en fonction de ce que vous utilisez et il n'y a pas de frais minimum.

Le coût d'Amazon SQS est calculé par requête, auquel s'ajoutent des frais de transfert pour les données transférées en dehors d'Amazon SQS (sauf si elles sont transférées vers des instances Amazon EC2 ou des fonctions AWS Lambda au sein de la même région). Pour connaître le détail des prix par type de file d'attente et par région, reportez-vous à la section Tarification Amazon SQS.

Q : Que puis-je faire avec l'offre gratuite Amazon SQS ?

L'offre gratuite d'Amazon SQS permet d'exécuter 1 million de requêtes par mois gratuitement.

De nombreuses applications à petite échelle sont en mesure de fonctionner entièrement en restant dans les limites du niveau d'utilisation gratuit. Toutefois, des frais de transfert des données peuvent tout de même s'appliquer. Pour en savoir plus, consultez la page Tarification Amazon SQS.

L'offre gratuite est une offre mensuelle. L'utilisation gratuite ne se cumule pas sur plusieurs mois.

Q : Toutes les requêtes Amazon SQS me seront-elles facturées ?

Oui, pour toutes les requêtes qui sortent du cadre gratuit. Toutes les requêtes Amazon SQS sont payantes et facturées au même tarif.

Q : Les opérations par lot d'Amazon SQS coûtent-elles plus cher que les autres requêtes ?

Non. Les opérations par lot (SendMessageBatch, DeleteMessageBatch et ChangeMessageVisbilityBatch) coûtent le même prix que les autres requêtes Amazon SQS. Regrouper les messages par lots vous permet de réduire les coûts d'Amazon SQS.

Q : Comment mon utilisation d'Amazon SQS me sera-t-elle facturée ?

L'utilisation d'Amazon SQS n'est soumise à aucuns frais initiaux. A la fin du mois, votre carte de crédit est automatiquement débitée en fonction de votre utilisation au cours du mois.

Vous pouvez consulter les frais encourus sur la période de facturation actuelle à tout moment, à partir du site Web d'AWS :

  1. Connectez-vous à votre compte AWS.
  2. Sous Vos comptes de services Web, sélectionnez Activité du compte.

Q : Comment suivre et gérer les coûts associés à mes files d'attente Amazon SQS ?

Vous pouvez appliquer des balises de répartition des coûts à vos files d'attente afin de suivre la gestion des ressources et des coûts. Une balise est une étiquette de métadonnées composée d'une paire clé-valeur. Par exemple, vous pouvez baliser vos files d'attente par centre de coût, puis classer et suivre vos coûts en fonction de ces centres de coûts.

Pour plus d'informations, consultez la section Balisage de vos files d'attente Amazon SQS du Guide du développeur Amazon SQS. Pour plus d'informations sur les balises de répartition des coûts pour les ressources AWS, consultez la section Utilisation des balises de répartition des coûts du Guide de l'utilisateur AWS Billing and Cost Management.

Q : Vos prix sont-ils toutes taxes comprises ?

Sauf indication contraire, nos prix n'incluent pas les taxes et redevances applicables, telles que la TVA et les taxes sur les ventes applicables.

Pour les clients dont l'adresse de facturation est située au Japon, l'utilisation d'AWS (dans n'importe quelle région) est soumise à la taxe sur la consommation applicable dans ce pays. Pour en savoir plus, consultez la FAQ sur la taxe à la consommation pour l'offre Amazon Web Services.

Caractéristiques, fonctionnalités et interfaces

Q : Puis-je utiliser Amazon SQS avec d'autres services AWS ?

Oui. Vous pouvez rendre vos applications plus flexibles et plus évolutives en utilisant Amazon SQS avec des services de calcul comme Amazon EC2, Amazon EC2 Container Service (Amazon ECS) et AWS Lambda, ainsi qu'avec des services de stockage et de base de données comme Amazon Simple Storage Service (Amazon S3) et Amazon DynamoDB.

Q : Comment puis-je interagir avec Amazon SQS ?

Vous pouvez accéder à Amazon SQS avec AWS Management Console, afin de créer des files d'attente Amazon SQS et d'envoyer des messages facilement.

Amazon SQS offre également une API de services web. Enfin, ce service est intégré aux kits SDK AWS, afin de travailler dans le langage de programmation de votre choix.

Q : Quelles actions d'API sont disponibles pour Amazon SQS ?

Pour en savoir plus sur les opérations pour les files d'attente de messages, consultez la référence sur l'API Amazon SQS.

Q : Qui peut réaliser des opérations sur une file d'attente de messages ?

Seul le propriétaire d'un compte AWS (ou un compte AWS auquel le propriétaire du compte a délégué des droits) peut effectuer des opérations sur une file d'attente de messages Amazon SQS.

Q : Puis-je utiliser Java Message Service (JMS) avec Amazon SQS ?

Oui. Vous pouvez tirer parti de l'évolutivité, du faible coût et de la haute disponibilité d'Amazon SQS sans vous soucier des frais généraux élevés que vous auriez à payer pour exécuter votre propre cluster JMS.

Amazon fournit la bibliothèque Amazon SQS Java Messaging Library qui implémente la spécification JMS 1.1 et utilise Amazon SQS en tant que fournisseur JMS. Pour plus d'informations, consultez Utilisation de JMS avec Amazon SQS dans le Guide du développeur Amazon SQS.

Q : Comment les messages sont-ils identifiés par Amazon SQS ?

Tous les messages possèdent un ID unique à l'échelle mondiale, que renvoie Amazon SQS lorsque le message est remis à la file d'attente de messages. L'ID n'est pas requis pour effectuer d'autres actions sur le message, mais il est utile pour suivre la réception d'un message particulier dans la file d'attente de messages.

Lorsque vous recevez un message de la file d'attente de messages, la réponse inclut une gestion des reçus que vous devez fournir lors de la suppression du message.

Pour plus d'informations, consultez Identifiants de files d'attente et de messages dans le Guide du développeur Amazon SQS.

Q : Comment Amazon SQS gère les messages ne pouvant pas être traités ?

Dans Amazon SQS, vous pouvez utiliser l'API ou la console pour configurer des files d'attente dead letter queue, c'est-à-dire des files d'attente configurées pour recevoir des messages provenant d'autres files d'attente sources.

Si vous transformez une file d'attente en une file d'attente dead letter queue, elle recevra des messages dont le nombre maximal de tentatives de traitement a été atteint. Vous pouvez utiliser les files d'attente dead letter queue pour isoler les messages qui ne peuvent pas être traités, afin de les analyser ultérieurement.

Pour plus d'informations, consultez Puis-je utiliser une file d'attente de lettres mortes avec les files d'attente FIFO ? sur la présente page et Utilisation d'une file d'attente de lettres mortes Amazon SQS dans le Guide du développeur Amazon SQS.

Q : Qu'est-ce qu'un délai de visibilité (timeout) ?

Le délai de visibilité (timeout) est la période durant laquelle Amazon SQS empêche les autres composants de consommation de recevoir et de traiter un message. Pour plus d'informations, consultez Délai de visibilité dans le Guide du développeur Amazon SQS.

Q : Amazon SQS prend-il en charge les métadonnées des messages ?

Oui. Un message Amazon SQS peut contenir jusqu'à 10 attributs de métadonnées. Vous pouvez utiliser les attributs de message pour séparer le corps d'un message et les métadonnées qui le décrivent. Cela vous aide à traiter et à stocker les informations plus rapidement et plus efficacement, car vos applications n'ont plus besoin d'inspecter le message entier pour comprendre comment le traiter.

Les attributs de message Amazon SQS prennent la forme de combinaisons nom-type-valeur. Parmi les types pris en charge, on trouve les chaînes, les binaires et les nombres (notamment les nombres entiers, les nombres à virgule flottante et les doubles binaires). Pour plus d'informations, consultez Utilisation des attributs de message Amazon SQS dans le Guide du développeur Amazon SQS.

Q : Comment puis-je déterminer la valeur du temps d'attente ?

Pour déterminer la valeur du temps d'attente, vous pouvez demander l'attribut SentTimestamp lorsque vous recevez un message. En soustrayant cette valeur de l'heure actuelle, vous obtenez la valeur du temps d'attente.

Q : Quelle est la latence généralement constatée dans Amazon SQS ?

Les latences auxquelles vous pouvez vous attendre pour les demandes d'API SendMessage, ReceiveMessage et DeleteMessage se comptent en dizaines ou en quelques centaines de millisecondes.

Q : En cas d'accès anonyme, quelle est la valeur de l'attribut SenderId d'un message ?

Lorsque l'ID de compte AWS n'est pas disponible (par exemple, lorsqu'un utilisateur anonyme envoie un message), Amazon SQS fournit l'adresse IP.

Q : En quoi consiste la fonction d'attente active de longue durée ou « long polling » d'Amazon SQS ?

La fonction d'attente active de longue durée d'Amazon SQS est une méthode de scrutation longue, plus connue sous le nom de « long polling », qui permet d'extraire des messages de vos files d'attente Amazon SQS. Tandis que l'interrogation classique de « short polling » (attente active de courte durée) renvoie des résultats immédiatement (même si la file d'attente de messages interrogée est vide), la fonction d'attente active de longue durée ne renvoie aucune réponse tant qu'aucun message n'arrive dans la file d'attente de messages ou que le délai d'attente de longue durée n'est pas arrivé à expiration.

La fonction d'attente active de longue durée est une solution peu coûteuse permettant l'extraction des messages de votre file d'attente Amazon SQS, dès leur mise à disposition. L'utilisation de la fonction d'attente active de longue durée ou « long polling » est susceptible de réduire le coût d'utilisation de SQS, car vous pouvez réduire le nombre de réceptions vides. Pour plus d'informations, consultez Fonction d'attente active de longue durée d'Amazon SQS dans le Guide du développeur Amazon SQS.

Q : Des frais supplémentaires s'appliquent-ils en cas d'utilisation de la fonction d'attente active de longue durée (« long polling ») d'Amazon SQS ?

Non. Les appels ReceiveMessage d'attente active de longue durée sont facturés de la même manière que les appels ReceiveMessage d'attente active de courte durée.

Q : Dans quels cas utiliser la fonction d'attente active de longue durée (« long polling ») ou celle de courte durée (« short polling ») d'Amazon SQS ?

Dans pratiquement tous les cas, la fonction d'attente active de longue durée d'Amazon SQS est préférable. Les requêtes de longue durée permettent aux clients présents dans votre file d'attente de recevoir des messages dès qu'ils arrivent dans votre file d'attente, tout en réduisant le nombre d'instances ReceiveMessageResponse vides renvoyées.

La fonction d'attente active de longue durée d'Amazon SQS permet donc, dans la plupart des cas d'utilisation, d'obtenir de meilleures performances à moindre coût. Toutefois, si votre application attend une réponse immédiate après un appel ReceiveMessage, il est possible que vous ne puissiez pas tirer profit de la fonction d'attente active de longue durée sans apporter quelques modifications à votre application.

Ainsi, si votre application utilise un seul thread pour interroger plusieurs files d'attente, il est peu probable que vous puissiez passer directement d'une attente active de courte durée (« short polling ») à une de longue durée (« long polling »). En effet, le thread unique attendra l'expiration du délai de l'attente longue pour toutes les éventuelles files d'attente vides, ce qui retardera le traitement des autres files d'attente pouvant contenir des messages.

Pour une telle application, une bonne pratique consiste à utiliser un thread unique pour traiter une seule file d'attente, en permettant à l'application de tirer parti des avantages de la fonction d'attente active de longue durée d'Amazon SQS.

Q : Quel délai d'expiration indiquer pour ma fonction d'attente active de longue durée (« long polling ») ?

En général, vous devriez indiquer un délai d'expiration de 20 secondes maximum pour une fonction d'attente active de longue durée. Plus la valeur du délai d'expiration pour la fonction d'attente active de longue durée est élevée, plus le nombre d'instances ReceiveMessageResponse vides reçues est faible. Essayez donc de définir un délai d'expiration le plus élevé possible.

Si le délai maximum de 20 secondes ne fonctionne pas pour votre application (voir l'exemple dans la question précédente) définissez un délai d'expiration inférieur pour la fonction d'attente active de longue durée (1 seconde minimum).

Tous les kits SDK AWS fonctionnent, par défaut, avec des délais d'attente active de longue durée de 20 secondes. Si vous n'utilisez pas un kit SDK AWS pour accéder à Amazon SQS, ou si vous avez configuré votre kit SDK AWS pour que le délai soit plus court, vous devrez peut-être modifier votre client Amazon SQS pour autoriser les requêtes plus longues ou pour utiliser un délai d'attente active de longue durée plus court.

Q : En quoi consiste le client AmazonSQSBufferedAsyncClient for Java ?

Le client AmazonSQSBufferedAsyncClient for Java implémente l'interface AmazonSQSAsyncClient et ajoute plusieurs fonctionnalités importantes :

  • traitement automatisé par lots des requêtes SendMessage, DeleteMessage ou ChangeMessageVisibility, sans modification nécessaire de l'application ;
  • pré-analyse des messages dans un tampon local qui permet à votre application de traiter automatiquement les messages issus d'Amazon SQS sans attendre que les messages soient récupérés.

Le traitement par lots, associé à la pré-analyse, offre un débit accru et une plus faible latence au niveau de votre application, tout en réduisant vos coûts grâce à un nombre plus restreint de requêtes Amazon SQS. Pour plus d'informations, consultez Mise en tampon côté client et traitement par lot des demandes dans le Guide du développeur Amazon SQS.

Q : Où puis-je télécharger le client AmazonSQSBufferedAsyncClient for Java ?

Vous pouvez télécharger le client AmazonSQSBufferedAsyncClient dans le cadre du kit AWS SDK pour Java.

Q : Dois-je réécrire mon application pour pouvoir utiliser le client AmazonSQSBufferedAsyncClient for Java ?

Non. Le client AmazonSQSBufferedAsyncClient for Java est implémenté pour remplacer le client AmazonSQSAsyncClient existant.

Si vous mettez à jour votre application afin d'utiliser le dernier kit SDK AWS et modifiez votre client afin d'utiliser le client AmazonSQSBufferedAsyncClient for Java au lieu du client AmazonSQSAsyncClient, votre application bénéficiera des avantages supplémentaires conférés par le traitement automatisé par lots et la pré-analyse.

Q : Comment puis-je m'abonner à des files d'attente de messages Amazon SQS pour recevoir des notifications depuis des rubriques Amazon SNS ?

  1. Dans la console Amazon SQS, sélectionnez une file d'attente standard Amazon SQS.
  2. Sous Actions de la file d'attente, sélectionnez Abonner la file d'attente à une rubrique SNS dans la liste déroulante.
  3. Dans la boîte de dialogue, sélectionnez la rubrique qui vous intéresse dans la liste déroulante Choisir une rubrique, puis cliquez sur le bouton Abonner.

Pour plus d'informations, consultez Abonnement d'une file d'attente à une rubrique Amazon SNS dans le Guide du développeur Amazon SQS.

Q : Puis-je supprimer tous les messages d'une file d'attente de messages sans supprimer la file d'attente de messages elle-même ?

Oui. Vous pouvez supprimer tous les messages d'une file d'attente de messages Amazon SQS en utilisant l'action PurgeQueue.

Lorsque vous effacez une file d'attente de messages, tous les messages précédemment envoyés vers la file d'attente de messages seront supprimés. Comme votre file d'attente de messages et ses attributs subsistent, il n'est pas nécessaire de reconfigurer la file d'attente de messages ; vous pouvez continuer à l'utiliser.

Pour supprimer uniquement certains messages précis, utilisez les actions DeleteMessage ou DeleteMessageBatch.

Pour en savoir plus, consultez le didacticiel Purging Messages from an Amazon SQS Queue.

Files d'attente FIFO

Q : Dans quelles régions les files d'attente FIFO sont-elles disponibles ?

Les files d'attente FIFO sont actuellement disponibles dans les régions USA Ouest (Oregon), USA Est (Ohio), USA Est (Virginie du Nord) et UE (Irlande). Nous proposerons cette fonctionnalité dans d'autres régions au cours des mois à venir.

Q : Combien d'exemplaires d'un message vais-je recevoir ?

Les files d'attente FIFO sont conçues de manière à ne jamais introduire de messages en double. Néanmoins, votre producteur de message peut introduire des doublons dans certains cas : par exemple, s'il envoie un message, ne reçoit pas de réponse, puis renvoie le même message. Les API d'Amazon SQS offrent une fonctionnalité de déduplication qui empêche votre producteur de message d'envoyer des doublons. Ainsi, chaque doublon introduit par le producteur est supprimé dans un délai de déduplication de 5 minutes.

Pour les files d'attente standard, il peut parfois arriver que vous receviez un deuxième exemplaire d'un message (remise au moins une fois). Si vous utilisez une file d'attente standard, vous devez concevoir vos applications afin qu'elles soient idempotentes (c.-à-d. qu'elles ne doivent pas être affectées si le même message est traité plus d'une fois).

Pour plus d'informations, consultez Traitement en une seule fois dans le Guide du développeur Amazon SQS.

Q : Les files d'attente Amazon SQS que j'utilise déjà vont-elles devenir des files d'attente FIFO ?

Non. Les files d'attente standard d'Amazon SQS (le nouveau nom des files d'attente existantes) ne changent pas, et vous pouvez toujours créer des files d'attente standard. Ces files d'attente continuent d'offrir le plus haut débit et la plus grande évolutivité. Cependant, l'ordre des messages n'est pas garanti, et des doublons risquent de survenir.

Les files d'attente standard sont adaptées à de nombreux scénarios, notamment pour la distribution des tâches avec plusieurs consommateurs idempotents.

Q : Puis-je convertir ma file d'attente standard en une file d'attente FIFO ?

Non. Vous devez choisir le type de file d'attente lors de sa création. Cependant, il est possible de passer sur une file d'attente FIFO. Pour plus d'informations, consultez la section Passage d'une file d'attente Standard à une file d'attente FIFO dans le Guide du développeur Amazon SQS.

Q : Les files d'attente FIFO d'Amazon SQS sont-elles rétrocompatibles ?

Vous devez utiliser le dernier kit SDK AWS pour pouvoir profiter des files d'attente FIFO.

Les files d'attente FIFO utilisent les mêmes actions d'API que les files d'attente standard, et les mécanismes de réception et de suppression de messages et de modification du délai de visibilité (timeout) sont identiques. Cependant, vous devez spécifier un ID de groupe de messagerie pendant l'envoi de messages. Pour plus d'informations, consultez Logique de la file d'attente FIFO dans le Guide du développeur Amazon SQS.

Q : Avec quels services AWS ou externes les files d'attente FIFO Amazon SQS sont-elles compatibles ?

Certains services AWS ou externes qui envoient des notifications à Amazon SQS peuvent ne pas être compatibles avec les files d'attente FIFO, même s'ils vous permettent de configurer une file d'attente FIFO en tant que cible.

Les fonctions suivantes des services AWS ne sont actuellement pas compatibles avec les files d'attente FIFO :

Pour en savoir plus sur la compatibilité des autres services avec les files d'attente FIFO, consultez votre documentation de service.

Q : Les files d'attente FIFO Amazon SQS sont-elles compatibles avec le client asynchrone de mise en mémoire tampon Amazon SQS, la bibliothèque Amazon SQS Extended Client Library for Java ou le client de service de messagerie Java (JMS) Amazon SQS ?

Les files d'attente FIFO ne sont actuellement pas compatibles avec le client asynchrone de mise en mémoire tampon Amazon SQS.

Les files d'attente FIFO sont compatibles avec la bibliothèque Amazon SQS Extended Client Library for Java et le client de service de messagerie Java (JMS) Amazon SQS.

Q : Quelles sont les métriques AWS CloudWatch prises en charge par les files d'attente FIFO d'Amazon SQS ?

Les files d'attente FIFO prennent en charge toutes les métriques compatibles avec les files d'attente standard. Avec les files d'attente FIFO, toutes les métriques approximatives renvoient des résultats précis. Les métriques AWS CloudWatch suivantes sont notamment prises en charge :

  • ApproximateNumberOfMessagesDelayed – nombre de messages dans la file d'attente qui sont retardés et qui ne peuvent pas être lus immédiatement.
  • ApproximateNumberOfMessagesVisible – nombre de messages disponibles dans cette file d'attente.
  • ApproximateNumberOfMessagesNotVisible – nombre de messages en transit (messages envoyés à un client, mais qui n'ont pas encore été supprimés ou n'ont pas dépassé leur période de visibilité).

Q : Que sont les groupes de messagerie ?

Les messages sont répartis dans des « lots » distincts et classés au sein d'une file d'attente FIFO. Pour chaque ID de groupe de messagerie, tous les messages sont envoyés et reçus en suivant rigoureusement l'ordre établi. Cependant, les messages aux ID de groupe de messagerie différents pourront être envoyés et reçus dans le désordre. Vous devez associer un ID de groupe de messagerie à un message. Si vous ne spécifiez pas d'ID de groupe de messagerie, l'action échoue.

Si plusieurs hôtes (ou différents threads dans un même hôte) envoient des messages portant le même ID de groupe de messagerie à une file d'attente FIFO, Amazon SQS délivre les messages dans l'ordre de leur arrivée pour traitement. Afin de garantir qu'Amazon SQS préserve l'ordre dans lequel les messages sont envoyés et reçus, veillez à ce que les expéditeurs envoient chaque message avec un ID de groupe de messagerie unique.

Pour plus d'informations, consultez Logique de la file d'attente FIFO dans le Guide du développeur Amazon SQS.

Q : Les files d'attente FIFO d'Amazon SQS peuvent-elles prendre en charge plusieurs producteurs ?

Oui. Une même file d'attente FIFO peut recevoir des messages d'un ou plusieurs producteurs. Les messages sont stockés dans l'ordre de leur réception par Amazon SQS.

Si plusieurs producteurs envoient des messages en parallèle sans atteindre la confirmation des actions SendMessage ou SendMessageBatch, l'ordre entre les producteurs risque de ne pas être préservé. La réponse des actions SendMessage ou SendMessageBatch contient l'ordre final utilisé par les files d'attente FIFO pour placer les messages d'attente dans la file, afin que votre code à plusieurs producteurs parallèles puisse déterminer l'ordre final des messages dans la file.

Q : Les files d'attente FIFO d'Amazon SQS peuvent-elles prendre en charge plusieurs consommateurs ?

Les files d'attente FIFO d'Amazon SQS sont pensées pour ne pas envoyer les messages du même groupe de messagerie à plus d'un consommateur à la fois. Cependant, si votre file d'attente FIFO comporte plusieurs groupes de messagerie, vous pouvez profiter de la mise en parallèle des consommateurs pour permettre à Amazon SQS de transmettre les messages de différents groupes de messagerie à différents consommateurs.

Q : Puis-je utiliser une file d'attente dead letter queue avec les files d'attente FIFO ?

Oui. Cependant, vous devez utiliser une file d'attente dead letter queue FIFO avec une file d'attente FIFO. (De même, vous ne pouvez utiliser qu'une file d'attente dead letter queue standard avec une file d'attente standard).

Q : Quel est le débit maximal d'une file d'attente FIFO d'Amazon SQS ?

Par défaut, les files d'attente FIFO prennent en charge jusqu'à 3 000 messages par seconde avec le traitement par lot ou jusqu'à 300 messages par seconde (300 actions d'envoi, de réception ou de suppression par seconde) sans traitement par lot. Pour demander une augmentation de la limite, soumettez une demande de support.

Q : Existe-t-il des limites spécifiques aux attributs de files d'attente FIFO ?

Le nom d'une file d'attente FIFO doit se terminer par le suffixe .fifo. Le suffixe est pris en compte dans la limite de 80 caractères du nom d'une file d'attente. Pour déterminer si une file d'attente est FIFO, vous pouvez vérifier si son nom se termine par le suffixe.

Sécurité et fiabilité

Q : Quel est le niveau de fiabilité du stockage de mes données dans Amazon SQS ?

Amazon SQS stocke toutes les files d'attente de messages et tous les messages dans une seule région AWS hautement disponible, comprenant plusieurs zones de disponibilité (AZ) redondantes afin qu'aucune défaillance d'ordinateur, de réseau ou de zone de disponibilité ne puisse empêcher l'accès aux messages. Pour plus d'informations, consultez Régions et zones de disponibilité dans le Guide de l'utilisateur Amazon Relational Database Service.

Q : Comment puis-je sécuriser les messages dans mes files d'attente de messages ?

Des mécanismes d'authentification veillent à ce que les messages stockés dans les files d'attente de messages Amazon SQS soient sécurisés contre tout accès non autorisé. Vous pouvez contrôler qui peut envoyer des messages à une file d'attente de messages et qui peut recevoir des messages depuis une file d'attente de messages. Pour plus de sécurité, vous pouvez développer votre application afin de chiffrer les messages avant qu'ils ne soient placés dans une file d'attente de messages.

Amazon SQS possède son propre système d'autorisations basé sur les ressources, qui utilise des stratégies écrites dans le même langage de programmation que les stratégies d'AWS Identity and Access Management (IAM) : par exemple, vous pouvez utiliser des variables, tout comme dans les stratégies d'IAM. Pour plus d'informations, consultez Exemples de stratégie Amazon SQS dans le Guide du développeur Amazon SQS.

Amazon SQS est compatible avec les protocoles HTTPS (HTTP over SSL) et TLS (Transport Layer Security). La plupart des clients peuvent automatiquement utiliser des versions plus récentes du protocole TLS sans modification du code ni de la configuration. Amazon SQS est compatible avec les versions 1.0, 1.1 et 1.2 du protocole TLS (Transport Layer Security) dans toutes les régions.

Q : Pourquoi y a-t-il des opérations ReceiveMessage et DeleteMessage séparées ?

Quand Amazon SQS vous renvoie un message, ce message reste dans la file d'attente de messages, que vous le receviez ou non. Vous êtes responsable de la suppression du message ; la demande de suppression confirme que vous avez terminé de traiter le message.

Si vous ne supprimez pas le message, le service Amazon SQS le livrera à nouveau lorsqu'une nouvelle demande de réception lui sera adressée. Pour plus d'informations, consultez Délai de visibilité dans le Guide du développeur Amazon SQS.

Q : Un message supprimé peut-il être reçu à nouveau ?

Non. Les files d'attente FIFO ne génèrent jamais de doublons de messages.

Pour une file d'attente standard, et bien que cela arrive rarement, il est possible que vous receviez une seconde fois un message qui a déjà été supprimé. 

Q : Que se passe-t-il si j'émets une demande DeleteMessage sur un message supprimé précédemment ?

Lorsque vous émettez une demande DeleteMessage sur un message supprimé précédemment, Amazon SQS renvoie une réponse de réussite.

Chiffrement côté serveur (SSE)

Q : Quels sont les avantages du chiffrement côté serveur (SSE) pour Amazon SQS ?

Le chiffrement côté serveur (SSE, Server-Side Encryption) vous permet de transférer des données sensibles dans des files d'attente chiffrées. Le chiffrement côté serveur protège le contenu des messages présents dans les files d'attente Amazon SQS à l'aide de clés gérées dans AWS Key Management Service (AWS KMS). La fonctionnalité SSE chiffre les messages dès leur arrivée dans les files d'attente Amazon SQS. Les messages sont stockés sous cette forme chiffrée et Amazon SQS assure leur déchiffrement uniquement lorsqu'ils sont transmis à un client final autorisé.

Pour en savoir plus, consultez Protection des données à l'aide du chiffrement côté serveur (SSE) et d'AWS KMS dans le guide du développeur Amazon SQS

Q : Puis-je utiliser SNS, CloudWatch Events et S3 Events avec les files d'attente chiffrées ?

Oui. Pour cela, vous devez activer la compatibilité entre les services AWS (par exemple Amazon CloudWatch Events, Amazon S3, and Amazon SNS) et les files d'attente avec SSE. Pour obtenir des instructions détaillées, consultez la section relative à la compatibilité du Guide du développeur SQS.  

Q : Dans quelles régions les files d'attente avec chiffrement SSE sont-elles disponibles ?

Le chiffrement du côté du serveur (SSE) pour Amazon SQS est disponible dans les régions suivantes : Asie-Pacifique (Mumbai, Osaka, Séoul, Singapour, Sydney et Tokyo), Canada (Centre), UE (Francfort, Irlande, Londres et Paris), Amérique du Sud (São Paulo), USA Ouest (Californie du Nord, Oregon), USA Est (Virginie du Nord, Ohio) et GovCloud (US).

Q : Comment activer le chiffrement SSE pour une file d'attente Amazon SQS, nouvelle ou existante ?

Pour activer le chiffrement SSE pour une nouvelle file d'attente ou une file d'attente existante à l'aide de l'API Amazon SQS, spécifiez l'ID de la clé principale client (CMK), c'est-à-dire l'alias, l'ARN d'alias, l'ID de clé ou l'ARN d'une clé CMK gérée par AWS ou personnalisée, en définissant l'attribut KmsMasterKeyId de l'action CreateQueue ou SetQueueAttributes.

Pour obtenir des instructions détaillées, consultez les sections Création d'une file d'attente Amazon SQS avec chiffrement côté serveur et Configuration du chiffrement côté serveur (SSE) pour une file d'attente Amazon SQS existante du guide du développeur Amazon SQS.

Q : Quels types de files d'attente Amazon SQS peuvent utiliser le chiffrement SSE ?

Le chiffrement SSE est pris en charge aussi bien par les files d'attente standard que FIFO.

Q : De quelles autorisations ai-je besoin pour utiliser le chiffrement SSE avec Amazon SQS ?

Avant d'utiliser le chiffrement SSE, vous devez configurer les stratégies de clé AWS KMS afin de permettre le chiffrement des files d'attente, ainsi que le chiffrement et le déchiffrement des messages.

Pour activer le chiffrement SSE pour une file d'attente, vous pouvez utiliser la clé principale client (CMK) gérée par AWS pour Amazon SQS ou une clé CMK personnalisée. Pour en savoir plus, consultez la section Clés principales client du guide du développeur AWS KMS.

Pour envoyer des messages à une file d'attente chiffrée, le producteur de données doit disposer des autorisations kms:GenerateDataKey et kms:Decrypt pour la clé CMK.

Pour recevoir des messages d'une file d'attente chiffrée, le consommateur doit disposer de l'autorisation kms:Decrypt pour toute clé CMK utilisée pour chiffrer les messages dans la file d'attente spécifiée. Si la file d'attente joue le rôle de file d'attente de lettres mortes, le consommateur doit également disposer de l'autorisation kms:Decrypt pour toute clé CMK utilisée pour chiffrer les messages dans la file d'attente d'origine.

Pour plus d'informations, consultez Quelles sont les autorisations nécessaires pour utiliser SSE ? dans le Guide du développeur Amazon SQS.

Q : Des frais sont-ils facturés pour l'utilisation du chiffrement SSE avec Amazon SQS ?

Nous ne facturons aucuns frais Amazon SQS supplémentaires. Cependant, des frais sont appliqués pour les appels d'Amazon SQS vers AWS KMS. Pour plus d'informations, consultez Tarification d'AWS Key Management Service.

Les frais d'utilisation d'AWS KMS dépendent de la période de réutilisation des clés de données configurée pour vos files d'attente. Pour plus d’informations, consultez Comment estimer mes frais d'utilisation AWS KMS ? dans le Guide du développeur Amazon SQS.

Q : Quels sont les éléments chiffrés par la fonctionnalité SSE pour Amazon SQS, et de quelle façon ?

La fonctionnalité SSE chiffre le corps d'un message dans la file d'attente Amazon SQS.

Le chiffrement SSE ne s'applique pas aux éléments suivants :

  • Métadonnées de file d'attente (nom et attributs de la file d'attente)
  • Métadonnées de message (ID, horodatage et attributs du message)
  • Métriques par file d'attente

Amazon SQS génère des clés de données basées sur la clé principale client (CMK) gérée par AWS pour Amazon SQS ou une clé CMK personnalisée. Cela permet le chiffrement d'enveloppe et le déchiffrement des messages pendant une durée que vous pouvez configurer (entre 1 minute et 24 heures).

Pour plus d'informations, consultez Quels sont les éléments chiffrés par la fonctionnalité SSE pour Amazon SQS ? dans le Guide du développeur Amazon SQS.

Q : Quel est l'algorithme utilisé par la fonctionnalité SSE pour Amazon SQS afin de chiffrer les messages ?

La fonctionnalité SSE utilise l'algorithme AES-GCM 256.

Q : L'utilisation du chiffrement SSE limite-t-elle le nombre de transactions par seconde (TPS) ou le nombre de files d'attente pouvant être créées dans Amazon SQS ?

Le chiffrement SSE ne limite pas le débit (TPS) d'Amazon SQS. Le nombre de files d'attente SSE que vous pouvez créer est limité en fonction des facteurs suivants :

  • La période de réutilisation des clés de données (1 minute à 24 heures).
  • La limite AWS KMS définie pour chaque compte (100 TPS par défaut).
  • Le nombre de comptes ou d'utilisateurs IAM accédant aux files d'attente.
  • L'existence de messages en souffrance (si de nombreux messages sont en souffrance, davantage d'appels AWS KMS sont nécessaires).

Prenons l'exemple suivant :

  • Vous définissez une période de réutilisation des clés de données de 5 minutes (300 secondes).
  • La limite de TPS AWS KMS est de 100 TPS par défaut pour votre compte KMS.
  • Vous utilisez une file d'attente Amazon SQS sans retard et avec un utilisateur IAM pour
  • les actions SendMessage ou ReceiveMessage pour toutes les files d'attente.

Dans ce cas, vous pouvez calculer le nombre maximal théorique de files d'attente Amazon SQS avec chiffrement SSE de la manière suivante :

300 secondes × 100 TPS / 1 utilisateur IAM = 30 000 files d'attente

Q : Comment estimer mes frais d'utilisation AWS KMS ?

Afin de prévoir les coûts et de mieux comprendre votre facture AWS, vous souhaiterez peut-être connaître la fréquence à laquelle Amazon SQS utilise votre clé CMK.

Remarque : Bien que la formule suivante puisse vous donner une bonne estimation des coûts à prévoir, les coûts réels pourront être plus élevés en raison de la nature distribuée d'Amazon SQS.

Pour calculer le nombre de requêtes d'API par file d'attente (R), utilisez la formule suivante :

R = B / D * (2 * P + C)

B correspond à la période de facturation (en secondes)

D est la période de réutilisation des clés de données (en secondes)

P correspond au nombre d'éléments Principal producteurs envoyant des données à la file d'attente Amazon SQS.

C correspond au nombre d'éléments Principal consommateurs recevant des données de la file d'attente Amazon SQS.

Important : En règle générale, les éléments Principal producteurs sont facturés le double des éléments Principal consommateurs. Pour plus d'informations, consultez Fonctionnement de la période de réutilisation des clés de données dans le Guide du développeur Amazon SQS.

Si le producteur et le consommateur ont recours à des utilisateurs IAM différents, le coût augmente.

Pour plus d’informations, consultez Comment estimer mes frais d'utilisation AWS KMS ? dans le Guide du développeur Amazon SQS.

Conformité

Q : Le service Amazon SQS est-il conforme à la norme PCI DSS ?

Oui. Amazon SQS est conforme à la norme PCI DSS de niveau 1. Pour plus d'informations, consultez Conformité PCI.

Q : Est-ce qu'Amazon SQS est éligible HIPAA ?

Oui, AWS a étendu son programme de conformité HIPAA et comprend désormais Amazon SQS comme service éligible HIPAA. Si vous disposez d'un accord de partenariat (BAA) exécuté avec AWS, vous pouvez utiliser Amazon SQS pour développer vos applications conforme HIPAA, stocker des messages en transit et transmettre des messages (y compris les messages contenant des informations de santé protégées (PHI).

Si vous disposez déjà d'un BAA exécuté avec AWS, vous pouvez utiliser Amazon SQS immédiatement. Si vous n'avez pas de BAA ou si vous avez d'autres questions sur l'utilisation d'AWS avec des applications conformes HIPAA, contactez-nous pour obtenir plus d'informations.

Remarque : Si vous préférez ne pas transférer les informations de santé protégées via Amazon SQS (ou si vous avez des messages dont la taille excède 256 Ko), vous pouvez également envoyer les charges utiles de message Amazon SQS via Amazon S3 à l'aide d'Amazon SQS Extended Client Library for Java (Amazon S3 est un service éligible HIPAA, à l'exception d'Amazon S3 Transfer Acceleration). Pour plus d'informations, consultez la section Utilisation de la bibliothèque Amazon SQS Extended Client Library for Java dans le Guide du développeur Amazon SQS.

Limites et restrictions

Q : Pendant combien de temps puis-je conserver mes messages dans des files d'attente de messages Amazon SQS ?

Une période de rétention des messages plus longue procure une plus grande flexibilité en vous permettant de disposer d'intervalles plus longs entre la production et la consommation de messages.

Vous pouvez configurer la période de rétention des messages Amazon SQS en choisissant une durée entre 1 minute et 14 jours. La durée par défaut est de 4 jours. Une fois la limite de rétention des messages atteinte, vos messages sont automatiquement supprimés.

Q : Comment configurer Amazon SQS pour prendre en charge une rétention plus longue des messages ?

Pour configurer la durée de rétention des messages, définissez l'attribut MessageRetentionPeriod à l'aide de la console ou de la méthode Distributiveness. Utilisez cet attribut pour spécifier le nombre de secondes durant lesquelles un message sera conservé dans Amazon SQS.

Vous pouvez utiliser l'attribut MessageRetentionPeriod pour configurer la période de rétention des messages de 60 secondes (1 minute) à 1 209 600 secondes (14 jours). Pour en savoir plus sur l'utilisation de cet attribut de message, consultez la page Référence des API d'Amazon SQS.

Q : Comment configurer la taille de message maximale pour Amazon SQS ?

Pour configurer la taille de message maximale, utilisez la console ou la méthode SetQueueAttributes pour configurer l'attribut MaximumMessageSize. Cet attribut définit la limite d'octets pouvant être contenus dans un message Amazon SQS. Choisissez une valeur entre 1 024 octets (1 Ko) et 262 144 octets (256 Ko). Pour plus d'informations, consultez Utilisation des attributs de message Amazon SQS dans le Guide du développeur Amazon SQS.

Pour envoyer des messages de plus de 256 Ko, utilisez la bibliothèque Amazon SQS Extended Client Library for Java. Cette bibliothèque vous permet d'envoyer un message Amazon SQS contenant une référence à un corps de message stocké dans Amazon S3 et dont la taille peut aller jusqu'à 2 Go.

Q : Quel type de données puis-je inclure dans un message ?

Les messages Amazon SQS peuvent contenir jusqu'à 256 Ko de données sous forme de texte, y compris XML, JSON et du texte non formaté. Les caractères Unicode suivants sont acceptés :

#x9 | #xA | #xD | [#x20 à #xD7FF] | [#xE000 à #xFFFD] | [#x10000 à #x10FFFF]

Pour plus d'informations, consultez Spécifications du langage XML 1.0.

Q : Quelle taille peuvent atteindre les files d'attente de messages Amazon SQS ?

Une file d'attente de messages Amazon SQS peut contenir une infinité de messages. Cependant, il existe une limite de 120 000 messages en transit pour une file d'attente standard, et de 20 000 messages en transit pour une file d'attente FIFO. Les messages sont considérés comme étant « en vol » lorsqu'un composant utilisateur les a reçus à partir de la file d'attente, mais qu'ils n'ont pas encore été supprimés de cette dernière.

Q : Combien de files d'attente de messages puis-je créer ?

Vous pouvez créer une infinité de files d'attente de messages.

Q : La taille du nom des files d'attente de messages Amazon SQS est-elle limitée ?

Les noms de files d'attente sont limités à 80 caractères.

Q : Y a-t-il des restrictions concernant le nom des files d'attente de messages Amazon SQS ?

Vous pouvez utiliser des caractères alphanumériques, des tirets (-) et des traits de soulignement (_).

Q : Puis-je réutiliser le nom d'une file d'attente de messages ?

Le nom d'une file d'attente de messages doit être unique au sein d'un compte et d'une région AWS. Vous pouvez réutiliser le nom d'une file d'attente de messages si vous supprimez la file d'attente de messages en question.

Partage de file d'attente

Q : Comment partager une file d'attente de messages ?

Vous pouvez associer une déclaration de stratégie d'accès (et spécifier les autorisations accordées) à la file d'attente à partager. Amazon SQS fournit des API pour créer et gérer les déclarations de stratégie d'accès :

  • AddPermission
  • RemovePermission
  • SetQueueAttributes
  • GetQueueAttributes

Pour en savoir plus, consultez le document Référence des API d'Amazon SQS.

Q : Qui paie l'accès aux files d'attente partagées ?

Le propriétaire de la file d'attente de messages paie l'accès à la file d'attente de messages partagée.

Q : Comment puis-je identifier un autre utilisateur AWS avec lequel je souhaite partager une file d'attente de messages ?

L'API Amazon SQS utilise le numéro de compte AWS pour identifier les utilisateurs AWS.

Q : Quelles informations dois-je fournir à un utilisateur AWS avec lequel je souhaite partager une file d'attente de messages ?

Pour partager une file d'attente de messages avec un utilisateur AWS, fournissez-lui l'URL complète de la file d'attente de messages que vous souhaitez partager. Les opérations CreateQueue et ListQueues renvoient cette URL dans leur réponse.

Q : Le service Amazon SQS prend-il en charge l'accès anonyme ?

Oui. Vous pouvez configurer une stratégie d'accès permettant à des utilisateurs anonymes d'accéder à une file d'attente de messages.

Q : Quand dois-je utiliser l'API d'autorisations ?

L'API d'autorisations vous offre une interface pour partager l'accès à une file d'attente de messages avec des développeurs. Toutefois, cette API ne peut pas être utilisée pour accorder un accès conditionnel ou pour prendre en charge des cas d'utilisation plus avancés.

Q : Quand dois-je utiliser l'opération SetQueueAttributes avec des objets JSON ?

L'opération SetQueueAttributes prend en charge le langage de stratégie d'accès total. Par exemple, vous pouvez utiliser le langage de stratégie pour restreindre l'accès à une file d'attente de messages en fonction de l'adresse IP et du moment de la journée. Pour plus d'informations, consultez Exemples de stratégie Amazon SQS dans le Guide du développeur Amazon SQS.

Accès au service et régions

Q : Dans quelles régions le service Amazon SQS est-il disponible ?

Pour connaître la disponibilité du service par région, consultez le tableau des régions de l'infrastructure mondiale d'AWS.
Remarque : Les files d'attente FIFO ne sont actuellement disponibles que dans les régions USA Ouest (Oregon), USA Est (Ohio), USA Est (Virginie du Nord) et UE (Irlande). Nous proposerons cette fonctionnalité dans d'autres régions au cours des mois à venir.

Q : Puis-je partager des messages entre des files d'attente de messages situées dans différentes régions ?

Non. Chaque file d'attente de messages Amazon SQS est indépendante au sein de chaque région.

Q : Y a-t-il une différence de tarifs entre les régions ?

La tarification d'Amazon SQS est la même pour toutes les régions, sauf la Chine (Pékin). Pour en savoir plus, consultez la page Tarification Amazon SQS.

Q : Quelle est la grille tarifaire pour les transferts entre différentes régions ?

Vous pouvez transférer des données entre Amazon SQS et Amazon EC2 ou AWS Lambda gratuitement au sein de la même région.

Lorsque vous transférez des données entre Amazon SQS et Amazon EC2 ou AWS Lambda dans différentes régions, l'opération vous sera facturée au tarif de transfert de données normal. Pour en savoir plus, consultez la page Tarification Amazon SQS.

En savoir plus sur la tarification d'Amazon SQS

Visiter la page de tarification
Prêt à concevoir ?
Démarrage avec Amazon SQS
D'autres questions ?
Contactez-nous