All Articles

aws-lambda-power-tuning를 이용해 AWS 람다의 메모리 최적값 찾기

https://github.com/alexcasalboni/aws-lambda-power-tuning 를 이용하면 AWS 람다 함수의 메모리 값의 최적 값을 찾아낼 수 있다.

AWS 람다는 메모리 값을 기반으로 CPU 값이 조절된다. 메모리가 너무 낮으면 함수 실행 속도가 느려져서 쓰로틀링이 걸려서 비용이 비싸진다. 메모리가 일정 수준 이상에서는 성능 향상 폭이 줄어들기 때문에 너무 높게 잡으면 낭비되는 리소스에 대해 비용이 비싸진다.

퍼포먼스 테스트 결과 예시

배포하고 람다 함수 테스트 하는 방법

  1. https://github.com/alexcasalboni/aws-lambda-power-tuning/blob/master/README-DEPLOY.md#option1 에 안내된 것처럼 AWS Serverless Application Repository (SAR) 를 이용해 CloudFormation 에 배포한다. 생성 시 별도의 파라미터 수정은 필요하지 않다.
  2. Step Functions 으로 가서, powerTuningStateMachine-GnaY1rxjCvf2 와 비슷하게 생긴 것을 선택한다.
  3. Start Execution 을 클릭한다. 파라미터에는 다음과 같이 넣어준다.

    {
    "lambdaARN": "arn:aws:lambda:us-east-1:...:function:...",
    "powerValues": "ALL", // 리스트로 테스트를 원하는 값을 넣을 수도 있다.
    "num": 10,
    "payload": {}, // 함수가 이벤트에 의존한다면, 여기에 람다 이벤트 페이로드를 넣어준다.
    "parallelInvocation": true,
    "strategy": "cost"
    }
  4. 람다 함수의 파라미터가 실시간으로 수정되며 퍼포먼스 테스트를 진행한다.
  5. 실행이 완료되면 Execution output에서 visualization 링크를 브라우저에 붙여넣는다.