Wählen Sie den richtigen Modus zum Streamen - Amazon Kinesis Data Streams

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Wählen Sie den richtigen Modus zum Streamen

In den folgenden Themen wird erklärt, wie Sie den besten Modus für Ihre Anwendung auswählen und bei Bedarf zwischen den Modi wechseln können.

Was sind die verschiedenen Modi in Kinesis Data Streams?

Ein Modus bestimmt, wie die Kapazität eines Datenstroms verwaltet wird und wie Ihnen die Nutzung Ihres Datenstroms in Rechnung gestellt wird. In Amazon Kinesis Data Streams können Sie On-Demand-Standard, On-Demand-Advantage und Bereitgestellt als Modus für Ihre Datenstreams wählen.

  • On-Demand-Standard — Datenstreams mit einem On-Demand-Modus erfordern keine Kapazitätsplanung und werden automatisch skaliert, um Gigabytes an Schreib- und Lesedurchsatz pro Minute zu bewältigen. Im On-Demand-Modus verwaltet Kinesis Data Streams die Shards automatisch, um den erforderlichen Durchsatz bereitzustellen.

  • Vorteil auf Abruf — Ein Modus auf Kontoebene, der mehr Funktionen ermöglicht und eine einfachere Preisstruktur für On-Demand-Streams bietet. In diesem Modus können Sie die Schreibdurchsatzkapazität eines Streams jederzeit proaktiv erhöhen. Bei der Preisgestaltung gibt es keine feste Gebühr mehr pro Stream, und die Nutzung von Datenaufnahme, Datenabruf und verlängerter Aufbewahrung für alle On-Demand-Streams ist mindestens 60% niedriger als bei On-Demand-Standard.

  • Bereitgestellt — Für Datenstreams mit einem Bereitstellungsmodus müssen Sie die Anzahl der Shards für den Datenstrom angeben. Die Gesamtkapazität eines Datenstroms ist die Summe der Kapazitäten der einzelnen Shards. Sie können die Anzahl der Shards in einem Datenstream nach Bedarf erhöhen oder verringern.

Sie können Kinesis Data Streams verwenden PutRecord und PutRecords APIs in jedem Modus Daten in Ihre Datenströme schreiben. Zum Abrufen von Daten unterstützen alle drei Modi Standardverbraucher, die die GetRecords API verwenden, und Enhanced Fan-Out (EFO) -Verbraucher, die die API verwenden. SubscribeToShard

Alle Funktionen von Kinesis Data Streams, einschließlich Aufbewahrungsmodus, Verschlüsselung, Überwachungsmetriken und andere, werden sowohl für den On-Demand-Modus als auch für den Bereitstellungsmodus unterstützt. Kinesis Data Streams bietet eine hohe Beständigkeit und Verfügbarkeit sowohl im On-Demand-Modus als auch im Bereitstellungsmodus.

Funktionen und Anwendungsfälle im On-Demand-Standardmodus

Datenströme im On-Demand-Modus erfordern keine Kapazitätsplanung und werden automatisch skaliert, sodass sie einen Schreib- und Lesedurchsatz von mehreren Gigabyte pro Minute verarbeiten können. Der On-Demand-Modus vereinfacht die Aufnahme und Speicherung großer Datenmengen bei niedriger Latenz, da er die Bereitstellung und Verwaltung von Servern, Speicher oder Durchsatz überflüssig macht. Sie können Milliarden von Datensätzen pro Tag aufnehmen, ohne dass der Betrieb beeinträchtigt wird.

Der On-Demand-Modus ist ideal, um den Anforderungen eines stark variablen und unvorhersehbaren Anwendungsverkehrs gerecht zu werden. Sie müssen diese Workloads nicht mehr für Spitzenkapazitäten bereitstellen, was bei geringer Auslastung zu höheren Kosten führen kann. Der On-Demand-Modus eignet sich für Workloads mit unvorhersehbaren und stark variablen Datenverkehrsmustern.

Im On-Demand-Kapazitätsmodus zahlen Sie pro GB geschriebener und gelesener Daten aus Ihren Datenströmen. Sie müssen nicht angeben, wie viel Lese- und Schreibdurchsatz Sie von Ihrer Anwendung erwarten. Kinesis Data Streams passt sich sofort an Ihre Workloads an, wenn diese ansteigen oder sinken. Weitere Informationen finden Sie unter Amazon Kinesis Data Streams – Preise.

