Lambda で Kinesis Data Streams の ParallelizationFactor を上げても順序性は保証されますか

Lambda で Kinesis Data Streams の ParallelizationFactor を上げても順序性は保証されますか

Clock Icon2025.05.19

困っていた内容

Lambda のトリガーに Kinesis Data Streams を設定しています。
パフォーマンス向上のため「シャードあたりの同時バッチ」を1から増やすことを検討していますが、順序性は保証されますか?

Kinesis Data Streams Parallelization Factor Order Guarantee

順序性は保証されるの?

シャードあたりの同時バッチ数(ParallelizationFactor)を増やした場合も、パーティションキーレベルの順序性は保証されます。

Lambda が Amazon Kinesis Data Streams からのレコードを処理する方法 - AWS Lambda

シャードごとの同時実行バッチの数を増やしても、Lambda はパーティションキーレベルで順序立った処理を確実に行います。

一方で、シャード内の順序性は保証されないため、ワークロードに適しているか十分にご確認ください。

なお、ParallelizationFactor1に設定した場合も、異なるシャード間の順序性は保証されません。

保証される順序性の範囲と設定について、十分に確認した上で、システムへの適用をご検討ください。

参考資料

シャードあたりの同時バッチ数を増やすと、Lambdaはパーティションキーレベルで順序どおりの処理を検証します

ParallelizationFactor
(Kinesis および DynamoDB Streams のみ) 各シャードから同時に処理するバッチの数。デフォルト値は 1 です。

タイプ: 整数

値の範囲: 最小値 は 1 です。最大値は 10 です。

Kinesis データストリームの 1 つのシャードを複数の Lambda 呼び出しで同時に処理するには、ParallelizationFactor 設定を構成します。Lambda がシャードからポーリングする同時バッチの数は、1 (デフォルト)~10 の並列化係数で指定できます。例えば、ParallelizationFactor を 2 に設定すると、最大 200 個の Lambda 呼び出しを同時に実行して、100 個の Kinesis データシャードを処理できます (ただし、ConcurrentExecutions メトリクスに異なる値が表示される場合があります)。これにより、データボリュームが揮発性で IteratorAge が高いときに処理のスループットをスケールアップすることができます。シャードごとの同時実行バッチの数を増やしても、Lambda はパーティションキーレベルで順序立った処理を確実に行います。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.