Allgemeines

F: Was sind Amazon Kinesis Data Streams?

Amazon Kinesis Data Streams ermöglicht Ihnen, benutzerdefinierte Anwendungen zur Verarbeitung oder Analyse von Streaming-Daten für spezielle Anforderungen aufzubauen. Sie können kontinuierlich verschiedene Datentypen wie Klickströme, Anwendungsprotokolle und soziale Medien aus Hunderttausenden von Quellen einem Amazon Kinesis-Daten-Stream hinzufügen. Die Daten sind dann innerhalb von Sekunden für Ihre Amazon Kinesis-Anwendungen verfügbar und können aus dem Stream gelesen und dann verarbeitet werden.

F: Was führt Amazon Kinesis Data Streams für mich durch?

Amazon Kinesis Data Streams verwaltet Infrastruktur, Speicher, Vernetzung und Konfiguration, die zum Streamen Ihrer Daten mit dem von Ihrer Anwendung benötigten Durchsatzgrad erforderlich sind. Sie brauchen sich keine Gedanken über Bereitstellung, laufende Wartung von Hardware, Software oder anderen Services für Ihre Daten-Streams zu machen. Außerdem repliziert Amazon Kinesis Data Streams synchron Daten in drei Availability Zones und erzielt so eine hohe Verfügbarkeit und Datenbeständigkeit.

F: Was kann ich mit Amazon Kinesis Data Streams tun?

Amazon Kinesis Data Streams dient dazu, Daten schnell von Datenproduzenten abzurufen und anschließend kontinuierlich zu verarbeiten, sei es, um die Daten vor der Ablage in einem Datenspeicher umzuwandeln, Metriken und Analysen in Echtzeit zu erstellen oder komplexere Daten-Streams zur weiteren Verarbeitung abzuleiten. Es folgen typische Szenarien für den Einsatz von Amazon Kinesis Data Streams:

  • Beschleunigte Protokoll- und Daten-Feed-Aufnahme: Anstatt auf die Zusammenfassung von Daten zu warten, können Ihre Datenproduzenten die Daten in einen Amazon Kinesis-Daten-Stream einleiten, sobald sie produziert wurden, wodurch Datenverluste vermieden werden, falls ein Datenproduzent ausfällt. Zum Beispiel können System- und Anwendungsprotokolle kontinuierlich einem Amazon Kinesis-Daten-Stream hinzugefügt werden und innerhalb von Sekunden zur Weiterverarbeitung zur Verfügung stehen.
  • Echtzeit-Metriken und Berichterstellung: Aus Amazon Kinesis-Daten-Streaming-Daten können Sie in Echtzeit Metriken extrahieren und Berichte erstellen. Zum Beispiel kann Ihre Amazon Kinesis-Anwendung bei kontinuierlichen Datenströmen an Metriken und Berichten für System- und Anwendungsprotokollen arbeiten und braucht nicht auf einzelne Datenpakete zu warten.
  • Echtzeit-Datenanalyse: Mit Amazon Kinesis Data Streams können Sie Streaming-Daten in Echtzeit analysieren. Sie können zum Beispiel Klickströme Ihrem Amazon Kinesis-Daten-Stream hinzufügen und Ihre Amazon Kinesis-Anwendung in Echtzeit Analysen ausführen lassen, sodass Sie innerhalb von Minuten Einblicke in Ihre Daten gewinnen können und nicht erst nach Stunden oder Tagen.
  • Komplexe Stream-Verarbeitung: Sie können gerichtete, azyklische Graphen (Directed Acyclic Graphs, DAGs) von Amazon Kinesis-Anwendungen und Daten-Streams erstellen. In diesem Szenario können eine oder mehrere Amazon Kinesis-Anwendungen Daten zur weiteren Verarbeitung einem anderen Amazon Kinesis-Daten-Stream hinzufügen, sodass aufeinanderfolgende Stufen der Stream-Verarbeitung ermöglicht werden.

F: Wie verwende ich Amazon Kinesis Data Streams?

Nachdem Sie sich bei Amazon Web Services angemeldet haben, können Sie Amazon Kinesis Data Streams wie folgt verwenden:

  • Indem Sie einen Amazon Kinesis-Daten-Stream entweder über die AWS Management Console oder den Vorgang CreateStream erstellen.
  • Indem Sie Ihre Datenproduzenten für das kontinuierliche Hinzufügen von Daten zu Ihrem Daten-Stream konfigurieren.
  • Indem Sie Ihre Amazon Kinesis-Anwendungen so aufbauen, dass sie Daten aus Ihrem Daten-Stream lesen und verarbeiten und dabei entweder die Amazon Kinesis-API oder die Amazon Kinesis Client Library (KCL) verwenden.

F: Welche Komponenten umfasst Amazon Kinesis Data Streams?

Der Durchsatz eines Amazon Kinesis-Daten-Streams ist so konzipiert, dass er unbegrenzt skaliert werden kann, indem die Anzahl der Shards innerhalb eines Daten-Streams erhöht wird. Allerdings gibt es gewisse Limits, die Sie bei der Nutzung von Amazon Kinesis Data Streams berücksichtigen müssen:

  • Standardmäßig sind Datensätze eines Streams ab dem Zeitpunkt der Hinzufügung zu einem Stream 24 Stunden lang verfügbar. Sie können dieses Limit durch Aktivierung der Extended Data Retention auf bis zu 7 Tage erhöhen.
  • Die maximale Größe eines Daten-Blobs (Nutzdaten vor der Base64-Kodierung) innerhalb eines Datensatzes beträgt 1 MB.
  • Ein Shard kann bis zu 1000 PUT-Datensätze pro Sekunde unterstützen.

Weitere Informationen über andere Einschränkungen auf API-Ebene finden Sie unter Amazon Kinesis Data Streams – Einschränkungen.

F: Inwiefern unterscheidet sich Amazon Kinesis Data Streams von Amazon SQS?

Amazon Kinesis Data Streams ermöglichen die Echtzeitverarbeitung gestreamter Big Data. Es bietet die Möglichkeit, Datensätze zu sortieren, sowie Datensätze in derselben Reihenfolge zu lesen bzw. an mehrere Amazon Kinesis-Anwendungen wiederzugeben. Die Amazon Kinesis Client Library (KCL) liefert sämtliche Datensätze für einen bestimmten Partitionsschlüssel für denselben Datensatzprozessor, wodurch es einfacher wird, mehrere Anwendungen aufzubauen, die denselben Amazon Kinesis-Daten-Stream lesen (etwa um eine Zählung, Aggregation und Filterung durchzuführen).

Amazon Simple Queue Service (Amazon SQS) bietet eine zuverlässige, hochgradig skalierbare, gehostete Warteschlange zum Speichern von Mitteilungen, während diese zwischen Computern weitergeleitet werden. Mit Amazon SQS können Sie bequem Daten zwischen verteilten Anwendungskomponenten verschieben sowie Anwendungen aufbauen, in denen Nachrichten unabhängig verarbeitet werden (mit Bestätigungs-/Ablehnungssemantik auf Nachrichtenebene), etwa in automatisierten Workflows.

F: Wann sollte ich Amazon Kinesis Data Streams und wann Amazon SQS verwenden?

Wir empfehlen Amazon Kinesis Data Streams für Anwendungsfälle, die folgenden Szenarien ähneln:

  • Das Routing zusammengehöriger Datensätze zum selben Datensatzprozessor (etwa beim Streamen von MapReduce). Das Zählen und Aggregieren ist zum Beispiel einfacher, wenn alle Datensätze für einen bestimmten Schlüssel für denselben Datensatzprozessor geleitet werden.
  • Sortieren von Datensätzen. Wenn Sie zum Beispiel Protokolldaten vom Anwendungshost an den Verarbeitungs-/Archivierungshost transferieren und dabei die Sortierung der Protokollanweisungen beibehalten wollen.
  • Die Möglichkeit, dass mehrere Anwendungen gleichzeitig denselben Stream konsumieren. Wenn Sie zum Beispiel eine Anwendung haben, die ein Echtzeit-Dashboard aktualisiert, und eine andere, die Daten in Amazon Redshift archiviert. Sie möchten, dass beide Anwendungen gleichzeitig und unabhängig Daten aus demselben Stream konsumieren.
  • Die Möglichkeit, nach einigen Stunden Datensätze in der gleichen Reihenfolge zu nutzen. Wenn Sie zum Beispiel eine Fakturierungsanwendung haben sowie eine Audit-Anwendung, die einige Stunden nach der Fakturierungsanwendung ausgeführt wird. Da Amazon Kinesis Data Streams die Daten bis zu 7 Stunden speichern, können Sie die Audit-Anwendung bis zu 7 Stunden nach der Fakturierungsanwendung ausführen.

