クライアントからデータを受信してKinesisに送信するWebサービスが必要です。このWebサーバーは、メッセージレートの配信、タイムアウト、ポリシーの再試行およびスケーラビリティに関して最高のパフォーマンスを提供するKinesis Producer Library(KPL)を使用できます。 KPLは多くのワーカーを作成することができ、メッセージレートを最適化し、Kinesys Shardsによって課された書き込み制限を超えないように調整することができます。
キネシスにデータを送信するすべてのクライアントに、パフォーマンス、メインテナンスコスト、および配信の面で過度の負担がかかる可能性があります。 クライアントが高速トラフィックでデータを送信し始めるとどうなりますか?シャードには書き込み操作のレート制限があります(最大1,000レコード/秒、データ書き込み速度は最大1 MB /秒)。 「攻撃的な」クライアントは、連続トラフィックを生成し、しばらくシャードに応答しないようにし、同じシャードに格納されるべきレコードを送信する他のすべてのクライアントをブロックする可能性があります。
さらに、何千人ものクライアントの配信コストについて考えてみましょう。ストリーム名を変更したい場合はどうなりますか?またはaccessID /キーを変更しますか?またはキネシスからカフカに切り替えるだけですか?何千ものクライアントの更新を管理する必要があります。
Webサーバーを使用すると、複雑さを隠して、変更をクライアントに透過的に反映させることができます。 EC2で直接Webサービスを実行すると考えることができます。 AWSのプロデューサにネットワークの待ち時間を短縮する必要があります。さらに、AWSが提供するすべてのスケーラビリティ/復元力/フォールトトレランス機能を利用できます。