2017-08-16 8 views
0

私はアプリケーションを構築しています。その1つの側面は、ユーザーがいくつかのcsvファイルとともに画像をエクスポートできることです。データ処理ワークフロー:aws lambdaまたはec2インスタンス?

このアプリケーションのこの機能の使用は断続的です。言い換えれば、使用の間に多量の時間(数ヶ月)があり、その後かなりの時間がかかるでしょう。

現在、私はこれをec2インスタンス上で動作するpythonスクリプトを使用して実装しています。 pythonスクリプトは、エクスポートの詳細を含むjsonのsqsキューをポーリングします。エクスポートjsonには、s3に格納された一連のイメージが含まれています。この配列には、1〜5000個のイメージが含まれている可能性があります。

スクリプトは、基本的には次のん:輸出メッセージの

  • ポーリングSQS
  • ダウンロードs3の画像
  • (ImageMagickの)をリサイズし /エクスポートメッセージ
  • からのデータに基づいて画像の名前を変更します
  • エクスポートメッセージのデータに基づいてディレクトリ内のイメージをグループ化する
  • csvを作成する輸出メッセージからデータ
  • に基づいてファイルには、このワークフローを使用の間欠性を考慮したAWSラムダのためのより良いでしょうか?
  • アップロードが

をS3に.zip .zipアーカイブを作成しますか

ラムダを使用してこのワークフローを実行できますか?

5k画像のサイズを変更するのはラムダにとって時間がかかりすぎますか?あなたはAWSラムダ関数を使用して経験する

答えて

2

の主要な問題は、次のようになります。

  • 各機能は、5分
  • 各機能のみを持っているディスクスペースの500メガバイト
  • 機能の最大のために実行することができますAmazon SQSキューのメッセージでは起動できません(メッセージをキューに入れるプロセスによって直接トリガーされる)。

It iアプリがこれらの制限のいずれかに当てはまる可能性があります。機能を連鎖させることでタイミングの問題を回避することができますが、これはお勧めできません。あなたは、すぐにそのような要求を処理する必要がない場合

代替設計は次のようになります。

  • がゼロの場合の最小値と適切で、あなたのアプリケーションを実行自動スケーリンググループを作成します。最大(それも可能性が1つのインスタンスのみ)
  • 設定スケーリングポリシースケールアウトするキューとスケールインでメッセージがあるとき、キューにメッセージがないとき
  • 使用スポットインスタンスお金を節約するために(ちょうどオンデマンド価格に価格を設定)
+0

スポットインスタンスは素晴らしいコールされている、あなたはまた、SWF(https://aws.amazon.com/swf検討することもでき/)が、S​​amはすでにサーバー上で実行されているPythonスクリプトを持っているので、スポットインスタンスがそのインスタンスになります。 –

関連する問題