피드로 돌아가기
InfoQInfoQ
Database

Rust 기반 Pluggable Storage를 통한 DynamoDB API 범용 어댑터 구현

ExtendDB: Open Source Amazon DynamoDB Compatible Adapter with Pluggable Storage Backends

Renato Losio2026년 6월 7일3intermediate

Context

특정 클라우드 벤더 종속성 및 Compliance 제약으로 인한 On-premises 환경 내 DynamoDB 워크로드 실행의 한계 발생. 기존 DynamoDB Local의 기능적 제한을 극복하고 다양한 Storage Backend를 선택할 수 있는 유연한 인터페이스 요구 증가.

Technical Solution

  • Rust 기반의 DynamoDB Wire Protocol 구현을 통한 Application과 Storage 간의 Translation Layer 구축
  • Storage Trait 정의를 통해 PostgreSQL, Cassandra, MySQL 등 다양한 Backend를 독립적으로 확장 가능한 Pluggable Architecture 설계
  • Core(타입 및 검증), Engine(API 시맨틱), Server(HTTP 및 관리 API)로 관심사를 분리한 Rust Crate 구조 적용
  • SigV4 Authentication 및 Local IAM-like Credential Store 구현을 통한 기존 AWS SDK 호환성 유지
  • 단일 바이너리 형태로 배포하여 외부 Runtime Dependency를 제거한 경량 인프라 구성

Impact

  • MacBook(16 core) 환경에서 Concurrency 10 설정 시 update_item의 p90 Latency 300ms 및 Read p90 Latency 20ms 기록

1. 특정 API 프로토콜을 추상화하여 다양한 저장소에 매핑하는 Adapter Pattern 검토

2. Storage Trait와 같은 인터페이스 정의를 통한 Backend 교체 가능성 확보

3. 고성능 시스템 구축 시 Rust의 Crate 기반 모듈화를 통한 관심사 분리 적용

원문 읽기