반응형
250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

DevOps Tasks

AWS Lambda 마스터리북 구매하기 본문

AWS

AWS Lambda 마스터리북 구매하기

데밥스 2024. 1. 5. 22:49
728x90
반응형

AWS Lambda
AWS Lambda

 


AWS Lambda 를 사용해보기 전에 읽어보면 100% 이상 활용할 수 있다.

💡키워드들도 숙지한다면 큰 도움이 된다 ~ !!


 

Lambda는 AWS에서 제공하는 Serverless 컴퓨팅 플랫폼이다.

 

Serverless 란,

 

서버가 없다는 것이 아닌 개발자가 서버의 존재를 신경 쓸 필요가 없다는 뜻이다.

 

서버가 잘 돌아가고 있는지, 서버 수 및 스펙 등을 신경 쓸 필요 없이 개발자는 오직 코드에만 집중할 수 있으니 편리하다.

 

이때 실제로 사용한 컴퓨팅 시간 및 리소스에 대해서만 비용을 지불하면 된다.

 

AWS Lambda는 다양한 장점을 가지고 있지만 단점도 존재한다.

 

장점을 최대로 살리면서 단점을 최소화할 수 있는 방법을 찾아보자.

 


 

실행 시간제한

  • AWS Lambda의 최대 실행 시간제한은 15 min ( = 900 sec )
  • 최대 Memory는 10 GB( = 10,240 MB )로 제한
  • 15 min 이상의 긴 프로세스의 경우 부적합

 

Stateless

  • 일반적으로 Lambda Function 은 상태 비저장 ( Stateless ) 코드로 실행
  • 별도의 상태를 저장하지 않아 DB Connection 등 유지하는 기능을 수행할 수 없음

 

Concurrency Limits

  • 기본적으로 Lambda 가 동시에 실행할 수 있는 Lambda Function의 개수는 각 region 별 최대 1,000개로 제한된다.
  • 따라서, Request의 수가 이를 넘어가게 되면 Lambda 가 수행되지 않는 문제가 발생할 수 있다.

 

동시성이란 ?

Lambda 함수가 동시에 처리하는 전송 중인 요청 수

함수의 동시성이 증가함에 따라 요청 수요를 위해 많은 실행 환경 인스턴스를 프로비저닝

 

반응형

❄️ Lambda Cold Start

Lambda Request LifeCycle

 

Cold Start 3 단계 🪜

 

  • Lambda Handler 가 코드 다운로드
  • 새로운 환경 생성 ( Memory , Run Time )
  • Handler 외부는 전역 코드 실행

 

Lambda는 Serverless로 효율적인 리소스 사용을 위해 오랫동안 사용하지 않는 경우 컴퓨팅 파워를 꺼두게 된다.

 

Function을 처음 호출될 때 Lambda Function 을 실행시키기 위해 부수적인 설정이 필요한데, 이 과정에서 발생하는 딜레이를 ColdStart라고 한다.

 

ColdStart는 사용하는 언어, 설정한 Memory에 따라 다르게 나타난다.

 


728x90

🥶 Cold Start 해결 방법

 

Lambda 할당된 Spec 늘리기

  • Cold Start 범위는 함수의 크기, 할당한 메모리의 양, 코드의 복잡성에 따라 달라짐
  • 메모리를 추가하면 그에 비례해 CPU 용량이 늘어나 사용 가능한 전체 계산 성능이 향상

 

프로비저닝 된 동시성 활성화

  • 함수의 호출에 바로 응답할 수 있게 미리 준비하는 옵션
  • 실행 환경이 호출 전에 준비되므로 딜레이가 줄어든다.
    • 추가 비용 발생

 

Lambda SnapStart

  • SnapStart는 Java 런타임 전용, x86 아키텍처, 프로비저닝 된 동시성, EFS, 512MB 보다 큰 임시 스토리지의 사용을 지원하지 않는다.
  • SnapStart 기능을 사용할 경우 Lambda 함수를 배포하면 초기화 단계를 실행한다.
  • Cold Start 가 발생하면 Lambda는 실행 환경을 처음부터 실행하는 대신 Caching 된 Firecracker microVM 스냅샷을 이용하여 런타임을 실행하여 Cold Start 시간을 개선할 수 있다.
    • 단, Caching 된 스냅샷은 14일 동안 사용하지 않으면 삭제된다.

 

간단하게 JVM 은 캐싱되어 있고 Class 파일만 새로 주입받아 실행속도가 개선되는 것이다.

 

 

AWS Lambda SnapStart – 함수 실행 속도 및 성능 가속화 기능 | Amazon Web Services

AWS의 고객은 AWS Lambda를 다양한 이유로 좋아해 주십니다. 개발 측면에서는 프로그래밍 모델이 간단하고 그 모델을 다른 AWS 서비스와 함께 쉽게 사용할 수 있다는 점을 높이 평가해주십니다. 운영

aws.amazon.com

 


SnapStart 작동 방식

 

 

Deployment Phase

  • 새로운 배포를 하는 동안 Lambda는 런타임을 생성하고 새 코드로 초기화 작업을 진행한다.
  • 초기화가 완료되면 메모리와 로컬 디스크의 상태를 스냅샷으로 생성한다.
  • Lambda 버전 배포 시 alias를 지정해서 배포하며, 배포가 완료되기 전까지는 이전 Lambda 버전을 호출하여 실행한다.
  • 새 Lambda 버전이 배포 완료되면 새 Lambda 버전을 가리키도록 Lambda alias를 업데이트한다.

 

Invocation Phase

  • 기존의 Cold Start 3가지 단계 ( Code 다운로드, 컨테이너 실행, Runtime 실행 )가 필요 없다,
  • 대신 Restore SnapThot 단계가 있고, 이 시간 동안에는 스냅샷을 로딩하여 초기의 상태로 빠르게 복원을 진행한다.
  • Restore Stage는 Cold Start 발생 조건에서만 실행한다.
  • Warm Start 조건에서는 Invoke Stage 만 진행한다.

 

 

AWS Lambda는 개발 측면에서는 프로그래밍 모델이 간단하고 그 모델을 다른 AWS 서비스와 함께 쉽게 사용할 수 있고

운영 측면에서는 변화하는 사용 패턴에 신속하게 대응할 수 있는 강력한 애플리케이션을 구축할 수 있다는 이점이 있다.

이러한 AWS 서비스를 사용하기 전에 해당 특징을 알고 적용한다면 최대로 활용해 볼 수 있을 것이다.

 

728x90
반응형