[논문 리뷰] Snafu: Function-as-a-Service (FaaS) Runtime Design and Implementation
Snafu는 저비용·고성능으로 Python 및 다중 언어 함수를 호스팅하고 실행할 수 있도록 설계된 오픈소스이자 모듈식 Function-as-a-Service(FaaS) 런타임이다. 프로세스 내 실행과 컨테이너 기반 배포를 지원함으로써 빠른 프로토타이핑을 가능하게 하며, 고조회 빈도에서 AWS Lambda보다 우수한 성능-비용 효율성을 보이며, 최대 40.39의 유틸리티 지수를 기록하여 AWS Lambda의 5.02를 상회한다.
Snafu, or Snake Functions, is a modular system to host, execute and manage language-level functions offered as stateless (micro-)services to diverse external triggers. The system interfaces resemble those of commercial FaaS providers but its implementation provides distinct features which make it overall useful to research on FaaS and prototyping of FaaS-based applications. This paper argues about the system motivation in the presence of already existing alternatives, its design and architecture, the open source implementation and collected metrics which characterise the system.
연구 동기 및 목표
- 연구 및 프로토타이핑에 적합한 유연하고 설치가 쉬운 FaaS 런타임이 부족한 문제를 해결하기 위해, 상용 제공자 제약에서 자유로운 솔루션을 제공하고자 한다.
- 프로세스 내 및 컨테이너 기반 실행을 모두 지원하는 모듈식이고 오픈소스인 FaaS 시스템을 설계하고자 한다.
- 기본 功能을 구동하기 위해 설정 시간을 10분 이내로 줄여 빠른 프로토타이핑과 실험을 가능하게 하고자 한다.
- 고부하 환경에서 기존 오픈소스 및 상용 FaaS 런타임 대비 뛰어난 성능-비용 비율을 제공하는 경쟁력 있는 대안을 제공하고자 한다.
- 클라우드 네이티브 및 과학 계산 워크로드에서 단일 애플리케이션 아키텍처에서 세분화된 함수 기반 아키텍처로의 전환을 지원하고자 한다.
제안 방법
- Snafu는 기능을 상태 없는 단위로 호스팅하기 위해 모듈식 아키텍처를 사용하며, 프로세스 내 Python 실행과 컨테이너를 통한 외부 언어 함수 실행을 모두 지원한다.
- 소스 코드에서 호출 가능한 함수를 동적으로 추출함으로써, 명시적 함수 등록 없이도 레거시 코드베이스를 빠르게 변환할 수 있다.
- 시스템은 두 가지 배포 모드를 지원한다: 프로세스 내 실행(Snafu IP)과 Docker 기반 컨테이너화(Snafu Docker)이며, 각각 구성 가능한 인증 및 격리 수준을 제공한다.
- 성능 및 비용 메트릭은 다양한 구성과 클라우드 지역(us-west-1)에서 실행된 벤치마크 함수(fib(20))를 통해 수집된다.
- 성능 대비 비용을 비교하기 위해 유틸리티 지수를 cpm / (ppm × 1,000,000)로 계산하며, ppm은 시간 기반 또는 100만 회 호출 기반 가격에서 유도된다.
- 실제 가격과 측정된 호출 빈도를 기반으로 Snafu의 비용 및 성능을 AWS Lambda와 비교하는 실험을 수행한다.
실험 결과
연구 질문
- RQ1설정 오버헤드가 최소한인 가벼운 오픈소스 FaaS 런타임을 설계하여 빠른 프로토타이핑을 지원할 수 있는가?
- RQ2다양한 호출 빈도에서 자가 호스팅 FaaS 런타임의 성능 및 비용 효율성은 AWS Lambda와 비교해 어떻게 되는가?
- RQ3FaaS 워크로드에서 컨테이너 기반 실행 대비 프로세스 내 실행이 성능 향상과 비용 절감에 얼마나 기여하는가?
- RQ4모듈식 FaaS 아키텍처에서 격리, 인증, 순수 실행 속도 사이의 상호 트레이드오프는 어떠한가?
- RQ5Python 및 다중 언어 함수를 모두 지원하면서도 다양한 배포 옵션을 제공하는 FaaS 시스템을 구축할 수 있으며, 상용 및 오픈소스 대안과 경쟁할 수 있는가?
주요 결과
- Snafu IP는 유틸리티 지수 40.39를 기록하여 AWS Lambda의 5.02를 크게 앞서며 고빈도 워크로드에서 뛰어난 성능-비용 효율성을 보였다.
- 분당 2억 6천만 건 이상의 호출 빈도에서 Snafu는 EC2에 배포된 결과 AWS Lambda를 비용 효율성 면에서 초월하였으며, 부하가 증가할수록 성능 우위가 더욱 커졌다.
- Snafu의 프로세스 내 실행 모드는 최고의 유틸리티(40.39)를 기록했고, 항상 인증이 적용된 컨테이너 기반 실행은 최저의 유틸리티(16.07)를 기록하여 인증 오버헤드가 비용에 미치는 영향을 명확히 드러냈다.
- 의존성 설치 후 10분 이내로 운영 상태에 도달할 수 있는 Snafu의 최소 설정 시간은 프로토타이핑 및 연구에 적합한 낮은 노력 요구 수준을 보여준다.
- 시스템은 소스 코드에서 함수를 동적으로 추출할 수 있어, 명시적 설정 없이도 레거시 코드베이스를 FaaS로 신속하게 마이그레이션할 수 있다.
- 비록 장점이 많지만 Snafu의 성능은 고부하에서 내부 확장성 제약으로 인해 포화 상태에 도달하며, 약 6억 건의 분당 호출을 초과하면 비용이 지나치게 증가한다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.