Google Cloud für AWS-Profis: Anwendungsdienste

Aktualisiert am 20. März 2017

Vergleichen Sie die Dienste, die Amazon und Google zur Erleichterung der Kommunikation zwischen verschiedenen Teilen Ihrer App bieten. Dieser Artikel konzentriert sich auf die Benachrichtigungsdienste, die auf jeder Plattform verfügbar sind.

Benachrichtigungen

Dienstmodelle im Vergleich

Für die Nachrichtenwarteschlange stellt Amazon den Amazon Simple Queue Service (SQS) und Google den Dienst Pub/Sub bereit. Die Funktionen von Amazon SQS lassen sich so mit denen von Pub/Sub vergleichen:

Option Amazon SQS Google Pub/Sub
Datenquelle Warteschlange Topic
Datenziel Warteschlange Subscriber
Bereitstellungsort Regional Global
Benachrichtigungsspeicherung bis zu 14 Tage bis zu 7 Tage
Höchstanzahl an In-Flight-Benachrichtigungen pro Warteschlange 120.000 für Standard und 20.000 für FIFO Unbegrenzt für Pull (unterliegt Kontingenten) und 1.000 für Push
Maximale Größe der Nutzlast 256 KB 10 MB
Fanout Mit Amazon SNS Nativ unterstützt
Dead-Letter-Warteschlange Ja Nein
Verzögerte Warteschlange Ja Nein
Abrechnung Inhaber der Warteschlange zahlt Subscriber zahlen

Amazon Simple Queue Service (SQS) und Amazon Simple Notification Service (SNS)

In Amazon Simple Queue Service (SQS) drehen sich Vorgänge um eine Benachrichtigungswarteschlange, die Sie erstellen. Sie schicken Benachrichtigungen zu der Warteschlange und Client-Apps rufen diese Benachrichtigungen aus der Warteschlange ab. Um ein Fanout-System zu implementieren, in dem mehrere Subscriber eine einzige Benachrichtigung abrufen können, können Sie Amazon SQS mit Amazon Simple Notification Service (SNS), das Push-Benachrichtigungen an verschiedene Geräte und Endpunkte liefert, verbinden. Sie abonnieren eine Amazon SQS-Warteschlange für ein Amazon SNS-Topic. Sobald eine Benachrichtigung auf dem Topic veröffentlicht wird, schickt Amazon SNS eine Amazon SQS-Nachricht an die abonnierte Warteschlange.

Amazon SQS bietet zwei Arten von Benachrichtigungswarteschlangen: Standard-Warteschlangen und FIFO-Warteschlangen. Standard-Warteschlangen bieten einen hohen Durchsatz, garantieren aber keine strikte Benachrichtigungsreihenfolge oder eine genau einmalige Zustellung. FIFO-Warteschlangen bieten dagegen diese Garantien, haben aber einen niedrigeren Durchsatz als Standard-Warteschlangen.

Pub/Sub

Pub/Sub kombiniert Benachrichtigungswarteschlangen, Push-basierte Nachrichtenübermittlung und hochvolumige Nachrichtenübermittlung als Stream in einem globalen Dienst. Es nutzt ein Publish/Subscribe-Modell: Eine Publisher-Anwendung erstellt und schickt Nachrichten zu einem Topic, und Subscriber-Anwendungen erstellen ein Abonnement, um Nachrichten von diesem Topic zu empfangen. Als Publish/Subscribe-Dienst unterstützt Pub/Sub nativ sowohl Fan-In, bei dem mehrere Nachrichtenquellen auf ein einzelnes Thema als Ziel haben können, als auch Fan-Out.

Im Gegensatz zu Amazon SQS, das Pull-basierte Nachrichtenübermittlung unterstützt, unterstützt Pub/Sub sowohl Push- als auch Pull-basierte Nachrichtenübermittlung. Bei Push-basierter Nachrichtenübermittlung initiiert Pub/Sub Anfragen an Ihre Abonnentenanwendung, um Nachrichten zu senden. Bei der Pull-Übermittlung sendet Ihre Abonnentenanwendung Anfragen an den Pub/Sub-Server, um Nachrichten abzurufen, ähnlich wie bei Amazon SQS.

Wie Standardwarteschlangen in Amazon SQS garantiert Pub/Sub keine Reihenfolge der Nachrichten. Falls Sie jedoch eine exakte Reihenfolge der Nachrichten benötigen, können Sie diese Beschränkung auf verschiedene Arten abschwächen. Wie bei Standardwarteschlangen in Amazon SQS garantiert Pub/Sub auch nicht exakt eine Zustellung. Um mehrere Nachrichten zu verarbeiten, sollte Ihr Code Nachrichten idempotent handhaben.

