서버리스 뜻, 서버를 직접 관리하지 않는 클라우드 실행 방식
서버리스는 개발자가 서버를 직접 준비하거나 관리하지 않고, 필요한 순간에만 클라우드 사업자가 자원을 자동으로 배정해 코드를 실행하는 방식을 뜻한다. 이름과 달리 서버가 사라지는 것은 아니며, 서버를 운영하는 부담이 사업자 쪽으로 넘어간다고 이해하면 쉽다. 쓴 만큼만 요금을 내는 종량제 과금과, 트래픽에 맞춰 자동으로 늘고 주는 확장성이 대표적인 특징으로 알려져 있다.
서버리스는 정확히 무슨 뜻인가
서버리스는 서버 운영과 관리를 클라우드 사업자에게 맡기고, 개발자는 실행할 코드에만 집중하는 방식이다. 예전에는 서비스를 하나 띄우려면 서버를 빌리고, 운영체제를 깔고, 용량을 미리 계산해 준비해 두어야 했다. 서버리스에서는 이런 준비 작업이 대부분 사라진다. 코드를 올려 두면 요청이 들어오는 순간에만 자원이 배정되고, 처리가 끝나면 자원은 다시 회수된다.
그래서 서버리스는 특정 제품 하나를 가리키는 말이 아니라, 서버를 직접 신경 쓰지 않는 운영 형태 전체를 부르는 이름에 가깝다. 크게 나누면 코드 단위를 실행하는 서비스형 함수(FaaS)와, 인증이나 데이터 저장 같은 뒷단 기능을 빌려 쓰는 서비스형 백엔드(BaaS)로 구분하는 경우가 많다.
서버가 없다는 말은 사실일까
아니다. 서버는 여전히 존재하고, 어딘가의 데이터센터에서 실제로 돌아간다. 다만 그 서버를 누가 사고, 켜고, 고치고, 늘리는지가 달라질 뿐이다. 서버리스에서는 이 몫을 클라우드 사업자가 가져간다. 사용하는 사람은 서버가 몇 대인지, 사양이 어떤지 알 필요가 거의 없다.
이름에 '리스(less)'가 붙은 이유는 서버가 없어서가 아니라, 서버를 관리하는 수고가 개발자 시야에서 사라지기 때문이다. 수도꼭지를 틀면 물이 나오지만 상수도 설비를 직접 관리하지는 않는 것과 비슷하다. 필요한 만큼 쓰고, 관리는 공급하는 쪽이 맡는 구조다.
어떤 방식으로 작동하나
서버리스는 대체로 이벤트에 반응해 움직인다. 누군가 버튼을 누르거나, 파일이 올라오거나, 정해진 시각이 되면 그 신호에 맞춰 코드가 잠깐 실행된다. 일이 끝나면 실행 환경은 닫히고, 다음 요청이 올 때까지 아무 자원도 붙잡아 두지 않는다.
이런 구조 덕분에 요청이 몰리면 실행 단위가 자동으로 늘어나 동시에 여러 요청을 감당한다. 반대로 요청이 없으면 실행 자체가 일어나지 않으니 비용도 그만큼 줄어든다. 다만 한동안 호출이 없다가 다시 실행할 때 준비 시간이 조금 더 걸리기도 하는데, 이를 흔히 콜드 스타트라고 부른다.
주로 어디에 쓰이나
서버리스는 요청량이 들쭉날쭉하거나, 짧게 처리하고 끝나는 작업에 잘 어울린다고 알려져 있다. 이미지를 올리면 크기를 줄여 저장하는 처리, 정해진 시각에 도는 알림, 웹사이트 문의 양식 처리 같은 일이 여기에 해당한다.
초기 단계의 서비스나 트래픽을 예측하기 어려운 프로젝트에서도 쓰임새가 있다. 서버를 미리 크게 준비하지 않아도 되고, 이용량이 늘면 자동으로 확장되기 때문이다. 반대로 하루 종일 쉬지 않고 무겁게 돌아가는 작업은 서버리스보다 전용 서버가 더 맞을 수 있다.
장점은 무엇이고 한계는 무엇인가
가장 큰 장점은 관리 부담이 줄어든다는 점이다. 서버를 사고 고치는 대신 만들려는 기능에 시간을 더 쓸 수 있다. 쓴 만큼만 내는 과금이라 놀리는 자원에 나가는 비용을 아낄 여지도 있다. 트래픽에 맞춘 자동 확장 덕분에 갑작스러운 접속 증가에도 비교적 유연하게 대응한다.
물론 한계도 있다. 앞서 말한 콜드 스타트처럼 응답이 조금 느려지는 경우가 있고, 한 번에 실행할 수 있는 시간이나 처리 용량에 제한이 걸리기도 한다. 특정 사업자의 방식에 맞춰 개발하다 보면 나중에 다른 환경으로 옮기기가 까다로워질 수 있다. 문제가 생겼을 때 원인을 추적하기가 전통적인 서버보다 어렵다는 이야기도 나온다.
도입 전 살펴볼 점
서버리스가 늘 정답은 아니다. 서비스의 성격, 예상 트래픽, 응답 속도 요구 조건을 먼저 따져 보는 편이 좋다. 짧고 간헐적인 작업이 많다면 이점이 크지만, 항상 무겁게 돌아가는 시스템이라면 비용과 성능을 다시 계산해 볼 필요가 있다.
처음 접한다면 작은 기능 하나를 서버리스로 옮겨 시험해 보고, 비용과 속도를 직접 확인한 뒤 범위를 넓히는 방식이 안전하다. 서버리스는 만능 해법이라기보다, 상황에 맞게 골라 쓰는 선택지 가운데 하나로 보는 편이 현실적이다.