DynamoDB Streams Kinesis Adapter を使用したストリーミングレコードの処理 - Amazon DynamoDB

DynamoDB Streams Kinesis Adapter を使用したストリーミングレコードの処理

Amazon DynamoDB からのストリーミングを使用するには、Amazon Kinesis Adapter を使用することをお勧めします。DynamoDB Streams API は、Kinesis Data Streams (大規模なストリーミングデータをリアルタイムで処理するサービス) と意図的に似せています。どちらのサービスでも、データストリーミングは、ストリーミングレコードのコンテナであるシャードで構成されています。両方のサービスの API には ListStreamsDescribeStreamGetShards、および GetShardIterator オペレーションが含まれています。(これらの DynamoDB Streams アクションは、Kinesis Data Streams の対応するアクションと似ていますが、100% 同一ではありません)。

Kinesis Client Library (KCL) を使用して、Kinesis Data Streams のアプリケーションを書き込むことができます。KCL は、低レベルの Kinesis Data Streams API の上で役に立つ抽象化を提供することによりコーディングを簡素化します。KCL の詳細については、Amazon Kinesis Data Streams デベロッパーガイドKinesis Client Library を使用したコンシューマーの開発を参照してください。

DynamoDB Streams ユーザーは、KCL 内のデザインパターンを使用して DynamoDB Streams のシャードとストリーミングレコードを処理できます。これを行うには、DynamoDB Streams Kinesis Adapter を使用します。Kinesis Adapter は Kinesis Data Streams インターフェイスを実装しているため、KCL を使用して DynamoDB Streams からのレコードを消費および処理することができます。

次の図表は、これらのライブラリがどのように連携するかを示しています。

DynamoDB Streams Kinesis Adapter を使用すれば、DynamoDB Streams エンドポイントにシームレスに誘導された API コールを使用して、KCL インターフェイスに対して開発を開始できます。

アプリケーションは起動時に KCL をコールしてワーカーをインスタンス化します。ワーカーに、アプリケーションの構成情報 (ストリーミング記述子や AWS 認証情報、および提供するレコードプロセッサクラスの名前など) を提供する必要があります。レコードプロセッサでコードを実行すると、ワーカーは次のタスクを実行します。

  • ストリーミングに接続します。

  • ストリーミング内のシャードを列挙します。

  • シャードと他のワーカー (存在する場合) の関連付けを調整します。

  • レコードプロセッサで管理する各シャードのレコードプロセッサをインスタンス化します。

  • ストリーミングからレコードを取得します。

  • 対応するレコードプロセッサにレコードを送信します。

  • 処理されたレコードのチェックポイントを作成します。

  • ワーカーのインスタンス数が変化したときに、シャードとワーカーの関連付けを調整します。

  • シャードが分割されたときに、シャードとワーカーの関連付けを調整します。

注記

こちらに記載されている KCL 概念の説明については、Amazon Kinesis Data Streams デベロッパーガイドKinesis Client Library を使用したコンシューマーの開発を参照してください。