Wir empfehlen Amazon SQS für Anwendungsfälle, die folgenden Szenarien ähneln:

  • Nachrichtensemantik (etwa Bestätigung/Ablehnung auf Nachrichtenebene) und Zeitbeschränkung für die Sichtbarkeit. Wenn Sie zum Beispiel eine Warteschlange mit Arbeitselementen haben und den erfolgreichen Abschluss jedes einzelnen Elements unabhängig verfolgen wollen. Amazon SQS verfolgt die Bestätigung/Ablehnung, sodass die Anwendung keinen ständigen Checkpoint/Cursor aufrechtzuerhalten braucht. Amazon SQS löscht bestätigte Nachrichten und liefert abgelehnte Nachrichten nach einer konfigurierten Zeitbeschränkung für die Sichtbarkeit erneut aus.
  • Individuelle Nachrichtenverzögerung. Zum Beispiel wenn Sie eine Job-Warteschlange haben und einzelne Jobs mit einer Verzögerung eingeplant werden müssen. Bei Amazon SQS können Sie einzelne Nachrichten mit einer Verzögerung von bis zu 15 Minuten konfigurieren.
  • Gleichzeitigkeit/Durchsatz beim Lesen dynamisch erhöhen. Wenn Sie beispielsweise eine Arbeitswarteschlange haben und mehr Leser hinzufügen möchten, bis der Rückstand aufgeholt ist. Bei Amazon Kinesis Data Streams können Sie bis zu einer ausreichenden Anzahl von Shards vertikal skalieren (allerdings müssen Sie im Voraus eine ausreichende Anzahl von Shards bereitstellen).
  • Die Fähigkeit von Amazon SQS zum transparenten Skalieren nutzen. Zum Beispiel wenn Sie Anfragen puffern und die Last sich je nach den gelegentlichen Lastspitzen oder dem natürlichen Wachstum Ihres Unternehmens ändert. Da jede gepufferte Anfrage unabhängig verarbeitet werden kann, kann Amazon SQS transparent skalieren, um sich der Last anzupassen, ohne dass Sie Anweisungen bereitstellen müssen.

Wichtige Konzepte

F: Was ist ein Shard?

Shard ist die Basiseinheit für den Durchsatz eines Amazon Kinesis-Daten-Streams. Ein Shard bietet eine Dateneingabekapazität von 1 MB/s und eine Datenausgabekapazität von 2 MB/s. Ein Shard kann bis zu 1 000 PUT-Datensätze pro Sekunde unterstützen. Sie legen die Anzahl der Shards fest, wenn Sie einen Daten-Stream einrichten. Beispielsweise können Sie einen Daten-Stream mit zwei Shards einrichten. Dieser Daten-Stream hat einen Durchsatz von 2 MB/s für die Dateneingabe und 4 MB/s für die Datenausgabe und lässt bis zu 2 000 PUT-Datensätze pro Sekunde zu. Sie können Kennzahlen auf Shard-Ebene in Amazon Kinesis Data Streams überwachen und Shards aus Ihrem Daten-Stream dynamisch hinzufügen oder daraus entfernen, wenn sich der Datendurchsatz ändert, indem Sie den Daten-Stream mit neuen Shards versehen.

F: Was ist ein Datensatz?

Ein Datensatz ist die Dateneinheit, die in einem Amazon Kinesis-Daten-Stream gespeichert ist. Ein Datensatz besteht aus einer Sequenznummer, einem Partitionsschlüssel und einem Daten-Blob. Ein Daten-Blob sind die Daten von Interesse, die Ihr Datenproduzent einem Daten-Stream hinzufügt. Die maximale Größe eines Datenblobs (Nutzdaten vor der Base64-Kodierung) beträgt 1 MB.

F: Was ist ein Partitionsschlüssel?

Ein Partitionsschlüssel wird genutzt, um Datensätze zu trennen und an verschiedene Shards eines Daten-Streams zu leiten. Ein Partitionsschlüssel wird von Ihrem Datenproduzenten angegeben, während Daten einem Amazon Kinesis-Daten-Stream hinzugefügt werden. Angenommen, Sie haben einen Daten-Stream mit zwei Shards (Shard 1 und Shard 2). Nun können Sie Ihren Datenproduzenten so konfigurieren, dass er zwei Partitionsschlüssel verwendet (Schlüssel A und Schlüssel B), sodass alle Datensätze mit dem Schlüssel A zu Shard 1 und alle Datensätze mit Schlüssel B zu Shard 2 hinzugefügt werden.

F: Was ist eine Sequenznummer?

Eine Sequenznummer ist eine eindeutige Kennung für jeden einzelnen Datensatz. Sequenznummern werden von Amazon Kinesis zugewiesen, wenn ein Datenproduzent den Vorgang PutRecord oder PutRecords aufruft, um einem Amazon Kinesis-Daten-Stream Daten hinzuzufügen. Sequenznummern für denselben Partitionsschlüssel steigen im Allgemeinen mit der Zeit. Je länger der Zeitraum zwischen PutRecord- oder PutRecords -Anforderungen, desto größer die Sequenznummer.

Einrichten eines Data Streams

F: Wie richte ich einen Amazon Kinesis-Daten-Stream ein?

Nachdem Sie sich bei Amazon Web Services angemeldet haben, können Sie einen Amazon Kinesis-Daten-Stream entweder über die Amazon Kinesis Management Console oder über den Vorgang CreateStream einrichten.

F: Wie lege ich den Durchsatz meines Amazon Kinesis-Daten-Streams fest?

Der Durchsatz eines Amazon Kinesis-Daten-Streams wird von der Anzahl der Shards innerhalb eines Daten-Streams bestimmt. Befolgen Sie die Schritte weiter unten und schätzen Sie die anfängliche Anzahl der Shards, die Ihr Daten-Stream benötigt. Beachten Sie, dass Sie die Anzahl der Shards in Ihrem Daten-Stream über Amazon Kinesis Resharding dynamisch anpassen können.

  1. Schätzen Sie die durchschnittliche Größe des Datensatzes, der in den Daten-Stream geschrieben wird, in Kilobyte (KB), gerundet auf das nächste ganze Kilobyte. (Durchschnittliche_Datengröße_in_KB)
  2. Schätzen Sie die Anzahl von Datensätzen, die pro Sekunde in den Daten-Stream geschrieben werden. (Anzahl_von_Datensätzen_pro_Sekunde)
  3. Legen Sie die Anzahl der Amazon Kinesis-Anwendungen fest, die gleichzeitig und unabhängig Daten aus dem Amazon Kinesis-Daten-Stream nutzen. (Anzahl_der_Nutzer)
  4. Berechnen Sie die eingehende Schreibbandbreite in KB (Eingehende_Schreibbandbreite_in_KB). Sie ergibt sich aus Durchschnittliche_Datengröße_in_KB multipliziert mit Anzahl_von_Datensätzen_pro_Sekunde.
  5. Berechnen Sie die ausgehende Lesebandbreite in KB (Ausgehende_Schreibbandbreite_in_KB). Sie ergibt sich aus Eingehende_Schreibbandbreite_in_KB multipliziert mit Anzahl_der_Nutzer.

Anschließend können Sie die von Ihrem Amazon Kinesis-Daten-Stream anfänglich benötigte Anzahl der Shards (number_of_shards) mithilfe der folgenden Formel berechnen:

Anzahl_der_Shards = max. (Eingehende_Schreibbandbreite_in_KB : 1000, Ausgehende_Schreibbandbreite_in_KB : 2000)

F: Wie hoch ist der Mindestdurchsatz, den ich für meinen Amazon Kinesis-Daten-Stream anfordern kann?

Der Durchsatz eines Amazon Kinesis-Daten-Streams wird in Shards-Einheiten skaliert. Ein einzelner Shard ist der kleinste Durchsatz eines Daten-Streams, der einen Dateneingang von 1 MB/s und einen Datenausgang von 2 MB/s bietet.

F: Wie hoch ist der maximale Durchsatz, den ich für meinen Amazon Kinesis-Daten-Stream anfordern kann?

Der Durchsatz eines Amazon Kinesis-Daten-Streams ist so konzipiert, dass er unbegrenzt skaliert werden kann. Standardmäßig kann jedes Konto 10 Shards pro Region bereitstellen. Sie können das Formular Amazon Kinesis Data Streams Limits verwenden, wenn Sie mehr als 10 Shards in einer Region anfordern möchten.

F: Wie kann die Datensatzgröße den Durchsatz meines Amazon Kinesis-Daten-Streams beeinflussen?

Ein Shard bietet eine Dateneingangsrate von 1 MB/s und unterstützt bis zu 1 000 PUT-Datensätze pro Sekunde. Wenn also die Datensatzgröße kleiner als 1 KB ist, beträgt die tatsächliche Dateneingangsrate eines Shards weniger als 1 MB/s, begrenzt durch die maximale Anzahl der PUT-Datensätze pro Sekunde.

