서버리스는 클라우드 컴퓨팅 모델의 한 형태입니다. 개발자가 서버를 직접 관리하거나 설정하지 않고 애플리케이션을 개발하고 실행할 수 있도록 해주는 서비스입니다. 서버리스(Serveless) 말은 서버가 없다는 뜻이지만 실제로 서버가 없는 게 아니라, 개발자가 서버 관리에 신경 쓰지 않아도 된다.라는 점을 서버리스라고 합니다.
특징
1. 위에서 말했던 것처럼 관리하지 않아도 됩니다.
- 개발자는 인프라를 설정하거나 관리하지 않아도 되고, 클라우드 제공자가 서버의 프로비저닝, 유지보수, 확장 등을 처리합니다.
2. 요청 기반 실행으로 원할때 실행되게 만들 수 있습니다.
- 서버리스 애플리케이션은 이벤트에 의해 작동됩니다. 예를 들어, HTTP 요청, 데이터베이스 변경 요청 등이 트리거가 될 수 있습니다.
3. 자동 확장 할당을 지원해 서버가 다운될 확률이 적습니다.
- 애플리케이션의 사용량에 따라 클라우드 제공자가 자동으로 리소스를 확장하거나 축소합니다.
- 트래픽이 많아지면 더 많은 리소스를 할당하고, 트래픽이 줄어들면 리소스를 줄여 비용을 절감합니다.
4. 기초자금과 비용 절감
- 자신의 서버를 구입하면 한 번에 나가는 돈이 많고 그 후에는 관리에 따른 비용만 내면 되지만 서버리스에서는 딱 자신이 사용한 리소스만큼만 비용을 지불합니다.
프로비저닝 ( Provisioning ) :
어떤 종류의 서비스든 사용자의 요구에 맞게 시스템 자체를 제공하는 것을 프로비저닝이라고 합니다.
서버리스는 기존에 IaaS, PaaS와 다르게 자원 동적으로 할당합니다.
이 말은 사용자가 있을 때만 자원을 할당해서 요청을 처리하고 다시 대기 상태가 된다는 말입니다.
이 방식을 사용하면 비용 또한 대기 상태를 제외한 실제 사용한 자원에 대한 돈만 청구가 되기 때문에 매우 효율적입니다.
더 나아가 서버는 클라우드 제공 기업에서 모두 관리하기 때문에 사용자는 업데이트, 보안 등과 같은 서버에 대한 관리를 크게 신경 쓸 필요가 없어집니다. 서버보다는 개발에 더 집중할 수 있게 되겠죠?
따라서 이 모든 게 장점이 될 수 있습니다.
간단하게 개발의 효율성 향상부터 시작해 비용 부분에서도 절감시킬 수 있고 개발 시간도 단축시킬 수 있을 것입니다.
하지만 장점이 많은 만큼 단점도 분명 존재합니다.
단점으로는
- 실행 시간제한이 걸려 있는 경우가 많습니다. 대부분의 서버리스 플랫폼은 함수 실행 시간에 제한이 있습니다. 가장 잘 알려진 AWS Lambda는 최대 15분이라는 제한이 있습니다.
- 클라우드에 대한 의존성이 높아집니다. 그 애플리케이션이 종속될 가능성이 있습니다.
- 디버깅의 어려움도 있습니다. 분산 환경에서 로그를 척하거나 디버깅하는 것이 복잡할 수 있습니다.
- 마지막으로 자신의 서버가 아니다 보니 보안적으로 완벽한 안전을 책임질 수 없습니다. 코드가 유출된 거나한 문제에서 정말 자유로울 수 없습니다.
분류
서버 리스는 FaaS와 BaaS로 나눌 수 있다고 합니다.
FaaS ( Function as a Service )
영어를 보시면 뜻을 할 수 있습니다. 함수에 대한 서비스, 즉 함수를 서비스로 제공하는 서비스입니다.
사용자가 작성한 코드를 서버리스 서버에 업로드하게 되면 해당 서버는 업로드한 코드를 함수 단위로 나눠서 대기 상태로 나눕니다 그러다 요청이 들어오면 서버가 대기 상태였던 함수를 실행시킴으로써 작동합니다. 당연하게도 이 실행이 끝나면 다시 대기 상태로 들어갑니다. 그럼 비용은 함수 호출 횟수에 따라 청구되게 됩니다.
대표적으로 AWS에 Lambda가 있겠습니다.
BaaS (Backend as a Service )
위 서비스는 영어처럼 개발에 필요한 여러 기능을 API로 제공하는 서비스입니다.
쉽게 말해 SNS연동이나 DB와 같은 백엔드에 필요한 기능들을 사용자가 직접 구현할 필요 없이 제공하는 API로 해당 기능을 구현할 수 있게 만들어 줍니다. 더 간단하게 BaaS를 제공해 주는 제공자가 백엔드 개발 환경까지 준다라고 생각하면 편할 것 같습니다.
대표적으로 Firebase가 있습니다.
마무리
AWS에서 열었던 흑백 개발자 프로그램에 참여해서 챗봇을 만들 때 처음 AWS Lambda를 사용해 봤고 그러다 보니 서버리스에 관심이 생겨서 이렇게 조사하게 되었는데 단점도 있지만 그래도 클라우드라는 기술은 혁신이 맞는 것 같다.
'백엔드' 카테고리의 다른 글
CORS란? (0) | 2025.02.07 |
---|---|
람다 표현식 (0) | 2024.12.30 |
JPA vs Mybatis (0) | 2024.11.25 |
런타임 데이터 영역 (0) | 2024.08.14 |
JAVA와 JVM (0) | 2024.08.12 |