What is serverless development? - Serverless
🌐 서버리스(ServerLess) 개념 💯 정리 (BaaS / FaaS)
Serverless: 개발자가 서버를 직접 프로비저닝, 패치, 운영할 필요 없이 클라우드 제공업체가 백엔드 로직(인프라)을 관리하는 컴퓨팅 모델
직역했을때는 단순히 서버가 없는 이지만, 정확하게는 프로젝트를 진행하면서 Server(나) 측에서 직접 서버를 관리하지 않아서 신경쓰지 않아도 되는 서버를 의미한다.
서버를 직접 관리하지 않아도 된다니.. 서버를 잘 모르는 나에게는 큰 행복이 아닐까?
등장 배경
서버리스의 반대라면 서버가 있다 일텐데, 기업에서는 보통 On-Premise(온프레미스) ⇒ 직접 서버 설치를 진행해왔다.(Off-Premise와 반대) 단순히 논리적 서버가아니라 하드웨어 부분과 소프트웨어 부분 둘다 직접 관리한다는 의미이다. 안그래도 AI 때문에 빠르게 바뀌는 세상에, 코딩하기 바쁘고 서버 관리하기도 어려울 때 우리는 클라우드를 많이 쓸 것이다.
클라우드 (IaaS / PaaS)
내가 알았던 Amazon은 물류 운송 기업이었는데 어느날 AWS EC2를 꺼내오며 클라우드 컴퓨팅이 등장하기 시작한다. 물리적인 서버를 설치하지 않고 최신식 서버를 빌려서 사용하는 것이다. 빌려서 사용하는 것이기 때문에 사소한 사고에 서버가 종료되는 걱정은 필요없어지며, 용량 증가에 유연하게 대응할 수 있게 되었다.
하지만 여전히 소프트웨어적인 부분은 사용자가 직접 관리한다. 운영체제, 데이터, 보안 등 신경써야하는 점, 사용자 바리에이션이 넓어 100명 밖에 사용하지 않는 서비스에 1000명분 대여 금액을 내야하고, 쓴만큼 지불한다고해도 서비스에 대한 기본 결제금액이 존재한다.
이때 서버리스가 등장하게 된다.
Serverless 서버리스
서버리스 컴퓨팅은 클라우드 서비스 업체가 특정 코드를 실행하는데 필요한 컴퓨팅 리소스와 스토리지만 동적으로 할당한 다음 그 부분에 대해서만 비용을 청구하는 클라우드 실행 모델이다.
이 뜻은 수행한 함수만큼만 돈을 내면 되는 것이다. (호출 횟수 + 실행 시간 + 메모리 크기가 핵심)