Lambda 함수 메모리 구성하기

Lambda 함수 메모리 구성하기 (Configure Lambda function memory)

Lambda는 구성된 메모리 양에 비례해 CPU 성능을 할당해요. 메모리는 런타임에 Lambda 함수가 사용할 수 있는 메모리 양이에요. Memory 설정으로 함수에 할당된 메모리와 CPU 성능을 늘리거나 줄일 수 있어요. 메모리는 128MB에서 10,240MB 사이를 1MB 단위로 구성할 수 있어요. 1,769MB에서 함수는 1개의 vCPU(초당 1 vCPU-초 크레딧)에 해당하는 성능을 가져요.

출처: AWS Lambda 개발자 안내서

본문

Lambda 함수에 적절한 메모리 설정 결정하기

메모리는 함수 성능을 제어하는 주요 수단이에요. 기본 설정인 128MB는 가능한 가장 낮은 설정이에요. 128MB는 이벤트를 다른 AWS 서비스로 변환·라우팅하는 것 같은 단순한 Lambda 함수에만 사용하는 것을 권장해요.

더 높은 메모리 할당은 import한 라이브러리, Lambda 레이어, Amazon Simple Storage Service(Amazon S3), Amazon Elastic File System(Amazon EFS)을 사용하는 함수의 성능을 개선할 수 있어요. 메모리를 더 추가하면 CPU 양도 비례해 늘어나 전체적인 컴퓨팅 성능이 올라가요. 함수가 CPU·네트워크·메모리 바운드라면 메모리 설정을 높이면 성능이 크게 향상될 수 있어요.

올바른 메모리 구성을 찾으려면 Amazon CloudWatch로 함수를 모니터링하고, 메모리 소비가 구성된 최대값에 가까워지면 알람을 설정하세요. 이렇게 하면 메모리 바운드 함수를 식별하는 데 도움이 돼요. CPU·IO 바운드 함수에서는 duration 모니터링도 인사이트를 줄 수 있어요. 이런 경우 메모리를 늘리면 컴퓨팅이나 네트워크 병목을 해소하는 데 도움이 돼요.

오픈소스 AWS Lambda Power Tuning 도구 사용도 고려해 보세요. 이 도구는 AWS Step Functions로 서로 다른 메모리 할당에서 Lambda 함수의 여러 동시 버전을 실행하고 성능을 측정해요. 입력 함수는 AWS 계정에서 실행되며 실제 HTTP 호출과 SDK 상호작용을 수행해 실제 프로덕션 시나리오에서의 성능을 측정해요. CI/CD 프로세스를 구현해 배포하는 새 함수의 성능을 자동으로 측정할 수도 있어요.

함수 메모리 구성(콘솔)

Lambda 콘솔에서 함수의 메모리를 구성할 수 있어요.

함수의 메모리를 업데이트하려면

  1. Lambda 콘솔의 Functions 페이지를 엽니다.
  2. 함수를 선택합니다.
  3. Configuration 탭을 선택하고 General configuration을 선택합니다.
  4. General configuration 아래에서 Edit을 선택합니다.
  5. Memory에 128MB에서 10,240MB 사이의 값을 설정합니다.
  6. Save를 선택합니다.

함수 메모리 구성(AWS CLI)

update-function-configuration 명령으로 함수의 메모리를 구성할 수 있어요.

예제

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

함수 메모리 구성(AWS SAM)

AWS Serverless Application Model로 함수의 메모리를 구성할 수 있어요. template.yaml 파일의 MemorySize 속성을 업데이트하고 sam deploy를 실행하세요.

예제 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...

함수 메모리 권장사항 수락(콘솔)

AWS Identity and Access Management(IAM)에서 관리자 권한이 있으면 AWS Compute Optimizer의 Lambda 함수 메모리 설정 권장사항을 받아볼 수 있어요. 계정이나 조직의 메모리 권장사항 옵트인에 대한 지침은 AWS Compute Optimizer 사용자 안내서의 계정 옵트인을 참고하세요.

참고

Compute Optimizer는 x86_64 아키텍처를 사용하는 함수만 지원해요.

옵트인하고 Lambda 함수가 Compute Optimizer 요구 사항을 충족하면, Lambda 콘솔의 General configuration에서 Compute Optimizer의 함수 메모리 권장사항을 보고 수락할 수 있어요.

더 알아보기 (Learn more)