スキップしてコンテンツを表示

Lambdaのメモリ使用率について

0

現在利用しているLambda関数(Node.js)が2つあり、共に既定値のメモリサイズ:128MBを設定していますが、 Lambda関数内の処理にて、メモリ使用率が高い状態となります。(使用状況:約110MB)

構成としては、 AWS WAF → API-Gateway → Lambda関数 → S3 (1つのAPI-Gateway に2つのメソッド、2つのLambda関数 を割り当てています) となるのですが、 この構成において、Lambda関数のメモリ高負荷となる原因の1つとして、 API-Gateway でのスロットリング(リクエスト制限)は関係しますでしょうか?

なお、スロットリングの設定は、 ステージ内共通  レート :10000  バースト: 5000 としています。

1回答
0
承認された回答

Lambda関数のメモリ使用率が高くなる原因は、API Gatewayのスロットリング設定とは直接的な関係はありません。スロットリングは主にリクエストの数を制限するものであり、個々のLambda関数のメモリ使用量には影響しません。

Lambda関数のメモリ使用率が高くなる主な原因は、関数内で処理されるデータのサイズや複雑さ、使用しているライブラリ、そして関数の実装方法にあります。現在の128MBという設定は、多くの場合、基本的な処理には十分ですが、より複雑な処理や大きなデータを扱う場合には不足する可能性があります。

メモリ使用率が110MB程度に達しているということは、現在の128MB設定ではかなりギリギリの状態で動作していることを示しています。これは、関数の実行時間の増加やタイムアウトのリスクにつながる可能性があります。

改善策としては以下が考えられます:

  1. Lambda関数のメモリ割り当てを増やす(例:256MBや512MB)。これにより、関数の処理能力も向上し、実行時間が短縮される可能性があります。

  2. 関数のコードを最適化し、不要なメモリ使用を減らす。

  3. 大きなペイロードを処理する場合は、S3を経由するなど、別の方法を検討する。

  4. 関数の処理を複数の小さな関数に分割し、それぞれの負荷を軽減する。

メモリ使用率の問題に対処するには、まず関数の動作を詳細に分析し、どの部分で多くのメモリを使用しているかを特定することが重要です。その上で、適切なメモリ設定や最適化戦略を選択することをお勧めします。
Sources
Troubleshoot execution issues in Lambda - AWS Lambda

回答済み 8ヶ月前
エキスパート
レビュー済み 8ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

関連するコンテンツ