

# Lambda 함수 메모리 구성
<a name="configuration-memory"></a>

Lambda는 구성된 메모리 크기에 비례하여 CPU 처리능력을 할당합니다. *메모리*는 런타임에 Lambda 함수가 사용할 수 있는 메모리 양입니다. **메모리** 설정을 사용하면 함수에 할당된 메모리 및 CPU 성능을 늘리거나 줄일 수 있습니다. 메모리는 128MB에서 10,240MB 사이에서 1MB 단위로 구성할 수 있습니다. 1,769MB에서 함수는 하나의 vCPU와 동등한 값을 갖습니다(초당 하나의 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>

메모리는 함수의 성능을 제어하는 주요 수단입니다. 기본 설정인 128MB는 가능한 가장 낮은 설정입니다. 이벤트를 변환하고 다른 AWS 서비스로 라우팅하는 함수와 같은 간단한 Lambda 함수에는 128MB만 사용하는 것이 좋습니다. 메모리를 더 많이 할당하면 가져온 라이브러리, [Lambda 계층](chapter-layers.md), Amazon Simple Storage Service(Amazon S3) 또는 Amazon Elastic File System(Amazon EFS)을 사용하는 함수의 성능이 향상될 수 있습니다. 메모리를 더 추가하면 그에 비례하여 CPU 양도 증가하여 사용 가능한 전체 컴퓨팅 파워가 증가합니다. 함수가 CPU, 네트워크 또는 메모리 바인딩인 경우 메모리 설정을 늘리면 성능이 크게 향상될 수 있습니다.

올바른 메모리 구성을 찾으려면 Amazon CloudWatch를 사용하여 함수를 모니터링하고 메모리 소비가 구성된 최대값에 근접하는 경우 경보를 설정합니다. 이 경우 메모리 경계 함수를 식별하는 데 도움이 될 수 있습니다. CPU 경계 및 IO 경계 함수의 경우 지속 시간을 모니터링하면 더 많은 인사이트를 얻을 수 있습니다. 이러한 경우 메모리를 늘리면 컴퓨팅 또는 네트워크 병목 현상을 해결할 수 있습니다.

오픈 소스 [AWS Lambda Power Tuning](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/ko_kr/lambda/latest/dg/images/configuration-tab.png)

1. **일반 구성**에서 **편집**을 선택합니다.

1. **메모리**에 128MB에서 10,240MB 사이의 값을 설정합니다.

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)의 관리자 권한이 있는 경우 AWS Compute Optimizer에서 Lambda 함수 메모리 설정 권장 사항을 수신하도록 옵트인할 수 있습니다. 계정 또는 조직에 대한 메모리 권장 사항을 옵트인하는 방법에 대한 지침은 *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)하는 경우 Lambda 콘솔의 **일반 구성**에서 Compute Optimizer의 함수 메모리 권장 사항을 보고 수락할 수 있습니다.