Hinzufügen von Daten zu Kinesis Data Streams

F: Wie füge ich Daten einem Amazon Kinesis-Daten-Stream hinzu?

Sie können einem Amazon Kinesis-Daten-Stream Daten über PutRecord- und PutRecords-Vorgänge oder über die Amazon Kinesis Producer Library (KPL) oder über Amazon Kinesis Agent hinzufügen.

F: Worin besteht der Unterschied zwischen PutRecord und PutRecords?

Mit dem PutRecord-Vorgang ist ein einzelner Datensatz in einem API-Aufruf möglich; die PutRecords-Vorgänge lassen mehrere Datensätze in einem API-Aufruf zu. Weitere Informationen zu den Vorgängen PutRecord und PutRecords finden Sie unter PutRecord und PutRecords.

F: Was ist die Amazon Kinesis Producer Library (KPL)?

Bei der Amazon Kinesis Producer Library (KPL) handelt es sich um eine bedienfreundliche und hochkonfigurierbare Bibliothek, mit der Sie Daten in den Amazon Kinesis-Daten-Stream einleiten können. KPL ist eine einfache, asynchrone und verlässliche Oberfläche, mit der Sie unter Einsatz minimaler Client-Ressourcen schnell einen höheren Produzentendurchsatz erzielen.

F: Welche Programmiersprachen oder Plattformen kann ich verwenden, um auf die Amazon Kinesis-API zuzugreifen?

Die Amazon Kinesis-API ist in den Amazon Web Services-SDKs verfügbar. Eine Liste der Programmiersprachen oder Plattformen für die Amazon Web Services-SDKs finden Sie unter Tools für Amazon Web Services.

F: In welcher Programmiersprache ist die Amazon Kinesis Producer Library (KPL) verfügbar?

Der Kern der Amazon Kinesis Producer Library (KPL) wurde mit einem C++ Modul erstellt und kann auf jeder Plattform mit einem aktuellen C++ Kompilierer verwendet werden. Die Bibliothek ist aktuell in einer Java-Oberfläche verfügbar. Wir beabsichtigen, Unterstützung für andere Programmiersprachen hinzuzufügen.

F: Was ist Amazon Kinesis Agent?

Amazon Kinesis Agent ist eine fertige Java-Anwendung, die eine einfache Methode zur Erfassung von Daten und deren Einspielen in Ihren Amazon Kinesis-Daten-Stream ermöglicht. Sie können den Agenten in Serverumgebungen auf Linux-Basis, auf Protokollservern und Datenbankservern installieren. Der Agent überwacht bestimmte Dateien und sendet fortlaufend Daten in Ihren Daten-Stream. Weitere Informationen finden Sie unter Schreiben mit Agenten

F: Welche Plattformen unterstützt Amazon Kinesis Agent?

Amazon Kinesis Agent unterstützt derzeit Amazon Linux und Red Hat Enterprise Linux.

F: Wo bekomme ich Amazon Kinesis Agent?

Sie können Amazon Kinesis Agent mit dem folgenden Befehl und Link herunterladen und installieren:

Auf Amazon Linux: sudo yum install –y aws-kinesis-agent

Auf Red Hat Enterprise Linux: sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn1.noarch.rpm

Aus GitHub: awlabs/amazon-kinesis-agent

F: Wie verwende ich Amazon Kinesis Agent?

Nach dem Installieren von Amazon Kinesis Agent auf Ihren Servern können Sie ihn so konfigurieren, dass er bestimmte Dateien auf einer Festplatte überwacht und neue Daten dann kontinuierlich zu ihrem Amazon Kinesis-Daten-Stream sendet. Weitere Informationen finden Sie unter Schreiben mit Agenten.

F: Was geschieht, wenn die Kapazitätsgrenzen eines Amazon Kinesis-Daten-Streams überschritten werden, während der Datenproduzent dem Daten-Stream Daten hinzufügt?

Die Kapazitätsgrenzen eines Amazon Kinesis-Daten-Streams werden von der Anzahl der Shards innerhalb eines Daten-Streams bestimmt. Die Grenzen können entweder vom Datendurchsatz oder von der Anzahl der PUT-Datensätze überschritten werden. Wenn die Kapazitätsgrenzen überschritten werden, werden PUT-Datenaufrufe mit der Ausnahme ProvisionedThroughputExceeded zurückgewiesen. Falls dies durch einen vorübergehenden Anstieg der Eingangsdatenrate des Daten-Streams verursacht wurde, werden die Anforderungen durch erneute Versuche seitens des Datenproduzenten schließlich erfüllt. Falls dies durch einen anhaltenden Anstieg der Eingangsdatenrate des Daten-Streams verursacht wurde, sollten Sie die Anzahl der Shards innerhalb Ihres Daten-Streams erhöhen, damit ausreichende Kapazitäten vorhanden sind und die PUT-Datenaufrufe konsistent abgeschlossen werden. In beiden Fällen können Sie anhand der Amazon CloudWatch-Metriken mehr über die Änderung der Eingangsdatenrate des Daten-Streams und das Auftreten der Ausnahme ProvisionedThroughputExceeded erfahren.

F: Welche Daten werden bei der Ermittlung des Datendurchsatzes eines Amazon Kinesis-Daten-Streams während eines Aufrufs von PutRecord oder PutRecords berücksichtigt?

Ihr Daten-Blob, Partitionsschlüssel und Daten-Stream-Name sind die Pflichtparameter eines Aufrufs von PutRecord oder PutRecords. Die Größe Ihres Datenblobs (vor der Base64-Kodierung) und der Partitionsschlüssel werden bei der Ermittlung des Datendurchsatzes Ihres Amazon Kinesis-Daten-Streams berücksichtigt, der von der Anzahl der Shards innerhalb des Daten-Streams bestimmt wird.

Erweitertes Rundsenden

F: Was ist erweitertes Rundsenden?

Erweitertes Rundsenden ist eine optionale Funktion für Benutzer von Kinesis Data Streams, die logische Durchsatz-Pipes zwischen Kunden und Shards bietet. Auf diese Weise können die Kunden die Anzahl der Benutzer skalieren, die unter Beibehaltung hoher Leistung parallel einen Data Stream lesen.

F: Wie können die Benutzer erweitertes Rundsenden nutzen?

Die Benutzer müssen sich zunächst beim Kinesis Data Streams-Service registrieren. Bei der Benutzerregistrierung wird das erweiterte Rundsenden standardmäßig aktiviert. Wenn Sie die KCL nutzen, sorgt die KCL-Version 2.x dafür, dass Ihre Benutzer automatisch registriert werden, und verwendet den Namen der KCL-Anwendung als Benutzernamen. Nach der Registrierung werden für jeden Benutzer eigene logische Durchsatz-Pipes für erweitertes Rundsenden bereitgestellt. Danach nutzen die Benutzer die HTTP/2 SubscribeToShard-API, um Daten innerhalb dieser Durchsatz-Pipes abzurufen. Die HTTP/1 GetRecords-API unterstützt das erweiterte Rundsenden derzeit nicht, daher müssen Sie auf KCL 2.x aktualisieren oder alternativ Ihren Benutzer registrieren und dafür sorgen, dass der Benutzer die SubscribeToShard-API aufruft.

F: Wie wird das erweiterte Rundsenden von einem Benutzer genutzt?

Die Benutzer verwenden das erweiterte Rundsenden, indem Sie Daten mit der SubscribeToShard-API abrufen. Der Name des registrierten Benutzers wird in der SubscribeToShard-API verwendet, was eine Nutzung der Vorteile des erweiterten Rundsendens ermöglicht, das dem Benutzer zur Verfügung gestellt wird.

F: Wann sollte ich das erweiterte Rundsenden nutzen?
Sie sollten das erweiterte Rundsenden nutzen, über das Sie verfügen oder das Sie erwarten, wobei mehrere Benutzer gleichzeitig Daten von einem Stream abrufen, oder, wenn Sie mindestens einen Benutzer haben, der die SubscribeToShard-API benötigt, um Datenbereitstellungsgeschwindigkeiten von ##sub-200 ms zwischen Bereitstellern und Benutzern zu ermöglichen.

F: Ist es möglich, dass bestimmte Benutzer das erweiterte Rundsenden nutzen und andere nicht?

Ja, es ist möglich, dass mehrere Benutzer das erweiterte Rundsenden verwenden und andere das erweiterte Rundsenden nicht zur selben Zeit verwenden. Die Nutzung des erweiterten Rundsendens hat keine Auswirkung auf das Shards-Limit für die herkömmliche GetRecords-Nutzung.

F: Gibt es eine Begrenzung für die Anzahl der Benutzer, die erweitertes Rundsenden für einen bestimmten Stream nutzen?

