본문 바로가기
Public Cloud/AWS

[Serverless] AWS Lambda 내부 동작방식과 스로틀링

by SE_123 2023. 6. 6.
반응형

AWS Lambda 내부

트리거  방식

이벤트 트리거는 Lambda 함수를 트리거하여 실행될 때마다 함수를 호출합니다. 예를 들어 Amazon S3, Amazon DynamoDB, Amazon API Gateway, AWS CloudWatch 가 있습니다. 각각의 이벤트 트리거 리소스는  동기 , 비동기, 스트림 방식으로 나눌 수 있습니다. 

  • 동기:  Amazon Api Gateway ✅
  • 비동기 : AmazonSNS, S3
  • 스트림 : DynamoDB, Kinesis 등

동작  방식

가장 기본적으로, 동기 방식에서 Lambda는 다음과 같이 동작합니다. 

  • Frontend : 권한관리를 위해, iam 인증이 필요합니다. 실제 실행 환경인 샌드박스 할당을 요청합니다. 
  • Worker manager :실제 실행 환경인 샌드박스의 생성을 요청합니다. 
  • Placement : 샌드박스를 실제 서버와 매칭하여 배치하는 역할을 합니다. 

시작 상황(스타트 엔터티)

AWS Lambda에서 웜 스타트와 콜드 스타트는 함수가 실행될때 발생하는 상황을 나타냅니다. 이것은 Lambda 함수의 실행 속도와 성능에 영향을 미칠 수 있습니다.(개발자 직접 제어는 불가능하지만, 호출 빈도, 함수의 크기, 메모리 설정 시에 고려해야할 사항입니다.)

  • 콜드 스타트 : 콜드 스타트는 Lambda 함수가 최초실행되는 상태에서 발생하고, 지연시간이 발생합니다. 
  • 웜 스타트 : 웜 스타트는 worker가 이미 동작하고 있는 상태에서 발생합니다. 빠른 응답시간 제공으로 함수의 성능을 향상시키며, 자주 호출되는 함수의 경우 반복적인 콜드 스타트를 피할 수 있습니다.

 

 

Lambda 스로틀링(Throttling)

AWS Lambda에서 쓰로틀링은 함수에 대한 동시 실행 요청 수를 제한합니다. 쓰로틀링은 클라이언트의 과도한 요청으로 함수와 리소스에 과부하가 오는것을 막고 그에 따른 비용을 제어하는 역할을 수행합니다. 예를 들어, 403 에러로 람다가 트래픽을 처리하지 못하는 경우에도 쓰로틀링이 발생합니다. 

  • 동시성 : 주어진 시간에 요청을 처리하는 인스턴스의 수
  • 동시성 계산방법: 평균 함수 실행 시간 (초) * 평균 요청/초 
  • 동시성을 줄이기 위해서는 실행시간을 줄여야합니다.
  • (컨텍스트 재사용으로, 동시성과 RPS는 매핑되지는 않습니다. )

 

💡 conclusion 

 람다 최적화는 꼭 필요합니다. 


 

⭐️Serverless 시리즈⭐️

[Serverless] AWS Lambda 개념과 Workshop

[Serverless] AWS Lambda 내부 동작방식과 스로틀링

[Serverless] AWS API Gateway 개념과 lambda와 사용 예시