こんにちは、菊池です。 API GatewayとLambdaで構成するAPIから、AWS Batchのジョブを実行する環境を作成してみました。Lambdaには向いていない長時間の処理などを、非同期にBatchで実行することで、スケーラブルなジョブ実行環境にできないかと思いました。 API Gateway + LambdaからBatch Jobを実行する 構成イメージは以下のようになります。 APIに対しリクエストを行うと、Lambda関数はBatchに対しジョブの実行を要求し、すぐにレスポンスを返します。Batchはその後、APIのリクエストとは非同期でジョブを実行します。 ElasticBeanstalkのworker環境や、StepFunctionsに実装したActivity State Machineの呼び出しでも、非同期にEC2上のアプリケーションを実行することは可能です。しかし、
![API Gateway + LambdaでAWS BatchのJobを実行する | DevelopersIO](https://cdn-ak-scissors.b.st-hatena.com/image/square/2c9b7843a70edb46daa3dc67606fc4ccbe50e67f/height=288;version=1;width=512/https%3A%2F%2Fdevio2023-media.developers.io%2Fwp-content%2Fuploads%2F2017%2F01%2Feyecatch-batch.png)