Ein Datenstrom im On-Demand-Modus ermöglicht bis zu doppelt so viel wie den Spitzenschreibdurchsatz, der in den letzten 30 Tagen beobachtet wurde. Wenn der Schreibdurchsatz Ihres Datenstroms einen neuen Höchstwert erreicht, skaliert Kinesis Data Streams die Kapazität des Datenstroms automatisch. Zum Beispiel, wenn Ihr Datenstrom einen Schreibdurchsatz hat, der zwischen 10 MB/s und 40% MB/s, then Kinesis Data Streams ensures that you can easily burst to double your previous peak throughput, or 80 MB/s. If the same data stream sustains a new peak throughput of 50 MB/s, Kinesis Data Streams ensures that there is enough capacity to ingest 100 MB/s des Schreibdurchsatzes variiert. Eine Drosselung des Schreibvorgangs kann jedoch auftreten, wenn Ihr Datenverkehr innerhalb von 15 Minuten auf mehr als das Doppelte des vorherigen Spitzenwerts ansteigt. Sie müssen diese gedrosselten Anfragen erneut versuchen.

Die aggregierte Lesekapazität eines Datenstroms im On-Demand-Modus steigt proportional zum Schreibdurchsatz. Auf diese Weise wird sichergestellt, dass Verbraucheranwendungen immer über einen ausreichenden Lesedurchsatz verfügen, um eingehende Daten in Echtzeit zu verarbeiten. Der Schreibdurchsatz ist mindestens doppelt so hoch wie beim Lesen von Daten mit der GetRecords-API. Wir empfehlen, dass Sie eine Verbraucheranwendung mit der GetRecord-API verwenden, damit sie genügend Spielraum hat, um aufzuholen, wenn die Anwendung sich von einer Ausfallzeit erholen muss. Es wird empfohlen, die Funktion Erweitertes Rundsenden von Kinesis Data Streams für Szenarien zu verwenden, in denen mehr als eine Verbraucheranwendung hinzugefügt werden muss. Erweitertes Rundsenden unterstützt das Hinzufügen von bis zu 20 Verbraucheranwendungen zu einem Datenstream mithilfe der SubscribeToShard-API, wobei jede Verbraucheranwendung über einen eigenen Durchsatz verfügt.

Behandeln Sie Ausnahmen beim Lese- und Schreibdurchsatz

Im On-Demand-Modus (genau wie im Modus für bereitgestellte Kapazität) müssen Sie für jeden Datensatz einen Partitionsschlüssel angeben, um Daten in Ihren Datenstream zu schreiben. Kinesis Data Streams verwendet Ihre Partitionsschlüssel, um Daten auf Shards zu verteilen. Kinesis Data Streams überwacht den Verkehr für jeden Shard. Wenn der eingehende Datenverkehr 500 KB/s pro Shard überschreitet, wird der Shard innerhalb von 15 Minuten aufgeteilt. Die Hash-Schlüsselwerte des übergeordneten Shards werden gleichmäßig auf die untergeordneten Shards verteilt.

Wenn der eingehende Datenverkehr das Doppelte des vorherigen Spitzenwertes übersteigt, kann es für etwa 15 Minuten zu Lese- oder Schreibausfällen kommen, selbst wenn die Daten gleichmäßig auf die Shards verteilt sind. Wir empfehlen, dass Sie alle derartigen Anfragen erneut versuchen, damit alle Datensätze ordnungsgemäß in Kinesis Data Streams gespeichert werden.

Es kann zu Lese- und Schreibausnahmen kommen, wenn Sie einen Partitionsschlüssel verwenden, der zu einer ungleichmäßigen Datenverteilung führt, und die einem bestimmten Shard zugewiesenen Datensätze dessen Grenzwerte überschreiten. Im On-Demand-Modus passt sich der Datenstrom automatisch an ungleichmäßige Datenverteilungsmuster an, es sei denn, ein einzelner Partitionsschlüssel überschreitet die Grenzwerte für einen MB/s Durchsatz von 1 Shard und 1000 Datensätze pro Sekunde.

Im On-Demand-Modus teilt Kinesis Data Streams die Shards gleichmäßig auf, wenn ein Anstieg des Datenverkehrs festgestellt wird. Hash-Schlüssel, die einen höheren Anteil des eingehenden Datenverkehrs an einen bestimmten Shard weiterleiten, werden jedoch nicht erkannt und isoliert. Wenn Sie stark ungleichmäßige Partitionsschlüssel verwenden, erhalten Sie möglicherweise weiterhin Schreibausnahmen. Für solche Anwendungsfälle empfehlen wir, den Modus für bereitgestellte Kapazität zu verwenden, der granulare Shard-Splits unterstützt.

