서버리스 란??
서버(Server) + 리스(Less)의 합성어로 간혹 '서버가 없다'라고 문자 그대로 이해할 수 있지만, 절대 그렇지 않습니다. 서버리스는 클라우드 컴퓨팅의 모델 중 하나로 개발자가 서버를 직접 관리할 필요가 없는 아키텍처를 의미합니다. 예를들어, 서버의 사용자가 1000명이 될 걸 예상하고 그에 맞는 용량의 서비스를 구입했다면 실제 사용자가 1000명이든 0명이든 같은 금액을 내야 할 것입니다. 이는 크던 작던 손실을 일으키기 마련이지만 서버리스는 동적으로 서버의 자원을 할당합니다.
사용자가 없다면 자원을 할당하지 않고 대기하다 요청이 들어오면 그 때 자원을 할당해서 요청을 처리하고 다시 대기상태로 들어가게 됩니다. 즉, 자원을 효율적으로 사용할 수 있는 것입니다.
왜 서버리스가 탄생하였을까??
이전에는 직접 서버를 사야했습니다. 서버의 하드웨어, 소프트웨어 둘 다 돤리를 해야했고, 만약 누군가 코드를 뽑아버리거나 정전이라도 되는 날에는 서버가 다운되었다.. 웹사이트의 트래픽이 증가하고 유저가 들어오면 서버의 메모리가 충분하지 않아서 급하게 메모리를 사와 꽂는 경우도 허다합니다.
이후 아마존에서 돈을 내면 아마존의 최신 서버를 사용할 수 있는 'EC2'를 선보입니다.
구글, 아마존, MS의 서버를 돈내고 빌리면 그 회사들이 서버의 하드웨어 부분은 관리 해줍니다. 하지만 서버 소프트웨어는 관리를 직접 해야합니다.
클라우드 컴퓨팅의 등장
클라우드: 인터넷을 통해 액세스 할 수 있는 서버와 이러한 서버에서 작동하는 소프트웨어와 데이터베이스를 의미합니다.
서버리스의 장단점
가격이 저렴합니다
애플리케이션의 품질에 집중 가능합니다.
높은 가용석과 유연한 확장
Cold Start
클라우드 제공 플랫폼에 심하게 종속적
긴 시간을 요하는 작업에 불리합니다.