Q : Qu'est-ce qu'Amazon SQS ?

Amazon Simple Queue Service (Amazon SQS) est un service Web qui vous donne accès aux files d'attente de messages qui stockent les messages en attente de traitement. Avec Amazon SQS, vous pouvez développer rapidement des applications de file d'attente de messages, qui peuvent être exécutées sur n'importe quel ordinateur.

Amazon SQS offre une file d'attente hébergée, fiable et hautement évolutive pour le stockage de messages en transit entre différents ordinateurs. Grâce à Amazon SQS, vous pouvez déplacer des données entre différents composants d'application distribués, sans perdre de messages ni avoir besoin que chaque composant soit toujours disponible.

Amazon SQS peut vous aider à développer une application distribuée dotée de composants séparés, fonctionnant en étroite collaboration avec Amazon Elastic Compute Cloud (Amazon EC2) et d'autres services Web d'infrastructure AWS.

Q : Que puis-je faire avec Amazon SQS ?

Comme Amazon SQS est hautement évolutif et que vous payez uniquement en fonction de votre utilisation, vous pouvez débuter modestement, puis développer votre application en fonction des besoins de votre entreprise, sans faire de compromis sur les performances ni sur la fiabilité. Grâce à Amazon SQS, vous n'avez plus besoin de vous soucier du stockage ni de la gestion de vos messages et pouvez vous concentrer sur le développement d'applications sophistiquées et robustes basées sur des messages.

Voici quelques idées :

  • Intégrer Amazon SQS à d'autres services AWS pour rendre vos applications plus fiables et plus flexibles.
  • Utiliser Amazon SQS pour créer des files d'attente de travail dans lesquelles chaque message est une tâche qui doit être effectuée par un processus. Laisser un (ou plusieurs) ordinateurs lire des tâches depuis la file d'attente de messages et les traiter.
  • Développer une architecture de microservices et utiliser les files d'attente de messages pour connecter vos différents microservices.
  • Conserver les notifications d'événements importants pour votre entreprise dans une file d'attente de messages Amazon SQS. Chaque évènement peut disposer d'un message correspondant dans une file d'attente de messages. Les applications qui doivent être informées de l'évènement peuvent donc lire et traiter les messages.

Q : Comment démarrer avec Amazon SQS ?

Vous pouvez démarrer avec Amazon SQS en quelques étapes :

  1. Inscrivez-vous pour obtenir un compte AWS.
  2. Une fois inscrit, accédez à AWS Management Console, sélectionnez SQD, puis, à la page suivante, sélectionnez Créer une nouvelle file d'attente.
  3. Dans la boîte de dialogue Créer une nouvelle file d'attente, saisissez un nom de file d'attente dans Nom de la file d'attente (par exemple : MaFileD'attente), puis cliquez sur Créer la file d'attente.
  4. Sélectionnez une file d'attente et, dans la liste déroulante Actions de la file d'attente, sélectionnez Envoyer un message.
  5. Dans la boîte de dialogue Envoyer un message à MaFileD'attente, à l'onglet Corps du message, saisissez le texte de votre message, puis cliquez sur Envoyer le message.

Le message est envoyé et une confirmation reprenant les attributs du message s'affiche. Cliquez sur Fermer pour terminer.

Pour en savoir plus, consultez le Guide de démarrage d'Amazon SQS, le Manuel du développeur d'Amazon SQS et les exemples de code dans le centre de ressources.

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 ?

Utiliser 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 ou 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. En outre, 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 : Dans quelles situations devrais-je utiliser Amazon Simple Workflow Service (Amazon SWF) au lieu d'Amazon SQS ?

Vous pouvez utiliser Amazon SWF ou Amazon SQS pour développer des applications distribuées séparées :

  • Amazon SWF est un service conçu pour l'orchestration d'applications hautement évolutives ; il permet également de réaliser des audits.
  • Amazon SQS offre une file d'attente hébergée, fiable et hautement évolutive pour l'envoi et la réception de messages.

Bien que vous puissiez utiliser Amazon SQS pour développer des flux de travail visant à coordonner votre application distribuée, Amazon SWF vous propose cette fonction clé en main, ainsi que d'autres capacités au niveau des applications.

Nous vous recommandons d'essayer Amazon SQS et Amazon SWF pour déterminer quelle solution répond le mieux à vos besoins.

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.


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

Le niveau d'utilisation gratuit d'Amazon SQS vous offre 1 million de demandes 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.

Le niveau d'utilisation gratuit est une offre mensuelle. Les quotas d'utilisation gratuite ne sont pas cumulables au fil des mois.

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.

Dans la plupart des régions, le coût d'Amazon SQS est de 0,50 USD par tranche d'un million de requêtes, auquel s'ajoutent des frais de transfert de données pour les données transférées en dehors d'Amazon SQS (sauf si les données sont transférées vers des instances Amazon EC2 ou des fonctions AWS Lambda au sein de la même région). Pour en savoir plus, consultez la page Tarification Amazon SQS.

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

