진지한 개발자

Lambda 본문

IT/AWS

Lambda

제이_엔 2024. 2. 8. 14:13
728x90

AWS Lambda

  • 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스

  • Go, Java, JavaScript, Python, Ruby 등 다수의 언어로 람다함수 만들수 있음

Serverless

  • 람다는 서버리스 컴퓨팅 서비스

  • 서버리스는 개발자가 서버를 관리하지 않을 뿐 결국 클라우드 서비스가 처리하는 서버를 관리함

  • 서버리스 컴퓨팅 기술은 클라우드가 어떤 방식으로 관리를 하는지를 기준으로 BaaS와 FaaS로 나눌 수 있음

1. BaaS (Backend as a Service)

  • 보통의 서버 개발을 할때 서버뿐만이 아니라 데이터 저장을 위한 데이터베이스, 유저인증기술, 이미지를 저장할 공간 등도 함께 구성해야 함
  • BaaS는 위처럼 서버 개발에 필요한 데이터베이스, SNS로그인 연동, 객체 저장소 등을 자체 API로 제공을 해주는 서비스임. 대표적으로 Firebase와 같은 서비스가 있음
  • Lambda 는 FaaS 서버리스 기술 임

주요 사용사례

  • **S3 + Lambda** : AWS S3의 특정이벤트(이미지 업로드 등)에 대응
  • **CloudWatch + Lambda** : AWS CloudWatch에 로그이벤트(특정 패턴 등록 가능) 에 대응
  • **API Gateway + Lambda** : API Gateway로 들어오는 HTTP 요청을 람다 함수를 사용해 응답처리
  • **SQS + Lambda** : AWS SQS 등으로 들어온 이벤트를 확인 후 비동기로 람다 함수를 이용해 작업처리

장점

  • 실행횟수에 비례하여 비용을 청구 (100만번 실행당 0.2$)
  • 자동 스케일업, 높은 가용성 : 요청이 들어올 때 동적으로 자원을 할당하고 스케일링을 지원함
  • 빠른 제품 출시 : 서버관리에 신경 쓸 필요없이 코드에만 집중할 수 있음

단점

  • cold start (Lambda가 깰때 걸리는 시간)
    • 람다는 처음 호출한다면 Cold Start를 하게 됨. 이 경우 초기 지연시간이 발생하고 이후 Warm 상태를 유지하며 이때의 경우는 람다를 다시 호출해도 지연시간이 발생하지 않고 빠르게 응답하게 됨. 그러다 약 5분여 이상 호출이 되지 않는다면 Cold상태로 바뀌어 사용자는 다시 지연시간을 경험하게 됨

728x90

'IT > AWS' 카테고리의 다른 글

NLB load balancing  (0) 2024.02.17
AWS VPN  (0) 2024.02.17
Lambda  (0) 2024.01.24
ElastiCache Redis  (1) 2024.01.24
Route53  (1) 2024.01.24