서버리스

훈이·2022년 10월 27일
0

서버리스(Serverless)

서버리스는 그대로 해석하면 서버가 없다라고 해석될 수 있지만 서버리스의 진짜 정의는 서버를 직접 관리할 필요가 없는 아키텍쳐를 뜻하며 서버리스 아키텍처라고도 부른다. 즉, 서버를 관리하거나 신경 쓸 필요 없도록 해준다.

서버리스 아키텍처의 구현 방식

FaaS(Function as a Service)

함수를 서비스로 제공하며, 사용자가 백엔드에서 작성한 코드를 서버리스 제공자의 서버에 업로드하면 해당 서버는 업로드한 코드를 함수 단위로 쪼개서 대기상태로 둔 다음 요청이 들어오면 대기상태의 함수를 실행시켜 처리한다.

FaaS 특징

  • Stateless
    FaaS는 함수가 실행되는 동안에만 자원을 할당하며, 함수가 항상 같은 머신에서 실행된다는 보장이 없다.
  • Ephemeral
    함수는 특정 이벤트가 발생했을 때만 컨테이너로서 배포되며, 실행이 끝난 후엔 자원이 회수되므로 일시적으로만 배포된다.

BaaS(Backend as a Service)

SNS연동이나 DB와 같이 백엔드에 필요한 기능들을 사용자가 직접 구현할 필요 없이 제공하는 API로 해당 기능을 구현할 수 있게 해준다.

서버리스의 장점

  • 이벤트 기반이기 때문에 비용이 저렴하다.
  • 인프라 구성, 운영, 보안 등에 신경쓰지 않고 비즈니스 로직에 집중할 수 있다.
  • 자동 스케일 업 및 스케일 다운이 가능하다.
  • 간단한 패키징 및 배포가 가능하다.
  • 릴리즈 주기 감소
  • 높은 생산성

서버리스의 단점

  • 실시간 서비스에는 적합하지 않다.
  • 클라우드 서비스 업체에 종속적이다.
  • 마이그레이션의 어려움이 있다.
  • 실행 시간에 한계가 있다.
  • 로컬 데이터를 사용할 수 없다.
  • 디버깅이나 테스팅에 불편하다.

참고한 사이트 :
https://jaehoney.tistory.com/77
https://dev-coco.tistory.com/171

profile
백엔드 개발자가 되자!

0개의 댓글