Oui. 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 (notamment SendMessageBatch, DeleteMessageBatch et ChangeMessageVisbilityBatch) coûtent toutes 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 : Vos prix sont-ils toutes taxes comprises ?

Sauf indication contraire, nos prix n'incluent pas les taxes et redevances applicables, y compris 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.


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.

Un cas d'utilisation courant consiste à créer une application distribuée séparée, où plusieurs composants ou modules doivent communiquer entre eux, mais ne peuvent pas tous traiter la même charge de travail simultanément. Dans ce cas précis, les files d'attente de messages Amazon SQS transportent les messages à traiter par l'application qui est exécutée sur des instances Amazon EC2.

Les instances Amazon EC2 peuvent lire la file d'attente de messages, traiter la tâche, puis publier les résultats sous forme de messages dans une autre file d'attente de messages Amazon SQS (pour être par exemple traités par une autre application). Comme Amazon EC2 permet le dimensionnement d'applications de manière dynamique à la hausse ou à la baisse, les développeurs d'applications peuvent faire varier le nombre d'instances de calcul en fonction de la quantité de messages dans les files d'attente Amazon SQS à l'aide d'Auto Scaling, afin de s'assurer que les tâches sont exécutées en temps opportun.

Q : Pouvez-vous me donner un exemple de cas d'utilisation pour Amazon SQS ?

Voici comment un site de transcodage vidéo utilise conjointement Amazon EC2, Amazon SQS, Amazon S3 et Amazon DynamoDB :

  1. Les utilisateurs finaux envoient les vidéos à transcoder sur le site.
  2. Les vidéos sont stockées dans Amazon S3 et le message de requête est placé dans une file d'attente entrante Amazon SQS et contient un pointeur vers la vidéo et vers le format cible.
  3. Le moteur de transcodage, exécuté sur un ensemble d'instances Amazon EC2, lit le message de requête depuis la file d'attente entrante, récupère la vidéo dans Amazon S3 à l'aide du pointeur, et effectue le transcodage de la vidéo dans le format cible.
  4. La vidéo convertie est replacée dans Amazon S3 et un autre message de réponse est placé dans une autre file d'attente sortante Amazon SQS, contenant un pointeur vers la vidéo convertie.
  5. Simultanément, les métadonnées de la vidéo (format, date de création, durée, etc.) sont indexées dans Amazon DynamoDB à des fins d'interrogation.

Au cours de ce flux de travail, une instance Auto Scaling dédiée peut surveiller en permanence la file d'attente entrante. En fonction du nombre de messages présents dans la file d'attente, l'instance Auto Scaling ajuste de manière dynamique le nombre d'instances de transcodage Amazon EC2 afin de répondre aux exigences des clients du site en matière de temps de réponse.

Q : Comment puis-je interagir avec Amazon SQS ?

Vous pouvez accéder à Amazon SQS à l'aide d'AWS Management Console, qui dispose d'une interface Web visuelle pour configurer et gérer Amazon SQS.

Amazon SQS, qui offre également une API de services Web, est intégré aux Kits SDK AWS, ce qui vous permet de travailler dans le langage de programmation de votre choix.

Q : Quelles sont les opérations disponibles pour les files d'attente de messages ?

Pour en savoir plus sur les opérations pour les files d'attente de messages, consultez la Description détaillée d'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 en savoir plus, consultez la page Utilisation de JMS avec Amazon SQS.

Q : Comment sont identifiés les messages dans le système ?

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.

Q : Comment les messages dont le traitement a échoué sont-ils gérés ?

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

Toute file d'attente peut devenir une file d'attente dead letter queue qui recevra les messages lorsque le nombre maximal de tentatives de traitement aura é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 en savoir plus, consultez la page Utilisation des files d'attente dead letter queue d'Amazon SQS.

Q : Amazon SQS fournit-il un accès aux messages de type « premier entré, premier sorti » (FIFO) ?

Amazon SQS fournit une capacité FIFO libre, qui tente de préserver l'ordre des messages. Toutefois, nous avons conçu le service Amazon SQS afin qu'il soit hautement évolutif à l'aide d'une architecture distribuée. Par conséquent, nous ne pouvons pas vous garantir que vous recevrez toujours les messages dans l'ordre exact dans lequel vous les avez envoyés (FIFO).

Si votre système nécessite que l'ordre des messages soit préservé, placez des informations de séquence dans chaque message afin que les messages puissent être ordonnés une fois reçus.

Q : Le service Amazon SQS propose-t-il la remise des messages de type « au moins une fois » ?

Oui. Amazon SQS garantit que chaque message est remis au moins une fois. Amazon SQS stocke des copies de vos messages sur plusieurs serveurs pour assurer la redondance et offrir une haute disponibilité. A de rares occasions, l'un des serveurs qui stockent la copie d'un message peut être indisponible lors de la réception ou de la suppression du message.