Pub/Sub ist, anders als Amazon SNS, für Anwendungs- und Systemintegrationen gedacht und nicht für die direkte Kommunikation mit Endnutzerschnittstellen wie Mobiltelefone oder Webseiten. Für diese Art der Client-Server-Kommunikation können Sie Firebase Cloud Messaging verwenden, die Cloud-Lösung zum Senden von Push-Benachrichtigungen an mehrere Mobilgeräte.

Nachrichtenlebenszyklus

Amazon SQS und Pub/Sub verlangen beide von Ihnen, Nachrichten zu bestätigen, bevor Sie sie aus einer Warteschlange oder einem Abo entfernen können.

Amazon SQS

Amazon SQS bietet ein Sichtbarkeits-Timeout. Wenn ein Vorgang eine Nachricht zur Verarbeitung erhalten hat, wird die Nachricht für andere Vorgänge, die die Warteschlange bearbeiten, unsichtbar. Das Diagramm unten zeigt, wie das Sichtbarkeits-Timeout bei der Verarbeitung von Nachrichten funktioniert.

Amazon SQS Sichtbarkeits-Timeout

Abbildung 1: Amazon SQS-Sichtbarkeits-Timeout

Der Countdown des Sichtbarkeits-Timeouts beginnt, wenn die Nachricht erhalten wird. Während des Countdowns verarbeitet die App die Nachricht. Falls die Verarbeitung erfolgreich war und während des Sichtbarkeits-Timeouts angefangen hat, kann die verarbeitende App einen Aufruf tätigen, um die Nachricht zu löschen. Falls die App den Aufruf nicht tätigt, bevor das Sichtbarkeits-Timeout abgelaufen ist, wird die Nachricht wieder für andere Vorgänge sichtbar.

Pub/Sub

Pub/Sub hat eine ähnliche Bestätigungsfrist. Standardmäßig liegt diese Frist bei 10 Sekunden, aber Sie kann auf bis zu 10 Minuten verlängert werden. Bei einem Pull-Abonnement können Abonnenten auch ohne Vorbereitung die Frist für jede Nachricht bearbeiten, um weniger oder mehr Zeit zur Verarbeitung der Nachricht zu gewähren.

Grafik: Pub/Sub-Bestätigungsfrist

Abbildung 2: Pub/Sub-Bestätigungsfrist

Garantien für Nachrichtenübermittlung

In Amazon SQS gibt es zwei Arten von Warteschlangen: Standard-Warteschlangen und first-in-first-out (FIFO)-Warteschlangen. Amazon SQS-Standardwarteschlangen und Pub/Sub garantieren beide, dass jede Nachricht zumindest einmal gesendet wird. Die beiden Dienste haben ähnliche, vergleichbare Beschränkungen: Bei beiden können duplizierte Nachrichten auftreten und keiner davon gibt Garantien über die Reihenfolge der Nachrichtenzustellung.

Amazon SQS FIFO-Warteschlangen entschärfen beide Probleme, indem sie das genau einmalige, geordnete Verschicken von Nachrichten unterstützen. Die FIFO-Warteschlangen sind auf 300 Transaktionen pro Sekunde beschränkt.

Obwohl Pub/Sub keine FIFO-ähnlichen Garantien für Deduplizierung und Nachrichtenreihenfolge bietet, ist es möglich, diese Funktion auf Anwendungsebene zu erreichen. Eine ausführliche Anleitung hierzu finden Sie unter Nachrichtenreihenfolge.

Kosten

Amazon SQS und Amazon SNS

Die Preise in Amazon SQS basieren auf dem Datentransfer aus Amazon SQS heraus und der Anzahl an Anfragen. Alle Amazon SQS-API-Aufrufe gelten als Anfragen. Eine einzelne Anfrage kann von 1 bis 10 Nachrichten haben, bei einer maximalen Nutzlast von 256 KB. Jeder 64-KB-Block der Nutzlast wird als einzelne Anfrage abgerechnet.

Die Preise in Amazon SNS basieren auf der Anzahl an Benachrichtigungen, die Sie veröffentlichen und versenden, und auf jeglichen zusätzlichen API-Aufrufen zur Verwaltung von Themen und Abonnements. Preise für die Zustellung variieren je nach Art des Endpunkts.

Pub/Sub

Pub/Sub-Preise basieren auf der Größe des für die Nachrichtenübermittlung verwendeten Datenvolumens. Das Datenvolumen wird basierend auf den Nachrichten- und Attributdaten für Veröffentlichungen sowie Pull- und Push-Vorgängen berechnet. Weitere Informationen finden Sie unter Pub/Sub-Preise.

Nächste Schritte

Weitere Artikel zu Google Cloud für AWS-Experten:

Weitere Informationen zur Übergabe von Daten zwischen Google Cloud und AWS mithilfe der jeweiligen Nachrichtendienste finden Sie unter Connect Google Cloud Pub/Sub to Amazon SNS Topics Through Cloud Functions.