Funktionen und Anwendungsfälle des Advantage-Modus auf Abruf

On-Demand-Vorteil ist eine Einstellung auf Kontoebene, die mehr Funktionen freischaltet und eine andere Preisstruktur für alle On-Demand-Streams in der Region bietet. In diesem Modus behalten On-Demand-Streams ihre Funktionalität bei und skalieren die Kapazität weiterhin automatisch auf der Grundlage der tatsächlichen Datennutzung. Wenn Sie die Schreibdurchsatzkapazität eines Streams proaktiv erhöhen möchten, können Sie den Warmdurchsatz konfigurieren. Wenn Ihr Datenstream beispielsweise einen Schreibdurchsatz zwischen 10 MB/s und 40 hat, MB/s, you can expect it to handle up to 80MB/s of instant throughput increases without throttling. However, if you forecast an upcoming event to peak around 200MB/s of traffic, you can configure the stream with a warm throughput of 200MB/s um sicherzustellen, dass die Kapazität verfügbar ist, wenn der Datendurchsatz eintrifft. Bei Verwendung eines warmen Durchsatzes fallen keine zusätzlichen Kosten an.

Ein weiterer Vorteil des On-Demand-Advantage-Modus besteht darin, dass On-Demand-Streams zu einer einfacheren Preisstruktur übergehen. Wenn der Modus aktiviert ist, fallen für das Konto keine festen Gebühren pro Stream mehr an, und Sie müssen sich nur noch um die Datenaufnahme, den Datenabruf und die optionalen Gebühren für die erweiterte Aufbewahrung kümmern. Für jede Preisdimension gibt es zudem einen erheblichen Preisnachlass im Vergleich zur entsprechenden Dimension in On-Demand-Standard. Weitere Informationen finden Sie unter Amazon Kinesis Data Streams – Preise.

Für erweiterte Fan-Out-Datenabrufe fällt im Vergleich zu den Standarddatenabrufen in diesem Modus auch kein Aufpreis an. Darüber hinaus können Sie im On-Demand-Advantage-Modus bis zu 50 Verbraucher pro Stream registrieren, um das erweiterte Fan-Out zu nutzen. Durch die Aktivierung von On-Demand Advantage ist das Konto verpflichtet, mindestens 25% MiB/s of data ingest and 25MiB/s der Daten aus allen On-Demand-Streams abzurufen. Für Konten, die die Mindestnutzungsanforderungen erfüllen, überprüft die Kinesis Data Streams Streams-Konsole, ob die Nutzungsmuster Ihres Kontos für den On-Demand-Advantage-Modus geeignet sind.

Wenn die Datennutzung Ihres Kontos unter den Anforderungen liegt, wird Ihnen die Differenz als Fehlbetrag in Rechnung gestellt, es wird jedoch immer noch derselbe ermäßigte Tarif berechnet. Wenn Sie On-Demand Advantage aktivieren, müssen Sie außerdem mindestens 24 Stunden warten, bis Sie den Modus deaktivieren können. Insgesamt ist On-Demand Advantage die beste Methode, um mit Kinesis Data Streams zu streamen, wenn Sie eine konsistente Durchsatznutzung haben, die der Mindestverpflichtung nahe oder darüber liegt, viele Fan-Out-Nutzer benötigen oder mit Hunderten von Datenströmen arbeiten.

Funktionen und Anwendungsfälle im Bereitstellungsmodus

Im Bereitstellungsmodus können Sie, nachdem Sie den Datenstream erstellt haben, Ihre Shard-Kapazität mithilfe der oder der AWS-Managementkonsole API dynamisch nach oben oder unten skalieren. UpdateShardCount Sie können Aktualisierungen vornehmen, während eine Produzenten- oder Konsumentenanwendung von Kinesis Data Streams Daten in den Stream schreibt oder aus dem Stream liest.

Der Bereitstellungsmodus eignet sich für vorhersehbaren Datenverkehr mit leicht zu prognostizierenden Kapazitätsanforderungen. Sie können den Bereitstellungsmodus verwenden, wenn Sie eine genaue Kontrolle darüber haben möchten, wie Daten auf Shards verteilt werden.