Es gibt eine Begrenzung von 5 Benutzern für die Nutzung des erweiterten Rundsendens pro Data Stream. Wenn Sie mehr als 5 Benutzer benötigen, senden Sie eine Anforderung zur Erhöhung der Begrenzung an den AWS Support. Denken Sie daran, dass mehr als 5 Benutzer insgesamt einen Stream lesen können, indem 5 Benutzer das erweiterte Rundsenden nutzen und andere Kunden das erweiterte Rundsenden nicht zur selben Zeit verwenden.

F: Wie können sich die Benutzer für das erweiterte Rundsenden und die HTTP/2 SubscribeToShard-API registrieren?

Wir empfehlen die Verwendung von KCL 2.x, bei dem Ihr Benutzer automatisch registriert und sowohl das erweiterte Rundsenden und die HTTP/2 SubscribeToShard-API nutzt. Andernfalls können Sie einen Benutzer manuell über die RegisterStreamConsumer-API registrieren und dann die SubscribeToShard-API unter dem Namen des registrierten Benutzers nutzen.

F: Sind mit der Verwendung des erweiterten Rundsendens Kosten verbunden?

Ja, es gibt eine Stundengebühr nach Bedarf für jede Shard-Kombination in einem Stream und einen Benutzer (eine Kunden-Shard-Stunden), der für die Verwendung des erweiterten Rundsendens registriert ist, zusätzlich zu den Datenabrufkosten für jedes abgerufene GB. Weitere Informationen finden Sie auf der Seite mit den Preisangaben für Kinesis Data Streams.

F: Wie wird eine Kunden-Shard-Stunde berechnet?

Eine Kunden-Shard-Stunde wird berechnet, indem die Anzahl der registrierten Stream-Benutzer mit der Anzahl der Shards im Stream multipliziert wird. So kostet eine Benutzer-Shard-Stunde 0,015 USD für einen 10-Shard-Data Stream; wenn dieser Benutzer das erweiterte Rundsenden nutzt, könnte er von 10 Shards lesen. Somit entsteht ein Benutzer-Shard-Stundensatz von 0,15 USD (1 Benutzer x 10 Shards x 0,015 USD pro Benutzer-Shard-Stunde). Wenn zwei Benutzer gleichzeitig für erweitertes Rundsenden registriert sind, würde die gesamte Benutzer-Shard-Gebühr 0,30 USD pro Stunde betragen (2 Benutzer x 10 Shards x 0,015 USD).

F: Wird die stundenweise Berechnung für Benutzer-Shard-Zeit für das erweiterte Rundsenden automatisch anteilig aufgeteilt, wenn ich einen Benutzer innerhalb dieser Stunde abmelde oder neu anmelde?

Ja, Sie zahlen nur für den anteilig aufgeteilten Teil der Stunde, für den der Benutzer für die Verwendung des erweiterten Rundsendens registriert ist.

F: Wie funktioniert die Bezahlung für Datenabrufe über das erweiterte Rundsenden?

Sie zahlen eine geringe Gebühr pro GB, die gemessen pro Datenbyte von den Benutzern über erweitertes Rundsenden abgerufen werden. Es gibt kein ##Nutzlast-Roundup und keine Mindestdatenmenge.

F: Muss ich meine Verfahren oder meinen Data Stream ändern, um das erweiterte Rundsenden zu nutzen?

Nein, erweitertes Rundsenden kann aktiviert werden, ohne dass Data Producers oder Data Streams beeinträchtigt werden.

Lesen und Verarbeiten von Daten aus Kinesis Data Streams

F: Was ist eine Amazon Kinesis-Anwendung?

Eine Amazon Kinesis-Anwendung ist ein Datenkonsument, der Daten aus einem Amazon Kinesis-Daten-Stream liest und verarbeitet. Sie können Ihre Anwendungen entweder mithilfe der Amazon Kinesis Data Analytics, der Amazon Kinesis-API oder der Amazon Kinesis Client Library (KCL) erstellen.

F: Was ist die Amazon Kinesis Client Library (KCL)?

Die Amazon Kinesis Client Library (KCL) für Java | Python | Ruby | Node.js | .NET ist eine vordefinierte Bibliothek, mit deren Hilfe Sie bequem Amazon Kinesis-Anwendungen zum Lesen und Verarbeiten von Daten aus einem Amazon Kinesis-Daten-Stream entwickeln können.

Die KCL übernimmt automatisch komplexe Aufgaben wie die Anpassung an Änderungen beim Daten-Stream-Volumen, den Lastausgleich für Streaming-Daten, die Koordination verteilter Services und fehlertolerante Datenverarbeitung. Die KCL ermöglicht, dass Sie sich beim Entwickeln von Anwendungen ganz auf die Geschäftslogik konzentrieren können. KCL 2.x unterstützt sowohl die HTTP/1 GetRecords-API als auch die HTTP/2 SubscribeToShard-API mit erweitertem Rundsenden zum Abrufen von Daten aus einem Stream. KCL 1.x unterstützt die SubscribeToShard-API bzw. erweitertes Rundsenden nicht.

F: Wie kann ich von KCL 1.x auf 2.x aktualisieren, um SubscribeToShard und erweitertes Rundsenden zu nutzen?

Besuchen Sie die Kinesis Data Streams Benutzerdokumentation, um zu erfahren, wie die Aktualisierung von KCL 1.x auf KCL 2.x funktioniert.

F: Was ist die SubscribeToShard-API?

Bei der SubscribeToShard-API handelt es sich um eine hochleistungsfähige Streaming-API, die Daten über eine ##persistente Verbindung von Shards zu Benutzern leitet, ohne dass ein Anforderungszyklus vom Client gestartet wird. Die SubscribeToShard-API verwendet das HTTP/2-Protokoll, um Daten an registrierte Benutzer zu übertragen wenn neue Daten beim Shard eintreffen, in der Regel innerhalb von 70 ms, und bietet somit eine um ca. 65 % schnellere Bereitstellung im Vergleich zur GetRecords-API. Die Benutzer haben den Vorteil einer schnellen Bereitstellung, auch wenn mehrere registrierte Benutzer auf denselben Shard zugreifen.

F: Kann ich SubscribeToShard ohne erweitertes Rundsenden nutzen?

Nein, für SubscribeToShard ist die Nutzung des erweiterten Rundsendens erforderlich, was bedeutet, dass Sie Ihren Benutzer auch beim Kinesis Data Streams Service registrieren müssen, bevor Sie SubscribeToShard verwenden können.

F: Wie lange ist die robuste SubscribeToShard-Verbindung aktiv?

Die robuste Verbindung kann bis zu 5 Minuten aktiv sein.

F: Unterstützt die Kinesis Client Library (KCL) SubscribeToShard?

Ja, Version 2.x der KCL verwendet SubscribeToShard und erweitertes Rundsenden, um Daten mit hoher Leistung von einem Kinesis Data Stream abzurufen.

F: Sind mit der Verwendung von SubscribeToShard Kosten verbunden?

Nein, es fallen keine Kosten für die Verwendung von SubscribeToShard an, Sie müssen SubscribeToShard jedoch mit erweitertem Rundsenden verwenden, für das zusätzliche Stundengebühren für jede Benutzer-Shard-Kombination und pro GB Daten per erweitertem Rundsenden berechnet werden.

F: Muss ich erweitertes Rundsenden verwenden, wenn ich SubscribeToShard nutzen möchte?

Ja, zur Nutzung von SubscribeToShard müssen Sie Ihre Benutzer registrieren und durch die Registrierung wird dann erweitertes Rundsenden aktiviert. Standardmäßig verwenden Ihre Benutzer erweitertes Rundsenden automatisch, wenn Daten über SubscribeToShard abgerufen werden.

F: Was ist die Amazon Kinesis Connector Library?

Die Amazon Kinesis Connector Library ist eine vorgefertigte Bibliothek, mit deren Hilfe Sie Amazon Kinesis Data Streams bequem in andere AWS-Services und Tools anderer Hersteller integrieren können. Die Amazon Kinesis Client Library (KCL) für Java | Python | Ruby | Node.js | .NET ist für die Verwendung der Amazon Kinesis Connector Library erforderlich. Die aktuelle Version dieser Bibliothek bietet Konnektoren für Amazon DynamoDB, Amazon Redshift, Amazon S3 und Elasticsearch. Die Bibliothek umfasst auch Muster-Konnektoren für jeden Typ sowie Apache Ant-Build-Dateien zum Ausführen der Muster.

F: Was ist Amazon Kinesis Storm Spout?

Amazon Kinesis Storm Spout ist eine vorgefertigte Bibliothek, mit deren Hilfe Sie Amazon Kinesis Data Streams bequem in Apache Storm integrieren können. Die aktuelle Version von Amazon Kinesis Storm Spout ruft Daten aus dem Amazon Kinesis-Daten-Stream ab und gibt diese als Tupel aus. Sie fügen Spout Ihrer Storm-Topologie hinzu, um Amazon Kinesis Data Streams als zuverlässigen, skalierbaren, Stream-Erfassungs-, Speicher- und Wiedergabeservice zu nutzen.

