Auswahl des Datenstrom-Kapazitätsmodus - 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.

Auswahl des Datenstrom-Kapazitätsmodus

Was ist ein Datenstream-Kapazitätsmodus?

Ein Kapazitätsmodus 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 zwischen einem On-Demand-Modus und einem bereitgestellten Modus für Ihre Datenströme wählen.

  • On-Demand – Datenströme mit einem 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. Im On-Demand-Modus verwaltet Kinesis Data Streams die Shards automatisch, um den erforderlichen Durchsatz bereitzustellen.

  • Bereitgestellt – Für Datenströme 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 Datenstrom bei Bedarf erhöhen oder verringern.

Sie können die APIs von Kinesis Data Streams PutRecord und PutRecords verwenden, um Daten sowohl im On-Demand-Modus als auch im Bereitstellungsmodus in Ihre Datenströme zu schreiben. Zum Abrufen von Daten unterstützen beide Kapazitätsmodi Standardverbraucher, die die GetRecords-API verwenden und Enhanced Fan-Out (EFO)-Verbraucher, die die SubscribeToShard-API verwenden.

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.

On-Demand-Modus

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.

Sie können einen neuen Datenstrom im On-Demand-Modus erstellen, indem Sie die Kinesis-Data-Streams-Konsole, -APIs oder CLI-Befehle verwenden.

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. Wenn Ihr Datenstrom beispielsweise einen Schreibdurchsatz hat, der zwischen 10 Mbit/s und 40 Mbit/s variiert, stellt Kinesis Data Streams sicher, dass Sie problemlos auf das Doppelte des bisherigen Spitzendurchsatzes, also 80 Mbit/s, hochfahren können. Wenn derselbe Datenstrom einen neuen Spitzendurchsatz von 50 Mbit/s erreicht, stellt Kinesis Data Streams sicher, dass genügend Kapazität vorhanden ist, um einen Schreibdurchsatz von 100 Mbit/s aufzunehmen. 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.

Behandlung von Ausnahmen beim Lese- und Schreibdurchsatz

Im On-Demand-Kapazitätsmodus (wie im Modus „Bereitgestellte Kapazität“) müssen Sie für jeden Datensatz einen Partitionsschlüssel angeben, um Daten in Ihren Datenstrom 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 Verkehr 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 den Durchsatz von 1 Mbit/s und 1 000 Datensätze pro Sekunde eines Shards.

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.

Modus bereitgestellter Kapazität

Im Bereitstellungsmodus können Sie, nachdem Sie den Datenstream erstellt haben, Ihre Shard-Kapazität mithilfe der oder der AWS Management Console 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 = 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.

Zwischen Kapazitätsmodi wechseln

Sie können den Kapazitätsmodus Ihres Datenstroms von On-Demand-Modus auf Bereitgestellt oder von Bereitgestellt auf On-Demand-Modus umschalten. Für jeden Datenstrom in Ihrem AWS -Konto können Sie innerhalb von 24 Stunden zweimal zwischen den Modi „On-Demand-Kapazität“ und „Bereitgestellte Kapazität“ wechseln.

Das Umschalten zwischen den Kapazitätsmodi eines Datenstroms 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 Kapazitätsmodi 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 Datenstrom 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.