서버리스의 환상
- 서버리스는 클라우드 기술의 핵심 트렌드로 자리 잡았다.
- 이 패러다임은 개발자들이 서버 관리의 부담 없이 비즈니스 로직에만 집중할 수 있도록 한다.
- 비용 지불 방식: 사용한 만큼만 비용을 지불하며, 운영 오버헤드는 사실상 제로에 가깝다.
- 여러 서버리스 데이터베이스가 시장에 등장했으며, Elastic, Confluent, Pinecone과 같은 기존 리더와 Neon, WarpStream, Upstash, Turbopuffer와 같은 새로운 도전자가 경쟁하고 있다.
기존 서버리스 데이터베이스의 문제점
- 많은 서버리스 데이터베이스는 진정한 서버리스가 아니다.
- 대부분의 서비스는 클라우드 네이티브 아키텍처에 기반하고 있으며, 이는 서버풀 시대를 위한 혁신적인 설계이다.
- 서버 클러스터를 운영하며, 복잡한 소프트웨어와 인간의 개입을 통해 부하를 예측하고 용량을 관리한다.
- 이러한 환상은 사용자에게 실질적인 문제를 야기한다.
비효율적인 아키텍처의 영향
- 아키텍처 불일치는 단순한 기술적 세부 사항이 아니라 사용자에게 실제 문제를 일으킨다.
- 사용자는 유휴 서버에 대한 비용을 지불하게 되며, 서버 클러스터는 항상 다양한 목적을 위해 실행된다.
- 확장성 문제: 새로운 서버를 클러스터에 추가하는 데 몇 분이 걸리며, 즉각적인 트래픽 급증을 처리할 수 없다.
- 제한된 선택권: 각 클라우드 지역에 대한 인프라 관리를 필요로 하므로, 사용자는 선택할 수 있는 서비스 지역이 제한된다.
지속 불가능한 모델
- 서버풀 아키텍처에 기반한 “서버리스” 데이터베이스는 지속 가능하지 않다.
- 제공자는 서버 클러스터 운영을 위해 상당한 투자 자금을 필요로 하며, 이로 인해 가격이 변경될 수 있다.
- 경량 사용자는 시스템을 보조하기 위해 과도한 요금을 지불하게 되고, 성공적인 사용자는 예상치 못한 가격 인상에 직면하게 된다.
서버리스 네이티브 아키텍처의 필요성
- 클라우드 컴퓨팅 초기에는 대부분의 “클라우드” 데이터베이스가 레거시 데이터베이스였다.
- 서버리스 네이티브 아키텍처는 인프라 관리의 모든 것을 클라우드 제공자에게 맡기며, 서버 클러스터 대신 무상태 함수와 서버리스 서비스를 사용한다.
- 이 접근 방식은 클라우드 인프라를 단일 대형 슈퍼컴퓨터로 취급하여 즉각적인 확장성과 진정한 요청당 지불 모델을 가능하게 한다.
- 리트머스 테스트: 데이터베이스가 진정한 서버리스 네이티브인지 확인하기 위해, Kubernetes 클러스터나 VM을 프로비저닝하지 않고 클라우드 계정에 배포할 수 있는지를 확인해야 한다.
LambdaDB 소개
- LambdaDB는 서버리스 네이티브로 구축된 새로운 검색 엔진이다.
- 이 시스템은 서버리스 기능과 리소스의 집합으로 운영되며, 데이터베이스 로직과 인프라를 완전히 분리한다.
- 사용자 요청은 지역 게이트웨이를 통해 흐르며, 요청 유형에 따라 제어 함수(Control Functions) 또는 데이터 함수(Data Functions)로 라우팅된다.
- 엔터프라이즈 기능: LambdaDB는 시점 복원 및 제로 복사 클로닝과 같은 기능을 제공하며, 인프라 관리가 필요 없다.
LambdaDB의 작동 방식
- LambdaDB 아키텍처: 모든 구성 요소는 서버리스 클라우드 서비스로 구축된다.
- 게이트웨이는 사용자 요청의 API 키를 검증하고, 요청을 제어 함수 또는 데이터 함수로 라우팅한다.
- 제어 함수는 CRUD 작업 및 데이터 관리 요청을 처리하며, 데이터 함수는 실제 데이터 쓰기 및 읽기를 수행한다.
- 쓰기 경로: Writer Function은 요청을 기록하고, 이를 내구성 있는 서버리스 쓰기 버퍼에 기록한 후 클라이언트에 응답한다.
비용 효율성의 역설
- LambdaDB는 서버풀 데이터베이스에 비해 컴퓨팅 비용을 줄인다.
- Lambda의 단위 가격이 EC2 인스턴스보다 높지만, 고가용성 및 내결함성을 보장하기 위해 필요한 중복성 덕분에 비용이 절감된다.
- 고정 용량의 낭비: 기업의 평균 컴퓨팅 활용도는 10-20%에 불과하여, 서버리스 컴퓨팅은 50-90%의 비용을 절감할 수 있다.
성능 및 확장성
- 성능 및 확장성: LambdaDB는 960차원 벡터를 사용하여 수백만 개의 벡터를 추가하는 실험을 통해 성능을 입증하였다.
- 쓰기 지연 시간: 10개의 초당 업서트에서 중앙값 지연 시간은 43ms이며, 트래픽이 100배 증가해도 지연 시간이 비슷하게 유지된다.
- 쿼리 지연 시간: 쿼리 지연 시간은 다양한 부하에서 안정적이며, 99번째 백분위수는 172ms에서 210ms 사이이다.
- 최적화 노력: 쿼리 함수의 지연 시간을 개선하기 위해 지속적으로 최적화하고 있으며, 서버리스 인프라도 개선되고 있다.
고객에게 제공되는 이점
- 비용 절감: LambdaDB는 유휴 서버가 없기 때문에 10배 이상 저렴하다.
- 즉각적이고 무한한 확장성: LambdaDB는 밀리초 내에 수천 개의 병렬 함수로 확장할 수 있다.
- 단순한 시작 및 확장: 강력한 AI 애플리케이션을 구축할 수 있으며, 성장함에 따라 아키텍처는 여전히 간단하고 비용 효율적이다.
- 엔터프라이즈 기능: 시점 복원 및 제로 복사 클로닝과 같은 기능을 제공하며, 복잡성이나 비용 없이 사용할 수 있다.
미래 계획 및 비전
- LambdaDB는 이미 수억 개의 문서에 대해 매일 수백만 개의 요청을 처리하고 있다.
- 장기 계획: 다른 데이터 모델(관계형 데이터, 스트림, 키-값, 그래프 등)을 지원할 계획이다.