

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Kinesis Client Library (KCL) を使用して Amazon Keyspaces ストリームを処理する
<a name="cdc_how-to-use-kcl"></a>

このトピックでは、Kinesis Client Library (KCL) を使用して Amazon Keyspaces 変更データキャプチャ (CDC) ストリームのデータを使用および処理する方法について説明します。

Amazon Keyspaces Streams API を直接使用する代わりに、Kinesis Client Library (KCL) を使用すると、次のような多くの利点があります。
+ シャード系統の追跡とイテレーター処理が組み込まれています。
+ ワーカー間の自動負荷分散。
+ ワーカーの障害に対する耐障害性と復旧。
+ 処理の進行状況を追跡するためのチェックポイント。
+ ストリーム容量の変化への適応。
+ CDC レコードを処理するための簡素化された分散コンピューティング。

次のセクションでは、Kinesis Client Library (KCL) を使用してストリームを処理する理由と方法について説明します。また、KCL を使用して Amazon Keyspaces CDC ストリームを処理する例を示します。

料金については、「[Amazon Keyspaces (for Apache Cassandra) pricing (Amazon Keyspaces (Apache Cassandra 向け) の料金)](https://aws.amazon.com/keyspaces/pricing)」を参照してください。

## Kinesis Client Library (KCL) とは何ですか?
<a name="cdc-kcl-what-is"></a>

Kinesis Client Library (KCL) は、ストリームからのデータの消費と処理のプロセスを簡素化するために設計されたスタンドアロンの Java ソフトウェアライブラリです。KCL は、分散コンピューティングに関連する複雑なタスクの多くを処理し、ストリームデータを処理する際にビジネスロジックの実装に集中できます。KCL は、複数のワーカー間の負荷分散、ワーカーの障害への対応、処理されたレコードのチェックポイント作成、ストリーム内のシャード数の変化への対応などのアクティビティを管理します。

Amazon Keyspaces CDC ストリームを処理するには、KCL にある設計パターンを使用してストリームシャードとストリームレコードを操作できます。KCL は、低レベルの Kinesis Data Streams API の上で役に立つ抽象化を提供することによりコーディングを簡素化します。KCL の詳細については、*Amazon Kinesis Data Streams デベロッパーガイド*」の[「KCL を使用したコンシューマーの開発](https://docs.aws.amazon.com/kinesis/latest/dev/develop-kcl-consumers.html)」を参照してください。

 KCL を使用してアプリケーションを記述するには、Amazon Keyspaces Streams Kinesis Adapter を使用します。Kinesis Adapter は Kinesis Data Streams インターフェイスを実装しているため、KCL を使用して Amazon Keyspaces ストリームからのレコードを消費および処理できます。Amazon Keyspaces ストリーム Kinesis Adapter をセットアップしてインストールする方法については、[GitHub](https://github.com/aws/keyspaces-streams-kinesis-adapter) リポジトリを参照してください。

次の図は、これらのライブラリが相互にどのように相互作用するかを示しています。

![\[Amazon Keyspaces CDC ストリームレコードを処理するときのクライアントアプリケーションと Kinesis Data Streams、KCL、Amazon Keyspaces Streams Kinesis Adapter、Amazon Keyspaces APIs とのやり取り。\]](http://docs.aws.amazon.com/ja_jp/keyspaces/latest/devguide/images/keyspaces-streams-kinesis-adapter.png)


KCL は、基盤となるライブラリの新しいバージョンの取り込みや、セキュリティ強化、バグ修正を行うために頻繁に更新されています。既知の問題を回避し、最新の改善点を活用するためにも、常に最新バージョンの KCL を使用することをお勧めします。最新の KCL バージョンを確認するには、[「KCL GitHub リポジトリ](https://github.com/awslabs/amazon-kinesis-client)」を参照してください。

## KCL の概念
<a name="cdc-kcl-concepts"></a>

KCL を使用してコンシューマーアプリケーションを実装する前に、次の概念を理解しておく必要があります。

**KCL コンシューマーアプリケーション**  
KCL コンシューマーアプリケーションは、Amazon Keyspaces CDC ストリームからのデータを処理するプログラムです。KCL は、コンシューマーアプリケーションコードと Amazon Keyspaces CDC ストリームの間の仲介として機能します。

**ワーカー**  
ワーカーは、Amazon Keyspaces CDC ストリームからのデータを処理する KCL コンシューマーアプリケーションの実行ユニットです。アプリケーションは、複数のインスタンスに分散された複数のワーカーを実行できます。

**レコードプロセッサ**  
レコードプロセッサは、Amazon Keyspaces CDC ストリームのシャードからのデータを処理するアプリケーション内のロジックです。レコードプロセッサは、管理するシャードごとにワーカーによってインスタンス化されます。

**リース**  
リースは、シャードの処理責任を表します。ワーカーはリースを使用して、どのワーカーがどのシャードを処理しているかを調整します。KCL は、Amazon DynamoDB のテーブルにリースデータを保存します。

**チェックポイント**  
チェックポイントは、レコードプロセッサがレコードを正常に処理したシャード内の位置のレコードです。チェックポイントを使用すると、ワーカーが失敗した場合にアプリケーションが中断した場所から処理を再開できます。

Amazon Keyspaces Kinesis アダプターを使用すると、KCL インターフェイスに対して開発を開始できます。API コールは Amazon Keyspaces ストリームエンドポイントにシームレスに誘導されます。利用可能なエンドポイントのリストについては、「[Amazon Keyspaces で CDC ストリームエンドポイントにアクセスする方法](CDC_access-endpoints.md)」を参照してください。

アプリケーションは起動時に KCL をコールしてワーカーをインスタンス化します。ストリーム記述子やAWS認証情報、指定したレコードプロセッサクラスの名前など、アプリケーションの設定情報をワーカーに提供する必要があります。レコードプロセッサでコードを実行すると、ワーカーは次のタスクを実行します。
+ ストリームに接続する
+ ストリーミング内のシャードを列挙します。
+ シャードと他のワーカー (存在する場合) の関連付けを調整する
+ レコードプロセッサで管理する各シャードのレコードプロセッサをインスタンス化する
+ ストリーミングからレコードを取得します。
+ 対応するレコードプロセッサにレコードを送信する
+ 処理されたレコードのチェックポイントを作成する
+ ワーカーのインスタンス数が変化したときに、シャードとワーカーの関連付けを調整する
+ シャードが分割されたときに、シャードとワーカーの関連付けを調整します。