2023년 08월 25일
서버리스(Serverless)를 직역하면 서버가 없다
라는 의미이다. 하지만 사실상 서버가 없다는 것이 아니다. 개발자가 서버를 직접 관리할 필요가 없는 아키텍처를 말한다.
서버리스의 대표적이 기술로는 BaaS(Backend as a Service) 혹은 **FaaS(Function as a Service)**가 있다. BaaS를 제공하는 서비스 중에선, Firebase, Parse, Kinvey 등이 있고, FaaS를 제공하는 서비스 중에선, AWS Lambda
, Azure Functions, Google Cloud Functions 등이 있다.
시스템에서 필요한 모든 인프라를 직접 관리하는 것을 의미한다. 공간, 하드웨어, 네트워크, 운영체제 등 모두 직접 관리하는 것이다. 단점은 시간과 비용 소모가 크다.
서버, 스토리지, 네트워킹 및 가상화된 컴퓨팅 인프라를 제공한다. 해당 서비스 모델을 제공받는 클라이언트는 서버자원, 네트워크, 전력 등의 인프라를 직접 구축할 필요 없이 관리자 패널에서 인프라를 구성하고 사용하면 된다. 가상머신을 만들고, 네트워크를 설정하고, 하드웨어도 설정하고, 거기에 운영체제를 설치해서 애플리케이션을 구동 할 수 있고 사용량을 쉽게 모니터링 할 수 있다. 또한 트래픽이 증가하거나 감소함에 따라 유연한 방식으로 컴퓨팅 리소스를 운영할 수 있다. IaaS의 예시로는 AWS, Microsoft Azure 등이 있다.
IaaS 에서 한번 더 추상화된 모델이라고 생각하면 된다. 네트워크, 그리고 런타임까지 제공된다. 해당 서비스 모델을 제공받는 클라이언트는 응용 프로그램을 구축하는 데에만 집중할 수 있고 애플리케이션만 배포하면 바로 구동시킬 수 있게 된다. PaaS의 예시로는 Hiroku, AWS Elastic Beanstalk, Azure App Services 등이 있다. 이를 사용하면 Auto Scaling 및 Load Balancing 도 손쉽게 적용 할 수 있다.
<aside> 💡 - 오토 스케일링(Auto Scaling): 통신 데이터 양에 따른 부하에 따라 자동으로 가상 서버의 대수를 증감시키는 기능
- 로드 밸런싱(Load Balancing): 통신 데이터를 나눠 여러 가상 서버에 전달하여 분산 처리하는 기술
</aside>