Mit einem Bereitstellungsmodus müssen Sie die Anzahl der Shards für den Datenstrom angeben. Zum Festlegen der Größe eines Datenstroms mit dem Bereitstellungsmodus benötigen Sie die folgenden Eingabewerte:

  • Die durchschnittliche Größe des Datensatzes, der in den Stream geschrieben wird, in Kilobyte (KB), gerundet auf das nächste ganze Kilobyte (average_data_size_in_KB).

  • Die Anzahl der Datensätze, die pro Sekunde in den Stream geschrieben bzw. daraus gelesen werden (records_per_second).

  • Die Anzahl der Verbraucher, die Anwendungen von Kinesis Data Streams sind, die gleichzeitig und unabhängig voneinander Daten aus dem Stream konsumieren (number_of_consumers).

  • Die Bandbreite für eingehende Schreiboperationen in KB (incoming_write_bandwidth_in_KB). Diese ist gleich average_data_size_in_KB multipliziert mit records_per_second.

  • Die Bandbreite für ausgehende Leseoperationen in KB (outgoing_read_bandwidth_in_KB). Diese ist gleich incoming_write_bandwidth_in_KB multipliziert mit number_of_consumers.

Sie können die Anzahl der Shards (number_of_shards), die der Stream benötigt, mit den Eingabewerte in der folgenden Formel berechnen.

number_of_shards = ceiling(max(incoming_write_bandwidth_in_KiB/1024, outgoing_read_bandwidth_in_KiB/2048))

Im Bereitstellungsmodus kann es immer noch zu Ausnahmen beim Lese- und Schreibdurchsatz kommen, wenn Sie Ihren Datenstrom nicht für den Spitzendurchsatz konfigurieren. In diesem Fall müssen Sie Ihren Datenstrom manuell skalieren, um den Datenverkehr zu bewältigen.

Es kann auch zu Lese- und Schreibausnahmen kommen, wenn Sie einen Partitionsschlüssel verwenden, der zu einer ungleichmäßigen Datenverteilung führt, und die einem Shard zugewiesenen Datensätze dessen Grenzwerte überschreiten. Um dieses Problem im Bereitstellungsmodus zu beheben, identifizieren Sie solche Shards und teilen Sie sie manuell auf, um Ihren Datenverkehr besser zu bewältigen. Weitere Informationen finden Sie unter Resharding eines Streams.

Wechseln Sie zwischen den Modi

Für jeden Datenstrom in Ihrem AWS-Konto können Sie innerhalb von 24 Stunden zweimal zwischen dem On-Demand-Modus und dem Bereitstellungsmodus wechseln. Der Wechsel zwischen den Modi verursacht keine Unterbrechungen Ihrer Anwendungen, die diesen Datenstrom verwenden. Sie können weiterhin in diesen Datenstrom schreiben und aus ihm lesen. Wenn Sie zwischen den Modi wechseln, entweder von On-Demand-Modus zu Bereitgestellt oder von Bereitgestellt zu On-Demand-Modus, wird der Status des Streams auf Aktualisierung gesetzt. Sie müssen warten, bis der Status des Datenstroms den Status Aktiv erreicht hat, bevor Sie seine Eigenschaften erneut ändern können.

Wenn Sie vom Bereitstellungs- zum On-Demand-Kapazitätsmodus wechseln, behält Ihr Datenstrom zunächst die Shard-Anzahl bei, die er vor der Umstellung hatte. Ab diesem Zeitpunkt überwacht Kinesis Data Streams Ihren Datenverkehr und skaliert die Anzahl der Shards dieses On-Demand-Datenstroms in Abhängigkeit von Ihrem Schreibdurchsatz. Wenn Sie vom On-Demand-Modus in den Bereitstellungsmodus wechseln, behält Ihr Datenstream zunächst auch die Shard-Anzahl bei, die er vor der Umstellung hatte. Ab diesem Zeitpunkt sind Sie jedoch dafür verantwortlich, die Shard-Anzahl dieses Datenstroms zu überwachen und anzupassen, um Ihrem Schreibdurchsatz gerecht zu werden.

Sie können vom On-Demand-Standardmodus zum On-Demand-Advantage-Modus wechseln, indem Sie eine Einstellung auf Kontoebene aktivieren. Wenn diese Option aktiviert ist, verpflichtet sich das Konto, mindestens 25% MiB/s of data ingest and 25MiB/s des Datenabrufs in allen On-Demand-Streams in der Region zu nutzen. Nach der Aktivierung müssen Sie mindestens 24 Stunden warten, bevor Sie On-Demand Advantage deaktivieren können. Sie können die Änderung jedoch jederzeit beantragen. Wenn Sie von On-Demand-Advantage zu On-Demand-Standard wechseln möchten, müssen Sie zunächst alle für Demand-Streams konfigurierten warmen Durchsatz entfernen.