Amazon Kinesis Streams ermöglicht Ihnen, benutzerdefinierte Anwendungen zur Verarbeitung oder Analyse von Streaming-Daten für spezielle Anforderungen aufzubauen. Sie können Hunderttausende von Datenproduzenten so konfigurieren das sie kontinuierlich Daten in Ihren Amazon Kinesis-Stream einleiten. Zum Beispiel Daten von Website-Clickstreams, Anwendungsprotokollen, Feeds aus sozialen Medien. Die Daten sind dann innerhalb von weniger als einer Sekunde für Ihre Amazon Kinesis-Anwendungen verfügbar, können aus dem Stream gelesen und dann verarbeitet werden.

Im folgenden Architekturdiagramm wird Amazon Kinesis Streams als Gateway für eine Big Data-Lösung verwendet. Daten aus verschiedenen Quellen werden in einen Amazon Kinesis-Stream eingeleitet und anschließend werden die Daten von verschiedenen Amazon Kinesis-Anwendungen aus dem Stream konsumiert. In diesem Beispiel führt eine Anwendung (gelb) ein Echtzeit-Dashboard mit den Streaming-Daten aus. Eine weitere Anwendung (rot) führt eine einfache Aggregation aus und übermittelt verarbeitete Daten an Amazon S3. Die Daten in Amazon S3 werden weiterverarbeitet und für komplexe Analysen in Amazon Redshiftgespeichert. Die dritte Anwendung (grün) gibt Rohdaten in Amazon S3 aus, die dann zur kostengünstigeren Langzeitspeicherung in Amazon Glacier archiviert werden. Beachten Sie, dass diese drei Datenverarbeitungswege gleichzeitig und parallel ausgeführt werden. Amazon Kinesis Streams lässt ohne Leistungseinbußen so viele Datenstream-Konsumenten zu, wie Ihre Lösung erfordert.

kinesis-architecture-crop

Ein Shard ist die Basiseinheit für den Durchsatz eines Amazon Kinesis-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 Stream einrichten. Beispielsweise können Sie einen Stream mit zwei Shards einrichten. Dieser 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 Shard-Metriken in Amazon Kinesis Streams überwachen and Shards dem Stream dynamisch hinzufügen oder daraus entfernen, wenn sich der Datendurchsatz ändern. Zu diesem Zweck  konfigurieren Sie erneut den Shard des Streams.

Ein Datensatz ist die Dateneinheit, die in einem Amazon Kinesis-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 Stream hinzufügt. Die maximale Größe eines Daten-Blobs (Nutzdaten nach der Base64-Decodierung) beträgt 1 MB.

Ein Partitionsschlüssel wird benutzt, um Datensätze zu trennen und an verschiedene Shards eines Streams zu routen. Ein Partitionsschlüssel wird von Ihrem Datenproduzenten angegeben, während er Daten in einen Amazon Kinesis-Stream einleitet. Angenommen, Sie haben einen Amazon Kinesis-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.

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


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

  • Indem Sie einen Amazon Kinesis-Stream entweder über die Amazon Kinesis Management Console oder über die Amazon Kinesis-API CreateStream erstellen.
  • Indem Sie Ihre Datenproduzenten so konfigurieren, dass sie kontinuierlich Daten in Ihren Amazon Kinesis-Stream einleiten.
  • Indem Sie Ihre Amazon Kinesis-Anwendungen so aufbauen, dass sie Daten aus Ihrem Amazon Kinesis-Stream lesen und verarbeiten.

Datenproduzenten können Daten über Amazon Kinesis Streams-APIs, Amazon Kinesis Producer Library (KPL) oder Amazon Kinesis Agent in Amazon Kinesis Streams einlesen.

 

Amazon Kinesis Streams stellt zwei APIs bereit, um Daten in einen Amazon Kinesis-Stream einzulesen: PutRecord and PutRecords . Mit PutRecord ist ein einzelner Datensatz in einem API-Aufruf möglich. PutRecords lässt mehrere Datensätze in einem API-Aufruf zu.

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

