

# Lambda 関数のメモリを設定
<a name="configuration-memory"></a>

Lambda は、設定されたメモリの量に比例して CPU パワーを割り当てます。*メモリ*は、実行時に Lambda 関数で使用できるメモリの量です。**[メモリ]** 設定を使用して、関数に割り当てられたメモリと CPU パワーを増減できます。メモリは、128 MB～10,240 MB の値を 1 MB 単位で設定できます。1,769 MB の場合、1 つの vCPU (1 秒あたりのクレジットの 1 vCPU 秒分) に相当します。

このページでは、Lambda 関数のメモリ設定を更新の方法とタイミングについて説明します。

**Topics**
+ [

## Lambda 関数の適切なメモリ設定を確認する
](#configuration-memory-use-cases)
+ [

## 関数メモリの設定 (コンソール)
](#configuration-memory-console)
+ [

## 関数のメモリの設定 (AWS CLI)
](#configuration-memory-cli)
+ [

## 関数のメモリの設定 (AWS SAM)
](#configuration-memory-sam)
+ [

## 関数のメモリーの推奨事項を受け入れる (コンソール)
](#configuration-memory-optimization-accept)

## Lambda 関数の適切なメモリ設定を確認する
<a name="configuration-memory-use-cases"></a>

メモリは、関数のパフォーマンスを制御するための主要な手段です。デフォルト設定の 128 MB は、設定可能な最小値です。イベントを変換して他のサービスにルーティングする関数など、シンプルな Lambda 関数には 128 MB で使用することをお勧めしますAWS。メモリ割り当てを増やすと、インポートされたライブラリ [Lambda レイヤー](chapter-layers.md)、Amazon Simple Storage Service (Amazon S3)、または Amazon Elastic File System (Amazon EFS) を使用する関数のパフォーマンスを向上させることができます。メモリを追加すると、CPU の処理量が比例的に増加して、計算能力全体が向上します。関数が CPU、ネットワーク、またはメモリにバインドされている場合、メモリ設定を増やすとパフォーマンスが大幅に向上する可能性があります。

適切なメモリ設定を見つけるには、Amazon CloudWatch で関数をモニタリングし、メモリ消費量が設定された最大値に近づいた場合にアラームを設定します。これにより、メモリバウンド関数を識別できます。CPU バウンド関数および IO バウンド関数の場合、時間をモニタリングするとインサイトを得ることもできます。このような場合、メモリを増やすと、コンピューティングまたはネットワークのボトルネックを解決するのに役立つことがあります。

オープンソースの [AWS Lambda パワーチューニング](https://github.com/alexcasalboni/aws-lambda-power-tuning)ツールの使用を検討することもできます。このツールは AWS Step Functions を使用して、異なるメモリ割り当てで複数のバージョンの Lambda 関数を同時に実行し、パフォーマンスを測定します。入力関数は AWS アカウントで実行され、ライブ HTTP 呼び出しと SDK インタラクションを実行して、ライブ本番環境で期待されるパフォーマンスを測定します。このツールを使用して、デプロイする新しい関数のパフォーマンスを自動的に測定する CI/CD プロセスを実装することもできます。

## 関数メモリの設定 (コンソール)
<a name="configuration-memory-console"></a>

関数のメモリは Lambda コンソールで設定できます。

**関数のメモリ割り当てを変更するには**

1. Lambda コンソールの [[関数ページ]](https://console.aws.amazon.com/lambda/home#/functions) を開きます。

1. 関数を選択します。

1. **[設定]** を選択してから、**[一般設定]** を選択します。  
![\[\]](http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/images/configuration-tab.png)

1. **[全般設定]** で、**[編集]** を選択します。

1. **[メモリ]** に、128 MB から 10,240 MB の値を設定します。

1. **[保存]** を選択します。

## 関数のメモリの設定 (AWS CLI)
<a name="configuration-memory-cli"></a>

[update-function-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-configuration.html) コマンドを使用して、関数のメモリを設定できます。

**Example**  

```
aws lambda update-function-configuration \
  --function-name my-function \
  --memory-size 1024
```

## 関数のメモリの設定 (AWS SAM)
<a name="configuration-memory-sam"></a>

[AWS Serverless Application Model](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/serverless-getting-started.html ) を使用して、関数のメモリを設定できます。`template.yaml` ファイル内の [MemorySize](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-memorysize) プロパティを更新し、[sam deploy](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html) を実行します。

**Example template.yaml**  

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: An AWS Serverless Application Model template describing your function.
Resources:
  my-function:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: .
      Description: ''
      MemorySize: 1024
      # Other function properties...
```

## 関数のメモリーの推奨事項を受け入れる (コンソール)
<a name="configuration-memory-optimization-accept"></a>

AWS Identity and Access Management (IAM) での管理者権限がある場合は、Lambda 関数のメモリ設定に関する推奨事項を、AWS Compute Optimizer から受け取るようにオプトインできます。アカウントまたは組織でメモリの推奨事項にオプトインする手順については、*AWS Compute Optimizer ユーザーガイド*の「[アカウントにオプトインする](https://docs.aws.amazon.com/compute-optimizer/latest/ug/getting-started.html#account-opt-in)」を参照してください。

**注記**  
Compute Optimizer は x86\$164 アーキテクチャを使用する関数のみをサポートします。

オプトインが完了しており、[Lambda 関数が Compute Optimizer の要件を満たしている](https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html#requirements-lambda-functions)場合は、Compute Optimizer による関数のメモリに関する推奨事項を、Lambda コンソールの **[一般設定]** で表示したり、受け入れたりすることができます。