F: In welcher Programmiersprache sind Amazon Kinesis Client Library (KCL), Amazon Kinesis Connector Library und Amazon Kinesis Storm Spout verfügbar?

Die Amazon Kinesis Client Library (KCL) steht derzeit in Java, Python, Ruby, Node.js und .NET zur Verfügung. Amazon Kinesis Connector Library und Amazon Kinesis Storm Spout sind derzeit in Java verfügbar. Wir beabsichtigen, Unterstützung für andere Programmiersprachen hinzuzufügen.

F: Muss ich für meine Amazon Kinesis-Anwendung die Amazon Kinesis Client Library (KCL) verwenden?

Nein, Sie können auch die Amazon Kinesis-API verwenden, um Ihre Amazon Kinesis-Anwendung zu entwickeln. Allerdings empfehlen wir, sofern möglich, die Amazon Kinesis Client Library (KCL) für Java | Python | Ruby | Node.js | .NET zu nutzen, weil sie umfassende Aufgaben im Zusammenhang mit verteilter Stream-Verarbeitung bewältigt, sodass es produktiver wird, Amazon Kinesis-Anwendungen zu entwickeln.

F: Wie interagiert die Amazon Kinesis Client Library (KCL) mit einer Amazon Kinesis-Anwendung?

Die Amazon Kinesis Client Library (KCL) für Java | Python | Ruby | Node.js | .NET fungiert als Vermittler zwischen Amazon Kinesis Data Streams und Ihrer Amazon Kinesis-Anwendung. Die KCL verwendet die IRecordProcessor-Schnittstelle, um mit Ihrer Anwendung zu kommunizieren. Ihre Anwendung implementiert diese Schnittstelle und die KCL führt mithilfe der Methoden in dieser Schnittstelle Aufrufe in Ihrem Anwendungscode aus.

Weitere Hinweise zur Entwicklung von Amazon Kinesis-Anwendungen mit der KCL finden Sie unter Developing Consumer Applications for Amazon Kinesis Using the Amazon Kinesis Client Library.

F: Was sind ein von der Amazon Kinesis Client Library (KCL) generierter Worker und ein Datensatzprozessor?

Eine Amazon Kinesis-Anwendung kann mehrere Anwendungs-Instances haben und Worker sind Verarbeitungseinheiten, die den einzelnen Anwendungs-Instances zugeordnet sind. Ein Datensatzprozessor ist die Verarbeitungseinheit, die Daten von einem Shard eines Amazon Kinesis-Daten-Streams verarbeitet. Ein Worker kann einem oder mehreren Datensatzprozessoren zugeordnet sein. Ein Datensatzprozessor ist einem Shard zugeordnet und verarbeitet Datensätze aus diesem Shard.

Beim Start ruft eine Amazon Kinesis-Anwendung die Amazon Kinesis Client Library (KCL) für Java | Python | Ruby | Node.js | .NET auf, um einen Worker zu instanziieren. Mit dem Aufruf erhält die KCL Konfigurationsdaten für die Anwendung, wie etwa den Namen des Daten-Streams und die AWS-Anmeldeinformationen. Dieser Aufruf übergibt auch eine Referenz an eine IRecordProcessorFactory-Implementierung. Die KCL verwendet diese Factory, um nach Bedarf neue Datensatzprozessoren einzurichten, die Daten aus dem Daten-Stream verarbeiten. Die KCL kommuniziert über die IRecordProcessor-Schnittstelle mit diesen Datensatzprozessoren.

F: Wie speichert die Amazon Kinesis Client Library (KCL) Nachverfolgungsdatensätze, die von einer Amazon Kinesis-Anwendung verarbeitet wurden?

Die Amazon Kinesis Client Library (KCL) für Java | Python | Ruby | Node.js | .NET erstellt automatisch eine Amazon DynamoDB-Tabelle für jede Amazon Kinesis-Anwendung, um Statusinformationen nachzuverfolgen und zu verwalten, wie etwa Resharding-Ereignisse und Prüfpunkte für Sequenznummern. Die DynamoDB-Tabelle erhält den Namen der Anwendung, sodass Sie sicherstellen müssen, dass Ihr Anwendungsname nicht mit vorhandenen DynamoDB-Tabellen im selben Konto innerhalb derselben Region in Konflikt steht.

Alle demselben Anwendungsnamen zugeordneten Worker arbeiten zusammen am selben Amazon Kinesis-Daten-Stream. Wenn Sie eine zusätzliche Instance desselben Anwendungscodes ausführen, jedoch mit einem anderen Anwendungsnamen, behandelt die KCL die zweite Instance als eine vollständig getrennte Anwendung, die ebenfalls mit demselben Amazon Kinesis-Daten-Stream arbeitet.

Beachten Sie, dass Ihr Konto mit den Kosten im Zusammenhang mit der Amazon DynamoDB-Tabelle zusätzlich zu den Kosten für Amazon Kinesis Data Streams belastet wird.

Weitere Hinweise dazu, wie die KCL den Status einer Amazon Kinesis-Anwendung nachverfolgt, finden Sie unter Tracking Amazon Kinesis Application state.

F: Wie kann ich die Verarbeitungskapazität meiner Amazon Kinesis-Anwendung mithilfe der Amazon Kinesis Client Library (KCL) automatisch vertikal skalieren?

Sie können mehrere Instances Ihrer Amazon Kinesis-Anwendung einrichten und diese Anwendungs-Instances über eine Reihe von Amazon EC2-Instances ausführen, die Teil einer Auto Scaling-Gruppe sind. Wenn der Verarbeitungsbedarf ansteigt, wird automatisch eine Amazon EC2 Instance instanziiert, die Ihre Anwendungs-Instance ausführt. Die Amazon Kinesis Client Library (KCL) für Java | Python | Ruby | Node.js | .NET generiert einen Worker für diese neue Instance und verschiebt Datensatzprozessoren automatisch von überlasteten vorhandenen Instances in diese neue Instance.

F: Warum gibt die GetRecords-API ein leeres Ergebnis zurück, obwohl mein Amazon Kinesis-Daten-Stream Daten enthält?

Ein möglicher Grund ist, dass an der vom aktuellen Shard Iterator angegebenen Position kein Datensatz vorhanden ist. Dies kann auftreten, wenn Sie TRIM_HORIZON als Shard Iterator-Typ verwenden. Ein Amazon Kinesis-Daten-Stream repräsentiert einen kontinuierlichen Datenstrom. Sie müssen den Vorgang GetRecords in einer Schleife aufrufen. Dann wird der Datensatz zurückgegeben, wenn der Shard Iterator zu der Position gelangt, an der der Datensatz gespeichert ist.

F: Was bedeutet der Wert ApproximateArrivalTimestamp, der vom Vorgang GetRecords zurückgegeben wird?

Jeder Datensatz enthält einen Wert namens ApproximateArrivalTimestamp. Der Wert wird festgesetzt, wenn der Datensatz empfangen wurde und von Amazon Kinesis gespeichert wird. Der Zeitstempel hat eine Genauigkeit von einer Millisekunde und die Richtigkeit wird nicht garantiert. Datensätze in einer Shard oder in einem Daten-Stream haben möglicherweise fehlerhafte Zeitstempel.

F: Was geschieht, wenn die Kapazitätsgrenzen eines Amazon Kinesis-Daten-Streams überschritten werden, während die Amazon Kinesis-Anwendung Daten aus dem Daten-Stream liest?

Die Kapazitätsgrenzen eines Amazon Kinesis-Daten-Streams werden von der Anzahl der Shards innerhalb eines Daten-Streams bestimmt. Die Grenzen können entweder vom Datendurchsatz oder von der Anzahl der READ-Datenaufrufe überschritten werden. Wenn die Kapazitätsgrenzen überschritten werden, werden die READ-Datenaufrufe mit der Ausnahme ProvisionedThroughputExceeded zurückgewiesen. Falls dies durch einen vorübergehenden Anstieg der Ausgangsdatenrate des Daten-Streams verursacht wurde, werden die Anforderungen durch erneute Versuche seitens der Amazon Kinesis-Anwendung schließlich erfüllt. Falls dies durch einen anhaltenden Anstieg der Ausgangsdatenrate des Daten-Streams verursacht wurde, sollten Sie die Anzahl der Shards innerhalb Ihres Streams erhöhen, damit ausreichende Kapazitäten vorhanden sind und die READ-Datenaufrufe konsistent abgeschlossen werden. In beiden Fällen können Sie anhand der Amazon CloudWatch-Metriken mehr über die Änderung der Ausgangsdatenrate des Daten-Streams und das Auftreten der Ausnahme ProvisionedThroughputExceeded erfahren.