Amazon Kinesis Agentist eine fertige Java-Anwendung, die eine einfache Methode zur Erfassung von Daten und deren Einspielen in Ihren Amazon Kinesis-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 Datenstrom.


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

Die Amazon Kinesis Client Library (KCL) ist eine vorgefertigte Bibliothek, mit deren Hilfe Sie bequem Amazon Kinesis-Anwendungen zum Lesen und Verarbeiten von Daten aus einem Amazon Kinesis-Stream aufbauen können. Die KCL übernimmt automatisch komplexe Aufgaben wie die Anpassung an Änderungen beim Stream-Volumen, den Lastausgleich für Streaming-Daten, die Koordination verteilter Services und fehlertolerante Datenverarbeitung. Dank KCL können Sie sich beim Entwickeln von Amazon Kinesis-Anwendungen auf die Geschäftslogik konzentrieren.

Die Amazon Kinesis Connector Library ist eine vorgefertigte Bibliothek, mit deren Hilfe Sie Amazon Kinesis bequem in andere AWS-Services und Tools anderer Hersteller integrieren können. Die Amazon Kinesis Client Library (KCL) ist erforderlich, um die Amazon Kinesis Connector Library zu verwenden. 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.

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


Amazon Kinesis Streams ist in Amazon CloudWatch integriert, sodass Sie CloudWatch-Metriken für Ihre Amazon Kinesis-Streams und die darin enthaltenen Shards sammeln, anzeigen und analysieren können. Weitere Informationen über Amazon Kinesis Streams-Metriken finden Sie unter Überwachen von Amazon Kinesis mit Amazon CloudWatch .

Amazon Kinesis Streams ist mit AWS Identity and Access Management (IAM) integriert, 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 in den Amazon Kinesis-Stream einleiten kann. Weitere Informationen über Zugriffsverwaltung und ‑steuerung für Ihren Amazon Kinesis-Stream finden Sie unter Steuerung des Zugriffs auf Amazon Kinesis-Ressourcen mithilfe von IAM.

Amazon Kinesis Streams ist in AWS CloudTrail integriert. Dieser Service zeichnet Aufrufe von AWS-APIs für Ihr Konto auf und übermittelt Protokolldateien an Sie. Weitere Informationen über die Protokollierung von API-Aufrufen sowie eine Liste der unterstützten Amazon Kinesis-APIs finden Sie unter Protokollieren von Amazon Kinesis-API-Aufrufen mithilfe von Amazon CloudTrail.

Ja, Sie können privat über Ihre Amazon Virtual Private Cloud (VPC) auf die Kinesis Streams-APIs zugreifen, indem Sie VPC-Endpunkte erstellen. Mit VPC-Endpunkten wird das Routing zwischen der VPC und Kinesis 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 Streams verwendeten VPC-Endpunkte wird von AWS PrivateLink unterstützt. Diese Technologie ermöglicht die private Konnektivität zwischen AWS-Services, indem Elastic Network Interfaces (ENI) mit privaten IP-Adressen in Ihren VPCs genutzt werden. Weitere Informationen erhalten Sie in der Dokumentation zu AWS PrivateLink.

Sie können die Daten, die Sie mit Kinesis Streams nutzen, auf dem Server oder auf dem Client verschlüsseln. 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 Stream einleiten oder herausholen. Alternativ können Sie Ihre Daten auf dem Client verschlüsseln, bevor Sie sie in den Stream einleiten. Weitere Informationen dazu finden Sie im Abschnitt Sicherheit in den häufig gestellten Fragen zu Kinesis Streams.

In Amazon Kinesis können Sie Amazon Kinesis 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 Amazon Kinesis-Streams zum Beispiel nach Kostenstellen mit Tags versehen, anhand derer Sie Ihre Amazon Kinesis-Kosten kategorisieren und verfolgen können. Weitere Informationen finden Sie unter Verwenden von Tags für Ihre Amazon Kinesis-Streams.