TIL / 람다(Lambda) 개념 및 장단점

flobeeee·2022년 10월 14일
0

Today I Learned

목록 보기
27/35

0. 서버리스란?

서버가 없는 게 아니라 서버에 대한 관리를 하지 않는 것.

클라우드 제공 업체가 클라우드 인프라와 어플리케이션의 스케일링을 모두 관리함.

개발자는 배포를 위해 코드만 컨테이너에 패키징하면 된다.

(백엔드를 작은 함수 단위로 쪼개서 람다 같은 직접 관리하지 않는 서버에 올린다.)

1. 람다란?

이벤트에 대한 응답으로 코드를 실행하고 자동으로 기본 컴퓨팅 리소스를 관리하는 서버리스 컴퓨팅 서비스이다.

HTTP요청, 버킷에 있는 객체에 대한 변경 등 다양한 이벤트에 대한 응답으로 코드를 자동 실행할 수 있다.

(유저가 입장할 때만 생성되는 인스턴스 던전 개념임)

2. 람다의 장점

  1. 새로운 언어를 배울 필요 없이 사용할 수 있다.
  2. 사용한 만큼만 비용 지불. 서버단위가 아닌 실행기간 만큼만 금액을 지불한다.
  3. 프로토타입처럼 빠르게 생성해야 하는 프로젝트에 적합
  4. 환경설정에 상관없이 코드에만 집중할 수 있다.
  5. 갑작스러운 수요를 예측하기 어려운 상황이 많을 때 적합 (스케일 관리)

3. 람다의 단점

  1. 콜드스타트: 평소에 자고 있다가 이벤트가 발생하면 깨는 개념이라, 시작시간이 상대적으로 소모된다.
    (항시 대기인 서버보다 상대적으로 오래걸림)
    → 실시간 서비스에 부적합
    → 보완방법 2가지 (돈을 많이 지불해서 보완, 일정 시간마다 계속 스타트 시키는 방법)
  2. 디도스 공격이나 의도적으로 트래픽을 높게 발생시키는 경우, 요금이 많이 나옴.
    보통 방화벽 같이 세우긴 함.
  3. 다른 서버리스 서비스로 옮기기 쉽지 않음.
  4. 최대 작업시간 15분 제한있음. (람다 어플리케이션으로 보완 가능)

4. 활용하는 작업 예시

  1. 수신되는 이미지를 대규모로 일괄 처리하는 작업
  2. 채팅봇
  3. 예정된 태스크
profile
기록하는 백엔드 개발자

0개의 댓글