Verwalten von Kinesis Data Streams

F: Wie kann ich den Durchsatz meines Amazon Kinesis-Daten-Streams ändern?

Sie haben zwei Möglichkeiten, um den Durchsatz Ihres Daten-Streams zu verändern. Skalieren Sie entweder mithilfe der UpdateShardCount-API oder der AWS-Managementkonsole die Anzahl der Shards in einem Daten-Stream, oder ändern Sie den Durchsatz eines Amazon Kinesis-Daten-Streams, indem Sie die Anzahl der Shards innerhalb des Daten-Streams (Resharding) anpassen.

F: Wie lange dauert es, den Durchsatz meines Amazon Kinesis-Daten-Stream mit UpdateShardCount oder der AWS-Managementkonsole zu ändern?

In der Regel werden angeforderte Skalierungen innerhalb weniger Minuten vorgenommen. Größere Skalierungen dauern länger als kleinere.

F: Welche Einschränkungen gibt es bei UpdateShardCount?

Informationen zu den Einschränkungen bei UpdateShardCount finden Sie in der Amazon Kinesis Data Streams Service API Reference.

F: Bleibt Amazon Kinesis Data Streams verfügbar, wenn ich den Durchsatz meines Amazon Kinesis-Daten-Streams mittels UpdateShardCount oder per Resharding ändere?

Ja. Sie können Ihrem Amazon Kinesis-Daten-Stream weiterhin Daten hinzufügen oder daraus lesen, während Sie den Durchsatz des Daten-Streams mit UpdateShardCount oder per Resharding ändern.

F: Was bedeutet Resharding?

Resharding ist das Verfahren, mit dem Sie Ihren Daten-Stream mithilfe einer Reihe von Shard Splits oder Merges skalieren. Bei einem Shard Split wird ein einzelner Shard in zwei Shards aufgeteilt, wodurch der Daten-Stream-Durchsatz erhöht wird. Bei einem Shard Merge werden zwei Shards zu einem einzigen Shard zusammengeführt, wodurch der Daten-Stream-Durchsatz gesenkt wird. Weitere Informationen finden Sie unter Resharding a Data Stream im Amazon Kinesis Data Streams Developer Guide.

F: Wie oft kann ich den Durchsatz meines Amazon Kinesis-Daten-Streams per Resharding ändern und wie lange dauert eine Änderung?

Ein Resharding-Vorgang, wie etwa ein Shard Split oder Shard Merge, dauert nur wenige Sekunden. Sie können jeweils nur einen Resharding-Vorgang durchführen. Deshalb dauert es bei einem Amazon Kinesis-Daten-Stream mit nur einem Shard nur wenige Sekunden, den Durchsatz durch Aufteilen eines Shards zu verdoppeln. Bei einem Daten-Stream mit 1 000 Shards dauert es 30 000 Sekunden (8,3 Stunden), den Durchsatz durch Aufteilen von 1 000 Shards zu verdoppeln. Wir empfehlen, den Durchsatz Ihres Daten-Streams im Voraus zu erhöhen, wenn zusätzlicher Durchsatz erforderlich ist.

F: Wie kann ich die Datenaufbewahrung meines Amazon Kinesis-Daten-Streams ändern?

Standardmäßig werden Ihre Daten von Amazon Kinesis bis zu 24 Stunden lang gespeichert. Sie können diese Datenaufbewahrungsdauer durch Aktivierung der erweiterten Datenaufbewahrung (Extended Data Retention) auf bis zu 7 Tage erhöhen.

Weitere Informationen über die erweiterte Datenaufbewahrung finden Sie unter Ändern der Datenbereithaltungszeit.

F: Wie überwache ich Betrieb und Leistung meines Amazon Kinesis-Daten-Streams?

In der Amazon Kinesis Data Streams Management Console werden wichtige Betriebs- und Leistungsmetriken angezeigt, wie etwa Durchsatz bei Dateneingang und -ausgang Ihrer Amazon Kinesis-Daten-Streams. Amazon Kinesis Data Streams ist auch in Amazon CloudWatch integriert, sodass Sie CloudWatch-Metriken für Ihre Streams und Shards innerhalb dieser Daten-Streams sammeln, anzeigen und analysieren können. Weitere Informationen über Amazon Kinesis Data Streams-Metriken finden Sie unter Monitoring Amazon Kinesis Data Streams with Amazon CloudWatch.

Bitte beachten Sie, dass alle Stream-Ebenen-Metriken kostenlos sind. Alle aktivierten Shard-Ebenen-Metriken werden gemäß Amazon CloudWatch – Preise in Rechnung gestellt.

F: Wie kann ich den Zugriff auf meinen Amazon Kinesis-Daten-Stream verwalten und steuern?

Amazon Kinesis Data Streams ist mit AWS Identity and Access Management (IAM) kombiniert, einem Service, mit dessen Hilfe Sie den Zugriff auf Ihre AWS-Services und Ressourcen für Ihre Benutzer sicher steuern können. Sie können zum Beispiel eine Richtlinie einrichten, der zufolge nur ein bestimmter Benutzer bzw. eine Gruppe Daten dem Amazon Kinesis-Daten-Stream hinzufügen darf. Weitere Informationen zu Zugriffsverwaltung und -steuerung Ihres Daten-Streams finden Sie unter Controlling Access to Amazon Kinesis Data Streams Resources using IAM.

F: Wie kann ich API-Aufrufe an meinen Amazon Kinesis-Daten-Stream für Sicherheitsanalysen und Fehlerbehebung protokollieren?

Amazon Kinesis ist mit AWS CloudTrail integriert, einem Service, der Aufrufe von AWS-APIs für Ihr Konto aufzeichnet und Protokolldateien an Sie übermittelt. Weitere Informationen zur Protokollierung von API-Aufrufen sowie eine Liste der unterstützten Amazon Kinesis-API-Vorgänge finden Sie unter Logging Amazon Kinesis API calls Using Amazon CloudTrail.

F: Wie kann ich meine Amazon Kinesis-Daten-Streams und die damit verbundenen Kosten effizient verwalten?

In Amazon Kinesis Data Streams können Sie Ihre Amazon Kinesis-Daten-Streams mit Tags versehen, wodurch das Ressourcen- und Kostenmanagement vereinfacht wird. Ein Tag ist ein benutzerdefiniertes Label in Form eines Schlüssel-Wert-Paares, mit dessen Hilfe Sie AWS-Ressourcen organisieren können. Sie können Ihre Daten-Streams zum Beispiel nach Kostenstellen mit Kategorien versehen, anhand derer Sie Ihre Amazon Kinesis Data Streams-Kosten kategorisieren und nachverfolgen können. Weitere Informationen über Tags für Amazon Kinesis Data Streams finden Sie unterTagging Your Amazon Kinesis Data Streams.

F: Wie kann ich die Nutzung meines Shard-Limits ermitteln?

Sie können die Nutzung Ihres Shard-Limits für ein Konto mithilfe der DescribeLimits-API ermitteln. Die DescribeLimits-API gibt Auskunft über das Shard-Limit und die Anzahl der geöffneten Shards in Ihrem Konto. Um Ihr Shard-Limit zu erhöhen, fordern Sie einfach eine Limiterhöhung an.

Sicherheit

F: Wenn ich Kinesis Data Streams verwende, wie sicher sind meine Daten?

Kinesis ist standardmäßig sicher. Nur die Konten- und Daten-Stream-Besitzer haben Zugang zu den von ihnen erstellten Kinesis-Ressourcen. Kinesis unterstützt Funktionen zur Benutzerauthentifizierung, um den Zugriff auf die Daten zu kontrollieren. Sie können AWS IAM-Richtlinien verwenden, um selektiv Benutzern und Benutzergruppen Zugriffsrechte zu erteilen. Sie können Ihre Daten über SSL-Endpunkte mithilfe des HTTPS-Protokolls sicher in Kinesis einleiten und aus Kinesis holen. Wenn Sie zusätzliche Sicherheit brauchen, können Sie serverseitige Verschlüsselung mit AWS KMS-Masterschlüsseln verwenden, um in Ihrem Daten-Stream gesicherte Daten zu verschlüsseln. AWS KMS erlaubt Ihnen, in AWS erzeugte KMS-Masterschlüssel für die Verschlüsselung zu verwenden oder Ihren eigenen Masterschlüssel in AWS KMS mitzubringen, wenn Sie dies bevorzugen. Schließlich können Sie Ihre eigenen Verschlüsselungsbibliotheken zur Verschlüsselung von Daten auf der Clientseite verwenden, bevor Sie die Daten in Kinesis einspeisen.

F: Kann ich über meine Amazon Virtual Private Cloud (VPC) privat auf die Kinesis Data Streams-APIs zugreifen, ohne öffentliche IP-Adressen verwenden zu müssen?

