오늘의 공부 👍
오늘은 서버리스에 대해서 알아보겠습니다.
📝 서버리스
- 서버를 직접 관리할 필요가 없는 아키텍처를 뜻해서 서버리스 아키텍처(Serverless Architecture)라고 부른다.
- 서버를 관리하거나 신경 쓸 필요가 없다는 뜻이다.
▷ 구현 방식
▶ BaaS (Backend as a Service)
- 일반적으로 SPA, 안드로이드와 같은 클라이언트 중심으로 개발된 애플리케이션이다.
- 클라이언트단에서 Baas가 제공하는 인증, DB, 사용자 관리 등과 같은 외부 서비스를 사용해서 대부분의 비즈니스 로직을 처리한다.
▶ FaaS (Function as a Service)
- 무상태(Stateless) 함수가 서버 측 비즈니스 로직을 포함한다.
- 백엔드를 작은 함수단으로 나눠서 사용자가 직접 관리하지 않는 서버로 올린다.
- 함수들은 특정한 조건 또는 주기, 요청 등으로 트리거 되어서 서버가 알아서 실행되고 종료된다.
- 주로 서버리스라 하면 FaaS에 더 가깝다.
▷ 장점
- 일정 주기, 조건 등에 함수를 호출하므로 리소스를 낭비하지 않게 되어서 비용이 저렴하다.
- 인프라 구성, 운영, 보안 등에 신경쓰지 않고 비즈니스 로직에 집중할 수 있다.
- 자동 스케일 업 및 스케일 다운이 가능하다.
- 릴리즈 주기가 감소한다.
▷ 단점
- 실시간 서비스에는 적합하지 않다.
- 항시 실행 중인 서버랑 달리, 트리거에 의해 서버를 실행하고 종료하기를 반복하기 때문에 실행 대기 시간이 오래 걸린다.
- 클라우드 서비스 업체에 종속적이다.
- 디버깅이나 테스팅에 불편하다.
- 로컬 데이터를 사용할 수 없다. (Stateless)
마무리 👍
출처 및 참고
나무위키
서버리스 아키텍쳐(Serverless)란?
서버리스(Serverless)란 무엇인가?