4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ChatGPTで「Lambdaにて15分以上の処理を行いたい」場合の解決策を聞いてみた【メモ】

Last updated at Posted at 2023-02-14

質問

AWS Lambdaで15分以上時間のかかる処理を解決するには?

回答

AWS Lambdaは、最大実行時間が15分まで制限されています。15分以上かかる処理を実行する場合は、以下のような方法が考えられます。

AWS Step Functionsを使用する:AWS Step Functionsを使用して、Lambda関数を複数のステップに分割し、ステップごとに異なるLambda関数を実行することができます。

AWS Fargateを使用する:AWS Fargateを使用して、コンテナベースのアプリケーションを実行できます。AWS Lambdaと同様に、Fargateもイベント駆動型であり、必要に応じてスケールアップ/ダウンすることができます。

別のサービスに処理をオフロードする:処理をAWS Lambdaから別のサービスにオフロードすることで、処理時間を短縮できる場合があります。たとえば、長時間のバッチ処理を実行する場合は、AWS Batchを使用することができます。

処理を分割する:処理を小さなタスクに分割して、それぞれを別々のLambda関数で処理することができます。この方法では、各関数が15分以内で完了するようにする必要があります。

aws-lambda-15min-over.png

質問2:Lambda, AWS Step Functions

AWS LambdaとAWS Step Functionsを使用して、15分以上かかる処理を実行できるようにしたいです。どのようにすればいいですか?

AWS Lambdaは最大で15分までの処理時間制限がありますが、AWS Step Functionsを使用することで15分以上かかる処理も実行できます。

AWS Step Functionsは、複数のLambda関数、API Gateway、ECS、DynamoDB、SNS、SQSなどのサービスを一つのワークフローとして連携させることができます。15分以上かかる処理を複数のLambda関数に分割し、Step Functionsで実行することで、処理を継続的に実行することができます。また、Step Functionsは、処理の進捗状況やエラーの発生状況などをモニタリングすることもできます。

具体的な手順としては、以下のような流れになります。

処理を複数のLambda関数に分割する
Step FunctionsでLambda関数を連携させる
必要に応じて、API Gateway、ECS、DynamoDB、SNS、SQSなどのサービスを連携させる
処理の進捗状況やエラーの発生状況をモニタリングする
AWS Step Functionsは、AWSのマネージドサービスの一つであり、設定や管理が簡単なため、比較的容易に導入することができます。

lambda-stepfunctions.png


質問3: Lambda, AWS Batch

AWS LambdaとAWS Batchを使用して、15分以上かかる処理を実行できるようにしたいです。どのようにすればいいですか?

AWS Lambdaは最大実行時間が15分までなので、15分以上かかる処理を実行するためにはAWS Batchを使用することができます。AWS Batchは、バッチジョブを作成、スケジュール、実行するためのサービスです。

以下は、AWS LambdaとAWS Batchを使用して15分以上かかる処理を実行する手順です。

AWS Batchでジョブ定義を作成します。ジョブ定義には、実行するバッチジョブのコマンドや引数、実行環境などが含まれます。

AWS Lambdaで、バッチジョブを実行するトリガーとなる関数を作成します。この関数では、AWS BatchのAPIを使用して、バッチジョブを実行します。

Lambda関数が呼び出されると、バッチジョブがAWS Batchによってスケジュールされ、実行されます。

バッチジョブの実行が完了すると、AWS Batchは結果を収集し、Lambda関数に返します。

このように、AWS Batchを使用することで、AWS Lambdaよりも長時間かかるバッチ処理を実行することができます。

lambda-awsbatch.png

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?