Amazon Simple Queue Service (Amazon SQS) bietet eine zuverlässige, hochskalierbare, gehostete Warteschlange zum Speichern von Mitteilungen, während diese zwischen Computern weitergeleitet werden. Mit Amazon SQS können Entwickler auf einfache Weise Daten zwischen verteilten Komponenten ihrer Anwendungen, die verschiedene Aufgaben ausführen, verschieben. Dabei gehen keine Mitteilungen verloren und es muss nicht jede Komponente stets verfügbar sein. Amazon SQS vereinfacht das Erstellen eines automatisierten Workflows und arbeitet eng mit Amazon Elastic Compute Cloud (Amazon EC2) und den anderen AWS-Infrastruktur-Web-Services zusammen.
Amazon SQS funktioniert durch die Offenlegung der weboptimierten Mitteilungs-Infrastruktur von Amazon als Web-Service. Jeder Computer mit Verbindung ins Internet kann Mitteilungen hinzufügen oder lesen, ohne dass dafür Software installiert oder die Firewall speziell konfiguriert werden muss. Komponenten von Anwendungen, die Amazon SQS verwenden, können unabhängig ausgeführt werden und müssen sich nicht im selben Netzwerk befinden, mit denselben Technologien entwickelt worden sein oder zur selben Zeit ausgeführt werden.
Entwickler können eine unbegrenzte Anzahl von Amazon SQS-Warteschlangen mit einer unbegrenzten Anzahl von Nachrichten erstellen.
Eine Warteschlange kann in allen Regionen erstellt werden.
Die Nachricht kann bis zu 64 KB groß sein und Text in einem beliebigen Format enthalten.
Nachrichten können in Stapeln von bis zu 10 Nachrichten oder 64 KB gesendet, empfangen und gelöscht werden. Stapel kosten genauso viel wie einzelne Nachrichten, was heißt, dass ihre Nutzung für Kunden noch wirtschaftlicher sein kann.
Nachrichten können bis zu 14 Tage in Warteschlangen verbleiben.
Nachrichten können gleichzeitig gesendet und gelesen werden.
Wenn eine Mitteilung empfangen wird, wird sie während der Verarbeitung gesperrt. Auf diese Weise wird verhindert, dass andere Computer dieselbe Mitteilung gleichzeitig verarbeiten. Schlägt die Verarbeitung der Mitteilung fehl, läuft die Sperre ab und die Mitteilung ist wieder verfügbar. Für den Fall, dass die Anwendung mehr Zeit für die Verarbeitung benötigt, kann die Zeitbeschränkung der Sperre dynamisch über die Operation "ChangeMessageVisibility" geändert werden.
Entwickler können Amazon-SQS-Warteschlangen auf sichere Weise für andere freigeben. Die Freigabe ist für andere AWS-Konten sowie anonym möglich. Die Freigabe von Warteschlangen kann außerdem nach IP-Adresse und Tageszeit beschränkt werden.
In Kombination mit Amazon Simple Notification Service (SNS) können Entwickler identische Nachrichten gleichzeitig an mehrere SQS-Warteschlangen "verbreiten". Wenn Entwickler die Nachrichten im mehreren Durchgängen verarbeiten möchten, kann dies durch das Verbreiten schneller und mit weniger Verzögerungen aufgrund von Engpässen auf einer beliebigen Stufe erfolgen. Das Verbreiten erleichtert auch das Aufzeichnen duplizierter Kopien Ihrer Nachrichten, z. B. in unterschiedlichen Datenbanken.
Amazon SQS bietet einen erheblichen Vorteil gegenüber komplexen selbst entwickelten Mitteilungsverarbeitungssystemen oder den laufenden Ausgaben für lizenzierte oder gehostete Systeme.
Zuverlässig – Amazon SQS wird in den hochverfügbaren Rechenzentren von Amazon ausgeführt, sodass Warteschlangen immer verfügbar sind, wenn sie von Anwendungen benötigt werden. Damit keine Mitteilungen verloren gehen oder nicht mehr verfügbar sind, werden alle Mitteilungen redundant auf mehreren Servern und in mehreren Rechenzentren gespeichert.
Einfach – Entwickler benötigen nur fünf APIs, um mit Amazon SQS loslegen zu können: CreateQueue, SendMessage, ReceiveMessage, ChangeMessageVisibility und DeleteMessage. Weitere APIs sind für erweiterte Funktionen verfügbar.
Skalierbar – Amazon SQS ist so konzipiert, dass eine unbegrenzte Anzahl von Services jederzeit eine unbegrenzte Anzahl von Nachrichten lesen und schreiben kann.
Sicher – Authentifizierungsmechanismen sorgen dafür, dass in Amazon-SQS-Warteschlangen gespeicherte Mitteilungen vor unautorisiertem Zugriff geschützt sind.
Kostengünstig – Keine Vorab- oder Fixkosten. Für das Senden von Mitteilungen durch Amazon SQS fallen nur Kosten in Form von geringen Gebühren pro verarbeiteter Anfrage sowie Datenübertragungsgebühren an.
Einsatz von Amazon SQS mit anderen AWS-Infrastruktur-Web-Services
Amazon SQS kann sowohl mit Amazon EC2 als auch mit Amazon S3 und Amazon SimpleDB verwendet werden, um Anwendungen flexibler und skalierbarer zu machen. Ein üblicher Anwendungsfall ist das Erstellen eines integrierten und automatisierten Workflows, bei dem mehrere Komponenten oder Module miteinander kommunizieren müssen, jedoch nicht alle dieselbe Menge Arbeit gleichzeitig verarbeiten können. In diesem Fall enthalten die SQS-Warteschlangen Mitteilungen, die in geordneter Reihenfolge durch die auf den Amazon EC2-Instanzen ausgeführte Anwendung des Benutzers verarbeitet werden. Die Amazon EC2 Instanzen können die Warteschlange lesen, die Aufgabe verarbeiten und anschließend die Ergebnisse als Mitteilungen an eine andere SQS-Warteschlange weitergeben (etwa für die weitere Verarbeitung durch eine andere Anwendung). Da Amazon EC2 die dynamische Skalierung von Anwendungen nach oben und nach unten zulässt, können Anwendungsentwickler die Anzahl der Recheninstanzen einfach anhand der Arbeitsmenge in den SQS-Warteschlangen variieren, um sicherzustellen, dass Aufgaben in einem angemessenen Zeitraum ausgeführt werden.
Ein Beispiel: Eine Videoumschlüsselungs-Website verwendet Amazon EC2, Amazon SQS, Amazon S3 und Amazon SimpleDB gemeinsam. Endanwender übertragen Videos zur Umschlüsselung an die Website. Die Videos werden in Amazon S3 gespeichert und eine Mitteilung (die Anforderungsmitteilung) wird in einer Amazon-SQS-Warteschlange (die Eingangswarteschlange) mit einem Pointer auf das Video und auf das Zielformat des Videos in der Mitteilung abgelegt. Die auf einem Verbund aus Amazon EC2 Instances ausgeführte Umschlüsselungs-Engine liest die Anforderungsmitteilung aus der Eingangswarteschlange, ruft die Videos mithilfe des Pointers von Amazon S3 ab und schlüsselt das Video in das Zielformat um. Das konvertierte Video wird zurück in Amazon S3 abgelegt und eine andere Mitteilung (die Antwortmitteilung) wird in einer anderen Amazon SQS-Warteschlange (der Ausgangswarteschlange) mit einem Pointer auf das konvertierte Video platziert. Gleichzeitig können Metadaten zum Video (z. B. Format, Erstellungsdatum und Länge) zur leichten Abfragedurchführung in Amazon SimpleDB indiziert werden. Während dieses ganzen Ablaufs kann eine Dedicated Instance von Amazon EC2 durchgängig die Eingangswarteschlange überwachen und (basierend auf der Anzahl der Nachrichten in der Eingangswarteschlange) die Anzahl der transcodierenden Amazon EC2-Instances dynamisch anpassen, um den Kundenanforderungen an die Reaktionszeit gerecht zu werden.
Sie zahlen nur für das, was Sie nutzen. Es gibt keine Mindestgebühr. Kalkulieren Sie Ihre voraussichtliche Monatsrechnung mit AWS Einfacher Monatsrechner.
Kostenloses Nutzungskontingent*
Der Einstieg in Amazon SQS ist kostenlos. Neu- und Bestandskunden erhalten jeden Monat ein kostenloses Kontingent von 1 Mio. Amazon SQS-Warteschlangenanforderungen. Einige Anwendungen können ggf. im Rahmen dieses kostenlosen Kontingents betrieben werden.
Anforderungen
0,50 USD pro 1 Mio. Amazon SQS-Anforderungen (0,0000005 USD pro SQS-Anforderung)
Stapel mit bis zu 10 Nachrichten oder 64 KB pro Anforderung kosten dasselbe wie einzelne Nachrichten.
Im Folgenden werden Amazon SQS-Anfragen aufgeführt: CreateQueue, ListQueues, DeleteQueue, SendMessage, SendMessageBatch, ReceiveMessage, ChangeMessageVisibility, ChangeMessageVisibilityBatch, DeleteMessage, DeleteMessageBatch, SetQueueAttributes, GetQueueAttributes, GetQueueUrl, AddPermission und RemovePermission.
Datenübertragung**
Die folgenden Preise basieren auf von Amazon SQS eingehenden und ausgehenden Datenübertragungen.
"Eingehende" und "ausgehende" Datenübertragung bezieht sich auf die Übertragung nach und von Amazon SQS. Datenübertragungen zwischen Amazon SQS und Amazon EC2 innerhalb einer Region sind kostenfrei (d. h. 0,00 USD pro GB). Datenübertragungen zwischen Amazon SQS und Amazon EC2 in verschiedenen Regionen werden auf beiden Seiten der Übertragung zu den Tarifen der Internet-Datenübertragung berechnet.
* Ihre kostenlose Nutzung wird jeden Monat regionsübergreifend berechnet und automatisch in Ihrer Rechnung berücksichtigt – kostenlose Nutzung kann nicht kumuliert werden. ** Im Rahmen des kostenlosen Nutzungskontingents für AWS erhalten neue AWS Kunden für ein Jahr kostenfrei 15 GB ausgehenden Datenverkehr pro Monat, aggregiert über alle AWS Dienste. *** Für die Tarifstufen für ausgehende Datenübertragungen werden ausgehende Datenübertragungen über Amazon EC2, Amazon EBS, Amazon S3, Amazon Glacier, Amazon RDS, Amazon SimpleDB, Amazon DynamoDB, Amazon SQS, Amazon SNS, AWS Storage Gateway und Amazon VPC zusammengefasst.
Amazon SQS kann einfach über die AWS Management Console aufgerufen werden, mit der Benutzer eine webbasierte Point-and-Click-Oberfläche zur Einrichtung und Verwaltung von Amazon SQS erhalten.
Einfache Warteschlangenanfragen
Amazon SQS verwendet eine benutzerfreundliche und äußerst flexible Schnittstelle. Folgende Anfragen stehen zur Verfügung:
CreateQueue: Warteschlangen zur Verwendung mit dem AWS-Konto erstellen.
ListQueues: Vorhandene Warteschlangen auflisten.
DeleteQueue: Eine Warteschlange löschen.
SendMessage: Einer bestimmten Warteschlange Nachrichten hinzufügen.
SendMessageBatch: Einer bestimmten Warteschlange mehrere Nachrichten hinzufügen.
ReceiveMessage: Eine oder mehrere Mitteilungen von einer bestimmten Warteschlange zurückerhalten.
ChangeMessageVisibility: Die Zeitbegrenzung für die Sichtbarkeit einer zuvor empfangenen Mitteilung ändern.
ChangeMessageVisibilityBatch: Die Zeitbegrenzung für die Sichtbarkeit mehrerer zuvor empfangener Nachrichten ändern.
DeleteMessage: Eine zuvor empfangene Nachricht aus einer bestimmten Warteschlange entfernen.
DeleteMessageBatch: Mehrere zuvor empfangene Nachrichten aus einer bestimmten Warteschlange entfernen.
SetQueueAttributes: Die Warteschlangeneinstellungen kontrollieren, wie etwa die Zeitspanne, für die eine Nachricht nach dem Lesen gesperrt wird, sodass sie nicht erneut gelesen werden kann.
GetQueueAttributes: Informationen zu einer Warteschlange abrufen, wie die Anzahl der in ihr enthaltenen Nachrichten.
GetQueueUrl: URL der Warteschlange abrufen.
AddPermission: Warteschlangenfreigabe für ein anderes AWS-Konto für eine bestimmte Warteschlange hinzufügen.
RemovePermission: Ein AWS-Konto aus der Warteschlangenfreigabe für eine bestimmte Warteschlange entfernen.
Amazon SQS Message Lifecycle
In Amazon SQS gespeicherte Mitteilungen haben einen Zyklus, der leicht zu verwalten ist und dabei sicherstellt, dass alle Mitteilungen verarbeitet werden.
Ein System, das eine Mitteilung senden muss, findet eine Amazon SQS-Warteschlange und verwendet SendMessage, um dieser Warteschlange eine neue Mitteilung hinzuzufügen.
Ein anderes System, das Mitteilungen verarbeitet, benötigt weitere Mitteilungen zur Verarbeitung, sodass es ReceiveMessage aufruft und diese Mitteilung zurückgegeben wird.
Sobald eine Mitteilung von ReceiveMessage zurückgegeben wurde, wird sie nicht durch einen weiteren Abruf von ReceiveMessage zurückgegeben, bis die Zeitbeschränkung für die Sichtbarkeit abgelaufen ist. Auf diese Weise wird verhindert, dass mehrere Computer dieselbe Mitteilung gleichzeitig verarbeiten.
Wenn das verarbeitende System die Arbeit an der Mitteilung erfolgreich abgeschlossen hat, ruft es DeleteMessage auf, woraufhin die Mitteilung aus der Warteschlange entfernt wird, sodass sie nicht mehr weiter verarbeitet werden kann. Wenn das System beim Verarbeiten der Mitteilung fehlschlägt, wird sie von einem anderen ReceiveMessage-Aufruf gelesen, sobald die Zeitbeschränkung für die Sichtbarkeit abgelaufen ist.
Die aktuelle Version von Amazon SQS ist WSDL Version 2011-10-01. Die vorherige Version lautet WSDL Version 2009-02-01, die rückwärts kompatibel ist mit WSDL 2008-01-01. Wie im Februar 2008 angekündigt, sind die WSDL-Versionen 2007-05-01 und 2006-04-01 jetzt veraltet. Es sind keine neuen Benutzer mehr für diese Versionen zugelassen. Sie sollten die Anwendungen so schnell wie möglich auf eine unterstützte Amazon-SQS-WSDL-Version migrieren.
Beachten Sie, dass einige Bibliotheken und Anwendungen weiterhin basierend auf den Vorgängerversionen (2007-05-01 oder 2006-04-01) erstellt werden können. Wenn Sie eine Bibliothek oder Anwendung nutzen, die Amazon SQS verwendet, wenden Sie sich bitte an den Betreiber, um die verwendete Version des Dienstes in Erfahrung zu bringen.