WEBアプリケーションにおけるAWS Lambdaを用いた大規模な非同期処理の実践
WEBアプリケーションでは、大量のメール配信や画像生成など、実行時間がかかる処理は非同期で実行するのが一般的です。弊社のあるDjangoプロジェクトでは、非同期処理にCeleryを使用していましたが、性能面の課題を解決するために、一部をAWS Lambdaに移行しました。Lambdaの実装にもPythonを使用しています。本番稼働中のWEBアプリケーションでLambdaを使って大量の非同期処理を処理するには、様々な知見が必要でした。SQS、S3、DynamoDBといった他のAWSサービスと連携する必要もありました。また、PythonでLambda関数を実装する際には、amazon-sqs-python-extended-client-libやpowertools-lambda-pythonなどのライブラリを使用することで、ビジネスロジックに関係のない処理はライブラリに任せて生産性を高めることができます。本セッションでは、移行プロジェクトで得られたこれらの知見を共有します。具体的なメール配信処理の事例を基に話しますが、Lambdaを用いた非同期処理を検討している方にとっても参考になる内容です。