
AWS LambdaとAmazon SQSの非同期呼び出しをやってみた
はじめに
今回は、AWS LambdaとAmazon Simple Queue Service(SQS)を組み合わせて、非同期処理を行ってみました。
非同期処理は、長時間かかるタスクや処理の途中経過を待たずに次の処理を進めたい場合などに有用です。
Amazon SQSとは
Amazon SQSのAWS公式の説明は以下の通りです。
Amazon Simple Queue Service(Amazon SQS)は、分散されたソフトウェアシステムとコンポーネントを統合と分離ができる安全性、耐久性があり利用可能なホストキューを提供します。
Amazon SQSは、分散システムのためのキューサービスです。簡単なAPIを使用して、分離されたコンポーネント間でメッセージを送受信できます。
SQSを使用することで、非同期処理が容易になり、公式の説明にあるものも含め、応答時間の短縮や耐障害性の向上、スループットの向上にコスト削減と様々なメリットがあります。
検証
まずは、SQSキューを作成します。
ここで作成したキューは、Lambda関数で使用します。

続いて、作成したキューをLambdaで使用できるようにIAMロールを作成します。作成したIAMロールは、Lambda関数作成時に使用します。

作成したLambda関数にSQSのトリガーを設定します。「トリガーを追加」からSQSを選び、こちらも作成したSQS queueを以下の画像のように選択します。

Lambda関数に非同期イベントをトリガーするために、EventBridgeを使用してSQSにメッセージを発行します。

これで非同期処理可能な構成の完成です。

終わりに
今回は、AWS LambdaとAmazon SQSを使用して非同期処理を行う基本的な手順を紹介しました。
このアーキテクチャは、分散システムや大規模な処理の実行時に特に有用です。非同期処理の導入により、システムの柔軟性が向上し、効率的なリソース利用が可能になります。
次は、Amazon SQSをAmazon SNSなどと組み合わせた使い方を検証していきたいと思います。