| Howon Jeong DevOps |
Sungwoo Choi Fullstack |
Hyeonmin Cho Infra |
Yeongbin Jo Infra |
Jaejun Lee Monitoring |
| Infrastructure |
|
| WASM Build |
|
| Back-End |
|
| Front-End |
|
| CI/CD |
|
| Monitoring |
|
AWS Lambda보다 빠르고 Docker보다 안전한, 차세대 WASM 기반 서버리스 플랫폼
- 프로젝트 기간: 2025.11.28 - 2025.12.07
- 프로젝트 목표: 기존 VM/Container 기반 FaaS가 가진 Cold Start 지연과 보안 취약점(Container Escape) 문제를 해결
- Problem: 기존 VM/Container 기반 FaaS는 게스트 OS 부팅 및 라이브러리 로딩으로 인해 무겁고 느린 콜드 스타트(Cold Start) 문제가 발생합니다.
- Solution: WebAssembly(WASM) 기술을 도입하여 컨테이너 레이어를 제거했습니다. 무거운 가상머신 부팅 단계를 물리적으로 생략하고 단순 메모리 할당만으로 코드를 즉시 구동하여, Docker Container 대비 10~100배 빠른 기동 시간을 달성했습니다.
- Problem: 컨테이너 환경은 호스트 OS와 커널을 공유하므로, 탈취 시 호스트까지 위험해지는 Container Escape 보안 이슈가 존재합니다.
- Solution: WASM은 메모리 샌드박싱(Memory Sandboxing) 환경에서 실행됩니다. 시스템 콜 접근을 원천적으로 제한하여 완벽한 격리 수준을 제공하며, 악의적인 코드 실행 및 해킹 위험을 최소화했습니다.
- 인터프리터 언어와 달리, WASM은 기계어에 가까운 바이너리 포맷을 사용하여 네이티브 코드 급의 처리 속도를 제공합니다. 특히 ARM 아키텍처와의 최적화를 통해 고성능 처리가 가능합니다.
AWS Cloud 환경 위에 Terraform을 사용하여 인프라를 프로비저닝하였으며, kOps를 통해 Self-managed Kubernetes 클러스터를 구축했습니다.
- High Availability (HA): 이중화된 가용 영역(Multi-AZ) 구성을 통해 시스템 안정성을 확보했습니다.
- Cost Optimization:
- ARM Architecture: 가성비가 뛰어난 ARM 기반 인스턴스를 적극 도입했습니다.
- Spot Instances: 상태 저장이 필요 없는(Stateless) WASM 실행 노드는 Spot Instance를 활용하여 비용을 획기적으로 절감했습니다. 반면, 관리형 노드(Control Plane)는 On-Demand 인스턴스를 사용하여 안정성을 보장했습니다.
- CloudFront: 정적 리소스에 대한 캐싱을 통해 트래픽 비용을 최적화했습니다.
- Scalability: WASM Build 노드와 Function 실행 노드를 분리하여 API 병목을 제거하고, Function 노드만 독립적으로 오토 스케일링 되도록 설계했습니다.
사용자가 코드를 제출하면 다음과 같은 파이프라인을 거쳐 배포됩니다:
- Code Validation:
mypy등을 이용해 코드 문법 및 타입을 검증합니다. - WASM Build: 검증된 코드는
spin build프로세스를 통해 WASM 바이너리로 빌드됩니다. - OCI Registry Push: 빌드된 아티팩트는 OCI 호환 레지스트리로 배포되어 실행 대기 상태가 됩니다.
WASM 런타임을 통해 즉시 함수가 실행되는 과정입니다:
- Request: 클라이언트가 HTTP 요청을 통해 함수를 호출합니다.
- SpinKube Execution: Kubernetes 상의 SpinKube가 OCI 레지스트리에서 WASM 모듈을 페치(Fetch)합니다.
- Instant Run: 별도의 컨테이너 부팅 없이, 샌드박스 환경에서 함수가 즉시 실행되고 결과가 반환됩니다.
- Tools: Prometheus, Grafana, Loki, Promtail
- Implementation: 각 실행 함수(Function)마다의 리소스 사용량과 로그 정보를 실시간으로 수집하여 관제할 수 있는 대시보드를 구축했습니다. 코드 작성부터 실행, 모니터링까지 이어지는 완전한 서버리스 파이프라인을 시각화했습니다.
현재 구현된 기능 외에, 더 고도화된 서버리스 플랫폼을 위해 다음과 같은 기능을 계획하고 있습니다.
- Event-Driven Scaling (KEDA): 현재 CPU 사용량 기반의 HPA를 넘어, **KEDA(Kubernetes Event-driven Autoscaling)**를 도입하여 실제 요청량(Request rate)에 따라 0에서 N까지 정밀하게 스케일링되는 구조로 발전시킬 예정입니다.
- Advanced Observability: OpenTelemetry와 Grafana Tempo를 도입하여 분산 트레이싱 환경을 구축, 각 함수의 호출 흐름과 병목 지점을 추적하는 고도화된 분석 환경을 제공할 계획입니다.





