web-dev-qa-db-ja.com

Kafka + AWS lambda

AWS LambdaとApache Kafkaを統合することは可能ですか?コンシューマーをラムダ関数に入れたいです。コンシューマーがメッセージを受信すると、ラムダ関数が実行されます。

12
lolix

アラファトによるポイントの継続。 AWS Lambdasを使用してKafka=から消費するためのインフラストラクチャを構築しました。

  • 消費するときは、読み取り中に一貫してバッチとコミットを行ってください。
  • バッチをs3に保存する場合は、ファイル記述子を必ず削除してください。
  • バッチを別のサービスに転送する場合は、変数を必ず削除してください。 AWS Lambdaの変数キャッシュは、メモリオーバーフローを引き起こす可能性があります。
  • 良いアイデアは、Lambdaのcontextオブジェクトからどれだけの時間を残したかを確認し、ファイルに読み込まれないかもしれないコンシューマーに入力したバッファーで何かをするためのゆらぎの空間を自分自身に与えることです。 close()を呼び出さない限り。

スケジューリングにはApache Airflowを使用しています。 cloudwatchでもできると聞いています。

12
darthsidious

AWS スケジュールされたラムダに関する記事 です。

Kafka=インストールがVPCで実行される場合、ベストプラクティスは、VPC内で実行するようにLambdaを構成することです。これにより、Kafkaを実行するEC2インスタンスのセキュリティグループ構成が簡素化されます。

ここ は、VPCで実行するためのLambdaの設定に関するAWSブログ記事です。

5
Geoff

はい。AWSLambda関数でKafkaコンシューマーを使用することは非常に可能です。

ただし、何らかの通知を使用してラムダを呼び出すことはできないことに注意してください。むしろKafkaトピックをポーリングする必要があります。最も簡単な方法は Scheduled Lambda を使用することです。

4

コミュニティが提供する AWS Lambda用のKafkaコネクタ があります。このソリューションでは、コネクタをEC2やECSなどのどこかで実行する必要があります。

2
Carl G