AWS Lambda Power Tuning 활용한 람다 함수 최적화

김대유·2024년 1월 11일
2
post-thumbnail

서버리스 인프라의 구성 및 관리의 편의성 때문에 많은 분들이 람다 함수를 이용해서 서비스를 구성 하고 계십니다.

람다 함수는 할당 된 메모리에 따라 컴퓨팅 파워를 제공 하고 있습니다.

메모리를 많이 할당하면 그만큼 람다 함수가 빨리 수행이 되고 메모리를 적게 할당을 하면 그만큼 람다 함수의 수행 시간이 길어질 것입니다.

AWS는 람다 함수의 수행 시간에 따라 비용을 청구 하기 때문에 비용과 성능의 교차점이 존재 합니다.

이번 블로그에서는 AWS Lambda Power Tuning을 통해서 비용 과 퍼포먼스 측면에서의 람다 함수 최적화 하는 방법에 대해서 알려 드리겠습니다.

1. AWS Lambda Power Tuning Deploy

  • 람다 함수 최적화를 하기 위해서는 AWS Lambda Power Tuning 설치
  • AWS 계정에 로그인 한 후 AWS Severless Repository에 접속하여 AWS Lambda Power Tuning Deploy

2. Target 람다 함수 생성

AWS Lambda Power Tuning를 이용하여 최적화 시킬 람다 함수를 생성 합니다. 제 경우에는 피보나치 수열을 계산하는 파이썬 코드를 작성하였고 해당 함수를 통해 시간과 비용적으로 최적의 메모리 값을 구해보도록 하겠습니다.

import json

def lambda_handler(event, context):
    print(fib(35))
def fib(n):
    if n == 0:
        return 0
    elif n == 1 or n == 2:
        return 1
    else:
        return fib(n - 1) + fib(n - 2)

3. AWS Lambda Power Tuning 실행

  • AWS Lambda Power Tuning이 Deploy가 완료 후 Step Fucntion 실행

  • Step Function의 입력 값으로 아래 JSON 입력 ( account-id 변경 필요 )
{
  "lambdaARN": "arn:aws:lambda:ap-northeast-2:account-id:function:fibonacci",
  "powerValues": [
    128,
    256,
    512,
    1024,
    2048,
    4096,
    8192
  ],
  "num": 10,
  "payload": "{}",
  "parallelInvocation": true,
  "strategy": "cost"
}

결과 확인

  • 출력 값 visualization 항목의 url로 접속하여 결과 값 확인

아래 그래프를 확인 해보면 메모리 512MB 일 때가 가장 비용 효율적인 지점이면 메모리가 4096MB일때는 성능 적으로 가장 효율적인 지점인 것을 확인 할 수 있습니다.

0개의 댓글