Dans ce cas, la copie du message n'est pas supprimée sur le serveur indisponible, et vous êtes susceptible de recevoir à nouveau une copie de ce message lors de la réception des autres messages (remise de type « au moins une fois »).

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).

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 en savoir plus, consultez la page Délai de visibilité (timeout).

Q : Comment Amazon SQS permet-il à plusieurs lecteurs d'accéder à la même file d'attente de messages, sans perdre de messages ni les traiter plusieurs fois ?

Chaque file d'attente Amazon SQS dispose d'un délai de visibilité (timeout) configurable. Un message n'est pas visible pour les autres lecteurs pendant une durée définie lorsqu'il est lu depuis une file d'attente de messages. Tant que la durée nécessaire au traitement du message est inférieure au délai de visibilité (timeout), chaque message est traité et supprimé.

Si le composant traitant le message est défaillant ou devient indisponible, le message redeviendra visible pour tous les composants lisant la file d'attente de messages, une fois le délai de visibilité (timeout) écoulé. Cela permet à plusieurs composants de lire des messages depuis la même file d'attente de messages, chacun traitant des messages différents.

Q : Quelle est la durée maximale de visibilité des messages ?

Le délai maximal de visibilité (timeout) pour un message Amazon SQS est de 12 heures.

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 intelligemment, 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 en savoir plus, consultez la page Utilisation des attributs de message d'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 en savoir plus, consultez la page Fonction d'attente active de longue durée d'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 en savoir plus, consultez la page Mise en tampon côté client et traitement par lots des requêtes.

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 Simple Notification Service (Amazon SNS) ?

  1. Dans la console Amazon SQS, sélectionnez une file d'attente de messages 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 S'abonner.

Pour en savoir plus, consultez la page Abonnement d'une file d'attente à une rubrique Amazon SNS .

Q : Comment puis-je distribuer des messages identiques à plusieurs files d'attente Amazon SQS ?

  1. Utilisez Amazon SNS pour créer une rubrique.
  2. Créez et abonnez plusieurs files d'attente de messages Amazon SQS à la rubrique Amazon SNS.
  3. A chaque fois qu'un message est envoyé à la rubrique Amazon SNS, celui-ci est distribué aux files d'attente de messages Amazon SQS.

Amazon SNS transmet le message à toutes les files d'attente de messages Amazon SQS abonnées à la rubrique.

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.


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 en savoir plus, consultez la page Régions et zones de disponibilité.

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 en savoir plus, consultez la page Exemples de stratégies 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 en savoir plus, consultez la page Délai de visibilité (timeout).

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

Oui. Bien que cela arrive rarement, il est possible que vous receviez une seconde fois un message qui a déjà été supprimé. Cela peut avoir lieu dans le rare cas où une opération DeleteMessage ne supprime pas toutes les copies d'un message, par exemple si l'un des serveurs dans le système Amazon SQS distribué n'est pas disponible au moment de la suppression. Cette copie de message est donc susceptible d'être livrée une nouvelle fois par la suite.

Pour éviter ce phénomène, concevez votre application afin qu'elle soit idempotente (c.-à-d. qu'aucune erreur ni incohérence ne survient si vous recevez une seconde fois un message qui a é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.


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 en savoir plus, consultez la page Conformité à la norme PCI.

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

Non. Amazon SQS n'est pas encore éligible pour être conforme à la norme HIPAA.

Toutefois, vous pouvez utiliser la bibliothèque Extended Client Library pour envoyer des corps de message Amazon SQS via Amazon S3 (Amazon S3 est un service éligible à la norme HIPAA). Vous pouvez être conforme à la norme HIPAA en utilisant cette méthode, car aucune information personnelle identifiable n'est transférée via Amazon SQS.

Pour en savoir plus, consultez Utilisation de la bibliothèque Amazon SQS Extended Client Library for Java.


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 en savoir plus, consultez la page Utilisation des attributs de message d'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, notamment au format XML, JSON et texte non formaté. Les caractères Unicode suivants sont acceptés :

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

Pour en savoir plus, consultez les 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.

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.

Q : Que se passe-t-il s'il n'y a pas d'activité dans une file d'attente de messages pendant une durée prolongée ?

Nous nous réservons le droit de supprimer une file d'attente de messages si aucune des demandes suivantes n'est émise dans cette file d'attente de messages pendant plus de 30 jours consécutifs :

  • SendMessage
  • ReceiveMessage
  • DeleteMessage
  • GetQueueAttributes
  • SetQueueAttributes

Les files d'attente faisant office de files d'attente dead letter queue ne sont pas supprimées tant que l'une de leurs files d'attente sources existe.


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 la page 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 en savoir plus, consultez la page Exemples de stratégies Amazon SQS.


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

Pour obtenir la disponibilité par région, consultez le tableau des régions de l'infrastructure mondiale d'AWS.

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 région Asie-Pacifique (Tokyo) et la région AWS GovCloud (US). 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.