Ja, Sie können privat über Ihre Amazon Virtual Private Cloud (VPC) auf die Kinesis Data Streams-APIs zugreifen, indem Sie VPC-Endpunkte erstellen. Mit VPC-Endpunkten wird das Routing zwischen der VPC und Kinesis Data Streams durch das AWS-Netzwerk gesteuert, ohne dass ein Internet-Gateway, ein NAT-Gateway oder eine VPN-Verbindung erforderlich ist. Die neueste Generation der von Kinesis Data Streams verwendeten VPC-Endpunkte wird von AWS PrivateLink unterstützt. Diese Technologie ermöglicht die private Konnektivität zwischen AWS-Services, indem Elastic Network-Schnittstelle (ENI) mit privaten IP-Adressen in Ihren VPCs genutzt werden. Weitere Informationen zu PrivateLink erhalten Sie in der PrivateLink-Dokumentation.

Verschlüsselung

F: Kann ich die Daten, die ich in einen Kinesis-Daten-Stream einleite, verschlüsseln?

Ja, und es gibt zwei Möglichkeiten zur Verschlüsselung der Daten, die Sie in einen Kinesis-Daten-Stream einleiten. Sie können serverseitige Verschlüsselung verwenden; dabei handelt es sich um eine voll-verwaltete Funktion, die Daten automatisch ver- und entschlüsselt, während Sie diese in den Daten-Stream einleiten oder herausholen. Oder Sie können verschlüsselte Daten an einen Daten-Stream schreiben, indem Sie auf der Clientseite ver- und entschlüsseln.

F: Warum sollte ich eine serverseitige Verschlüsselung anstatt einer clientseitigen Verschlüsselung verwenden?

Kunden bevorzugen aus folgenden Gründen häufig eine serverseitige Verschlüsselung gegenüber einer clientseitigen Verschlüsselung:

  • Es ist schwierig, eine clientseitige Verschlüsselung durchzusetzen
  • Sie möchten eine zweite Sicherheitsebene zusätzlich zur clientseitigen Verschlüsselung
  • Es ist schwierig, clientseitige Schlüsselverwaltungs-Schemen zu implementieren

F: Was ist die serverseitige Verschlüsselung?

Die serverseitige Verschlüsselung für Kinesis Data Streams verschlüsselt Daten automatisch mithilfe eines benutzerdefinierten AWS KMS-Masterschlüssels (CMK), bevor sie auf die Speicherebene des Daten-Streams geschrieben werden und entschlüsselt die Daten, nachdem sie aus dem Speicher geholt wurden. Die Verschlüsselung macht Schreibvorgänge unmöglich und Nutzlasten und Partitionsschlüssel unlesbar, außer der Benutzer, der auf den Daten-Stream schreibt oder daraus liest, verfügt über die Berechtigung, den für die Verschlüsselung auf dem Daten-Stream ausgewählten Schlüssel zu nutzen. Deshalb kann eine serverseitige Verschlüsselung das Erfüllen interner Sicherheits- und Compliance-Anforderungen beim Verwalten Ihrer Daten vereinfachen.

Bei einer serverseitigen Verschlüsselung brauchen sich Anwendungen auf der Clientseite (Produzenten und Verbraucher) der Verschlüsselung nicht bewusst sein; sie müssen CMKs oder kryptografische Vorgänge nicht verwalten, und Ihre Daten sind verschlüsselt, wenn sie im Kinesis Data Streams-Service gespeichert oder in Bewegung sind. Alle von der serverseitigen Verschlüsselungsfunktion verwendeten CMKs werden vom AWS KMS bereitgestellt. AWS KMS erleichtert die Verwendung eines AWS-verwalteten CMK für Kinesis (eine "One-Click"-Verschlüsselungsmethode), Ihres eigenen, vom AWS KMS erzeugten CMK oder eines CMK, den Sie zur Verschlüsselung importiert haben.

F: Gibt es ein Handbuch "Erste Schritte" für die serverseitige Verschlüsselung?

Ja, es gibt ein Handbuch "Erste Schritte" in der Benutzer-Dokumentation.

F: Hat die serverseitige Verschlüsselung Auswirkungen auf die Interaktion zwischen meinen Anwendungen und Kinesis Data Streams?

Möglicherweise. Das hängt vom Schlüssel ab, den Sie für die Verschlüsselung und die Berechtigungen zum Verwalten des Zugriffs auf den Schlüssel verwenden.

  • Wenn Sie den AWS-verwalteten CMK für Kinesis (Schlüssel-Alias = aws/kinesis) verwenden, hat die Aktivierung oder Deaktivierung der Verschlüsselung mit diesem Schlüssel keine Auswirkungen auf Ihre Anwendungen.
  • Wenn Sie einen anderen Masterschlüssel verwenden, wie einen benutzerdefinierten AWS KMS-Masterschlüssel oder einen, den Sie in den AWS KMS-Service importiert haben, und wenn Ihre Produzenten und Verbraucher von einem Daten-Stream keine Berechtigung zur Verwendung des für die Verschlüsselung eingesetzten AWS KMS CMK haben, werden Ihre PUT- und GET-Anforderungen fehlschlagen. Bevor Sie eine serverseitige Verschlüsselung verwenden können, müssen Sie AWS KMS-Schlüsselrichtlinien so konfigurieren, dass sie das Verschlüsseln und Entschlüsseln von Nachrichten erlauben. Bitte konsultieren Sie für Beispiele und weitere Informationen zu AWS KMS-Berechtigungen AWS KMS API-Berechtigungen: Actions and Resources Reference im AWS Key Management Service Developer Guide oder die Berechtigungsrichtlinien in der Kinesis Data Streams-Benutzer-Dokumentation zur serverseitigen Verschlüsselung.

F: Fallen zusätzliche Kosten bei der Verwendung einer serverseitigen Verschlüsselung an?

Ja, wenn Sie jedoch den AWS-verwalteten CMK für Kinesis verwenden und das kostenlose Nutzungskontingent der KMS API nicht überschreiten, dann ist Ihre Nutzung der serverseitigen Verschlüsselung kostenlos. Im Folgenden werden die Kosten durch Ressourcen beschrieben:

Schlüssel:

  • Der AWS-verwaltete CMK für Kinesis (Alias = "aws/kinesis") ist kostenlos.
  • Von Benutzern generierte KMS-Schlüssel unterliegen den KMS-Schlüssel-Kosten. Weitere Informationen.

KMS-API-Nutzung:

  • Für jeden CMK (auch für die benutzerdefinierten) fallen API-Nutzungsgebühren an. Kinesis Data Streams ruft die KMS bei der Rotation der Datenschlüssen ungefähr alle 5 Minuten auf. In einem Monat mit 30 Tagen sollten sich die Gesamtkosten der von einem Kinesis-Daten-Stream initiierten KMS API-Aufrufe auf wenige Euro belaufen. Bitte beachten Sie, dass diese Kosten mit der Anzahl an Anmeldedaten, die Sie für Ihre Datenproduzenten und -verbraucher verwenden, steigen, da für die einzelnen Anmeldedaten je ein individueller API-Aufruf an AWS KMS erforderlich ist. Wenn Sie die IAM-Rolle für die Authentifizierung verwenden, werden bei jedem Aufruf zu Übernahme der Rolle individuelle Benutzeranmeldedaten erstellt und Sie möchten die vom Aufruf zu Übernahme der Rolle generierten Benutzeranmeldedaten möglicherweise cachen, um KMS-Kosten zu sparen.

F: Welche AWS-Regionen bieten serverseitige Verschlüsselung für Kinesis Data Streams an?

Die serverseitige Verschlüsselung von Kinesis Data Streams ist in der AWS GovCloud-Region und in allen öffentlichen Regionen, ausgenommen China (Peking), verfügbar.

F: Wie starte, aktualisiere oder entferne ich serverseitige Verschlüsselung von einem Daten-Stream?

All diese Vorgänge können mithilfe der AWS-Managementkonsole oder des AWS SDK durchgeführt werden. Weitere Informationen erhalten Sie im Handbuch "Erste Schritte" zum Thema serverseitige Verschlüsselung mit Kinesis Data Streams.

F: Welcher Verschlüsselungs-Algorithmus wird für die serverseitige Verschlüsselung verwendet?

Kinesis Data Streams verwendet einen AES-GCM-256-Algorithmus zur Verschlüsselung.

F: Wenn ich einen Daten-Stream verschlüssle, auf dem bereits Daten geschrieben sind, entweder als Klartext oder als Chiffretext, werden dann alle Daten im Daten-Stream ver- oder entschlüsselt, wenn ich die Verschlüsselung aktualisiere?

Nein, nur neue Daten, die auf den Daten-Stream geschrieben werden, werden durch die neue Anwendung der Verschlüsselung verschlüsselt (oder bleiben unverschlüsselt).

