2017-06-26 19 views
0

現在、私はS3 PUTイベントによってトリガされるラムダ関数を持っています。ラムダはS3バケット/キーの名前でSQSメッセージを作成します。Amazon Webサービス - SQS - Lambda

S3バケットには、これらのファイルを解凍し、処理してデータを保存することを主目的とするzipファイルが含まれています。

lambda自体がメモリサイズに制限されているため、このプロセスを行うにはすべてのJavaコードを配置するのに最適なサービスは何ですか?私はS3のバケット名を取得するためにキューを読み取ってそれらに接続し、私が望むすべての処理を行う何かが必要です。私はすべてのアクロオールコードを処理するために持っているが、私はAWSバッチ、Ec2、スパークなどを使用すべきかどうかはわかりません。私はこれらのサービスに精通しておらず、アマゾンは本質的に同じことをする100万のサービスを提供しているようです。

答えて

0

自動スケーリングEC2インスタンスをセットアップして、SQSからメッセージを読み取り、ファイルを解凍してバケットに書き戻すことができます。

ご理解のある方はthisリンクをご覧ください。

注:S3では、スループットを向上させるために、解凍されたファイルに対して異なるバケットを使用することをお勧めします。

+0

私の仕事の流れは今のところこんな感じになると思います。ラムダは受信S3イベントによってトリガされます。 mysqlデータベースにレコード(新しいs3イベントの場所)を送信します。次に、新しいs3バケットすべてを含むデータベースを読み取ってs3に接続するドッカーコンテナを作成し、ec2を使用するAmazonバッチでそのような解凍を実行します。 –

+0

私は、メッセージの信頼性がawsの責任になるので、メッセージをsqsに入れて処理するのにs3イベントトリガを好むでしょう。また、dockerまたはec2を使用することもできます。私は主にファイルのサイズと必要な処理量に基づいて感じています。最適なパフォーマンスを得るには、解凍に最適なEC2クラスを使用してください。 – Ashan

関連する問題