

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

# Kinesis Client Library を使用する
<a name="kcl"></a>

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

Kinesis Client Library (KCL) は、Amazon Kinesis Data Streams からデータを取得して処理する作業を簡素化するために設計された、スタンドアロンの Java ソフトウェアライブラリです。KCL は、分散コンピューティングに伴う複雑な処理を代行するため、開発者はデータ処理のビジネスロジックの実装に集中できます。KCL は、複数ワーカー間での負荷分散、ワーカー障害への対応、処理済みレコードのチェックポイント管理、ストリーム内のシャード数の変化への対応などの処理を管理します。

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

**重要**  
既知のバグや問題を回避するために、最新バージョンの KCL を使用することをお勧めします。KCL 2.6.0 以前を使用している場合、ストリーム容量の変化時にシャード処理が停止する可能性があるまれな事象を回避するため、KCL 2.6.1 以降へアップグレードしてください。
KCL は Java ライブラリです。Java 以外の言語をサポートするために、MultiLangDaemon と呼ばれる Java ベースのデーモンが提供されています。MultiLangDaemon は、STDIN および STDOUT を介して KCL アプリケーションと連携します。GitHub の MultiLangDaemon の詳細については、[Java 以外の言語で KCL を使用してコンシューマーを開発する](develop-kcl-consumers-non-java.md) を参照してください。
KCL 3.x で AWS SDK for Java バージョン 2.27.19 ～ 2.27.23 を使用しないでください。これらのバージョンには、KCL が使用する DynamoDB に関連した例外エラーを引き起こす問題が含まれています。この問題を回避するには、 AWS SDK for Java バージョン 2.28.0 以降を使用することをお勧めします。

## KCL の主な機能と利点
<a name="kcl-benefits"></a>

KCL の主な機能と関連する利点は次のとおりです。
+ **スケーラビリティ**: KCL は、複数のワーカー間で処理負荷を分散することで、アプリケーションを動的にスケールさせることを可能にします。手動または自動スケーリングを使用してアプリケーションをスケールインまたはスケールアウトしても、負荷の再分散について心配する必要はありません。
+ **負荷分散**: KCL は利用可能なワーカー間で処理負荷を自動的に均等化し、ワーカー間の作業量をバランスよく分散します。
+ **チェックポイント**: KCL は処理済みレコードのチェックポイント管理を行い、アプリケーションが最後に正常に処理した位置から処理を再開できるようにします。
+ **耐障害性**: KCL には耐障害性メカニズムが組み込まれているため、個々のワーカーが障害を起こした場合でもデータ処理が継続されます。また、KCL は 少なくとも 1 回の配信を保証します。
+ **ストリームレベルの変更の処理**: KCL は、データ量の変化によって発生するシャードの分割や結合に適応します。また、親シャードの処理とチェックポイントが完了するまで子シャードを処理しないようにすることで、レコードの順序が維持されます。
+ **モニタリング**: KCL は Amazon CloudWatch と連携し、コンシューマーレベルのモニタリングを行います。
+ **多言語サポート**: KCL は Java をネイティブでサポートしており、MultiLangDaemon を通じて複数の Java 以外のプログラミング言語にも対応できます。