On-premise 시설을 관리해야 하는 문제에서 벗어나기 위해 클라우드 서비스를 선택했는데, 인스턴스들을 관리해야 하는 상황에 봉착했다. 지속적인 관리라는 문제에서 벗어나기 위해 선택된 방법 중 하나가 바로 서버리스 컴퓨팅이다.
IT 인프라를 별도의 준비 없이, 필요한 기능을 Function의 형태로 구현하고, Auto Scaling으로 리소스 수요의 변동에 대응하며 Backend를 대체한다. 여러 클라우드 서비스의 형태 중 FaaS(Function as a Service)가 Serverless Computing Service를 의미한다.
* FaaS(Function as a Service)
: 기능 단위로 서비스를 제공, 개발자가 서버/리소스의 provisioning/관리 등의 문제에서 벗어날 수 있도록 한다.
예시 : AWS Lambda, Google Cloud Functions, MS Azure Functions 등
Backend를 추상화했다고 해서 BaaS(Backend as a Service)라고도 한다.
개발자가 서버를 관리할 필요 없이 App을 빌드/실행할 수 있도록 하는 Cloud Native 개발 모델이다.
서버리스라고는 해도 서버가 있긴 한데, App 개발에서와는 달리 추상화되어 있다.
FaaS 모델에서 업체가 제공하는 비중을 보면 알 수 있듯, 클라우드 제공업체가 서버 인프라에 대한 일상적 작업들을 처리해 준다. 개발자는 코드를 컨테이너에 Packaging하면 끝이다. 배포된 후에는 필요에 따라 자동으로 Scaling된다. 요금은 일반적으로는 On-demand 형태라고 한다. Scaling을 사용자 스스로 해야 하는 IaaS와는 다르다.
실행 장소는 클라우드 업체가 운영하는 가상화된 컨테이너. 개발자는 필요한 기능들을 함수의 형태로 구현해두고, 필요에 따라 호출해서 사용한다.
설명만 들으면 개발할 때 무조건 써야 할 엄청난 기술 같지만, 막상 이것도 뒤져보면 단점도 있다.
모든 서비스가 그러하듯, 상황과 용도에 맞다면 사용하는 것이 좋다.
출처1 : https://www.redhat.com/ko/topics/cloud-native-apps/what-is-serverless
출처2 : https://brunch.co.kr/@sangjinkang/12
'IT 지식' 카테고리의 다른 글
Load Balancer (0) | 2021.07.18 |
---|---|
AMI, Image (0) | 2021.07.18 |
SSH (0) | 2021.07.18 |
가상화(Virtualization) (0) | 2021.07.15 |
CPU, Storage (0) | 2021.07.15 |
댓글