F: Was wird mithilfe der serverseitigen Verschlüsselung für Kinesis Data Streams verschlüsselt?

Die serverseitige Verschlüsselung verschlüsselt die Nutzlast der Nachricht sowie den Partitionsschlüssel, der durch die Produzentenanwendungen des Daten-Streams festgelegt wird.

F: Ist die serverseitige Verschlüsselung eine für Shard spezifische Funktion oder eine für Streams spezifische Funktion?

Die serverseitige Verschlüsselung ist eine für Streams spezifische Funktion.

F: Kann ich den CMK ändern, der für die Verschlüsselung eines bestimmten Daten-Streams verwendet wird?

Ja, Sie können mithilfe der AWS-Managementkonsole oder des AWS SDK einen neuen Masterschlüssel aussuchen, der auf einen bestimmten Daten-Stream angewendet werden soll.

F: Können Sie mir Schritt für Schritt den Lebenszyklus der Verschlüsselung meiner Daten ab dem Zeitpunkt erklären, ab dem ich sie an einen Kinesis-Daten-Stream mit aktivierter serverseitiger Verschlüsselung sende und ab dem Zeitpunkt, ab dem ich sie abrufe?

Im Folgenden wird Schritt für Schritt erklärt, wie Kinesis Data Streams die AWS KMS CMKs nutzt, um eine Nachricht zu verschlüsseln, bevor sie im PUT-Pfad gespeichert wird, und um sie zu entschlüsseln, nachdem sie im GET-Pfad abgerufen wird. Kinesis und AWS KMS führen die folgenden Aktionen durch (inklusive Entschlüsselung), wenn Sie putRecord(s) oder getRecords auf einem Daten-Stream mit aktivierter serverseitiger Verschlüsselung aufrufen.

  1. Die Daten werden von der Kinesis-Produzenten-Anwendung eines Kunden (Client) mithilfe von SSL über HTTPS an Kinesis geschickt.
  2. Die Daten werden von Kinesis empfangen, im RAM gespeichert und die Verschlüsselung wird auf die Nutzlast und Partitionsschlüssel eines Records angewendet.
  3. Kinesis fordert einfaches Input Keying Material (IKM) als Klartext an und eine Kopie des IKM wird mithilfe des vom Kunden ausgewählten KMS-Masterschlüssel verschlüsselt.
  4. AWS KMS erstellt IKM, verschlüsselt es mithilfe des Masterschlüssels und sendet sowohl das Klartext-IKM als auch das verschlüsselte IKM an Kinesis.
  5. Kinesis nutzt Klartext-IKM, um Datenschlüssel abzuleiten, die je Datensatz einzigartig sind.
  6. Kinesis verschlüsselt die Nutzlast und den Partitionsschlüssel mithilfe der Datenschlüssel und entfernt den Klartext-Schlüssel vom Speicher.
  7. Kinesis fügt das verschlüsselte IKM den verschlüsselten Daten hinzu.
  8. Das Klartext-IKM wird für eine erneute Verwendung im Zwischenspeicher abgelegt, bis es nach 5 Minuten abläuft.
  9. Kinesis liefert die verschlüsselte Nachricht an einen Backend-Speicher, wo sie gespeichert wird und durch einen getRecords-Aufruf abrufbar sind.

Kinesis und AWS KMS führen die folgenden Aktionen durch (inklusive Entschlüsselung), wenn Sie getRecords aufrufen.

  1. Wenn ein getRecords-Aufruf erfolgt, ruft das Frontend von Kinesis den verschlüsselten Datensatz vom Backend-Service ab.
  2. Kinesis stellt mithilfe eines durch die Kundenanfrage erzeugten Token eine Anforderung an KMS. AWS KMS autorisiert es.
  3. Kinesis entschlüsselt das mit dem Datensatz gespeicherte, verschlüsselte IKM.
  4. Kinesis erstellt die Datenschlüssel vom entschlüsselten IKM je Datensatz neu.
  5. Wenn autorisiert, entschlüsselt Kinesis die Nutzlast und entfernt den Klartext-Datenschlüssel vom Speicher.
  6. Kinesis liefert die Nutzlast über SSL und HTTPS an den Kinesis-Kunden (Client), der die Datensätze anfragt.

Preise und Abrechnung

F: Ist Amazon Kinesis Data Streams über das kostenlose Nutzungskontingent für AWS verfügbar?

Nein. Amazon Kinesis Data Streams fallen derzeit nicht unter das kostenlose Nutzungskontingent für AWS. Das kostenlose Kontingent für AWS ist ein Programm, das einen kostenlosen Test bestimmter AWS-Services bietet. Weitere Informationen über das kostenlose Kontingent für AWS finden Sie unter Kostenloses Kontingent für AWS.

F: Wie viel kostet Amazon Kinesis Data Streams?

Amazon Kinesis Data Streams verwenden nutzungsabhängige Preise. Es gibt weder Vorlaufkosten noch Mindestgebühren. Sie zahlen nur für die Ressourcen, die Sie tatsächlich nutzen. Die Kosten für Amazon Kinesis Data Streams haben zwei Kerndimensionen und drei optionale Dimensionen:

  • Shard-Kosten pro Stunde, die sich nach der Anzahl der Shards in Ihrem Amazon Kinesis-Daten-Stream richten.
  • Die Kosten der PUT-Nutzlasteinheit, die sich nach der Anzahl der Datensätze mit einer Größe von 25 KB richten, die Ihre Datenproduzenten Ihrem Daten-Stream hinzufügen.

Optional:

  • Für die erweiterte Datenspeicherung fallen optionale Kosten an, die durch die Anzahl von Shard-Stunden berechnet werden, die von Ihrem Daten-Stream benötigt werden. Wenn die erweiterte Datenspeicherung aktiviert ist, zahlen Sie die erweiterte Speicherungsgebühr für jeden Shard in Ihrem Stream.
  • Erweitertes Rundsenden ist ein optionaler Kostenfaktor mit zwei Kostendimensionen: Benutzer-Shard-Stunden und Datenabrufe. Die Benutzer-Shard-Stunden geben die Anzahl der Shards in einem Stream wieder, multipliziert mit der Anzahl der Benutzer, die das erweiterte Rundsenden nutzen. Datenabrufe werden durch die Anzahl der GBs ermittelt, die den Benutzern über erweitertes Rundsenden bereitgestellt werden. 

Weitere Informationen zu den Kosten von Amazon Kinesis Data Streams finden Sie unter Amazon Kinesis Data Streams – Preise.

F: Ändern sich meine Kosten pro PUT-Nutzlasteinheit, wenn ich den PutRecords-Vorgang anstelle des PutRecord-Vorgangs verwende?

Die Gebühr für die PUT-Nutzlasteinheit wird nach der Anzahl der Nutzlasteinheiten mit einer Größe von 25 KB berechnet, die Ihrem Amazon Kinesis Daten-Stream hinzugefügt werden. Die Kosten für die PUT-Nutzlasteinheit sind unabhängig vom Vorgang (PutRecords oder PutRecord) einheitlich.

F: Werden mir Shards mit dem Status „CLOSED“ in Rechnung gestellt?

Ein Shard könnte nach einem Resharding den Status „CLOSED“ haben. Shards mit dem Status „CLOSED“ werden Ihnen nicht in Rechnung gestellt.

F: Gibt es neben den Kosten für Amazon Kinesis Data Streams weitere Kosten, die durch die Nutzung von Amazon Kinesis Data Streams entstehen?

Wenn Sie Amazon EC2 zum Ausführen Ihrer Amazon Kinesis-Anwendungen verwenden, werden Ihnen die Amazon EC2-Ressourcen zusätzlich zu den Kosten für Amazon Kinesis Data Streams in Rechnung gestellt.

Die Amazon Kinesis Client Library (KCL) verwendet Amazon DynamoDB-Tabellen, um die Statusinformationen der Datensatzverarbeitung nachzuverfolgen. Wenn Sie die KCL für Ihre Amazon Kinesis-Anwendungen verwenden, werden Ihnen die Amazon DynamoDB-Ressourcen zusätzlich zu den Kosten für Amazon Kinesis Data Streams in Rechnung gestellt.

Wenn Sie erweiterte Shard-Ebenen-Metriken aktivieren, werden Ihnen Amazon CloudWatch-Kosten für die aktivierten Shard-Ebenen-Metriken zusätzlich zu Amazon Kinesis Data Streams-Kosten in Rechnung gestellt.

Bitte beachten Sie, dass es sich bei den oben beschriebenen drei Anwendungsfällen um häufig auftretende, jedoch nicht alles abdeckende Fälle handelt.

Weitere Informationen zu den Preisen von Amazon Kinesis Data Streams

Zur Seite mit den Preisen
Sind Sie startbereit?
Registrieren
Haben Sie Fragen?
Kontakt