클라우드 스토리지 서비스인 S3(Simple Storage Service)의 느린 응답 속도와 높은 비용은 많은 개발자와 기업의 고민거리였습니다. 이러한 문제를 해결하기 위해 'S3-액셀러레이터(S3-Accelerator)'라는 새로운 오픈소스 프로젝트가 등장했습니다. 이 솔루션은 S3 호환 스토리지를 위한 NVMe 기반의 읽기 캐시로, 밀리초 미만의 응답 속도를 제공하며, 클러스터 크기 조정에도 캐시를 따뜻하게 유지하는 독특한 기능을 갖추고 있습니다.
S3-액셀러레이터는 특히 자주 접근하는 데이터(핫 객체)를 효율적으로 관리합니다. 클러스터 노드가 추가되거나 제거될 때 재매핑을 최소화하는 랑데부 해싱(rendezvous hashing)을 사용하며, 새로운 노드가 추가되면 기존 노드에서 데이터를 가져와 S3로 직접 요청하는 대신 캐시를 유지합니다. 또한, 클라우드플레어(Cloudflare)의 학습을 반영하여 첫 번째 읽기보다는 두 번째 읽기부터 디스크에 캐시하는 전략을 채택, 불필요한 일회성 읽기가 캐시를 오염시키는 것을 방지합니다. 벤치마크 결과, 4KB 범위의 작은 객체 읽기에서 S3 대비 최대 89배 빠른 성능을 보였으며, 256MB 대용량 객체 스트리밍에서도 2배 이상의 속도 향상을 기록했습니다.
이 프로젝트는 기존 S3 SDK를 그대로 사용할 수 있어 도입 장벽이 낮습니다. 클라이언트는 S3-액셀러레이터 캐시를 S3 엔드포인트처럼 지정하기만 하면 됩니다. 이는 개발자들이 애플리케이션 코드를 크게 변경하지 않고도 S3 성능을 극대화할 수 있음을 의미합니다. S3-액셀러레이터는 사이드카(Sidecar) 방식이나 게이트웨이 티어(Gateway tier) 방식 등 다양한 배포 모드를 지원하여, 사용 환경에 맞춰 유연하게 적용할 수 있습니다. 이러한 혁신적인 접근 방식은 S3를 사용하는 모든 서비스의 성능을 한 단계 끌어올릴 잠재력을 가지고 있습니다.