S3 기반 Docker 레지스트리, 쿼리 성능 문제 해결!

by DD
5개월 전
조회수 20

기존 Docker 레지스트리는 S3 기반으로, 메타데이터 쿼리 성능이 저조하다는 문제점을 지적함

SQLite를 활용하여 메타데이터를 저장하고, S3를 캐시로 사용하는 새로운 아키텍처를 제안함

개발자는 이 방식을 통해 레지스트리 쿼리의 속도와 효율성을 향상시킬 수 있으며, Turso와 같은 서비스 활용도 가능함

SQLite를 활용한 메타데이터 관리

기존 Docker 레지스트리는 S3에 모든 데이터를 저장하여 쿼리 성능 저하를 야기한다. 구체적으로, OCI 이미지의 메타데이터를 SQLite에 저장하고, S3를 캐싱 계층으로 활용하는 방식을 제안한다. 따라서, SQLite 쿼리를 통해 빠른 메타데이터 조회가 가능하며, S3의 데이터 무결성을 유지한다.

성능 및 비용 트레이드 오프

SQLite를 사용하면 쿼리 속도가 향상되지만, 데이터베이스 관리의 복잡성이 증가한다. 반면, Turso와 같은 서비스형 SQLite를 사용하면 백업 및 복제 문제를 해결할 수 있다. 결과적으로, S3 비용 절감쿼리 성능 향상 사이의 균형을 맞추는 것이 중요하며, 데이터 일관성 유지를 위한 전략이 필요하다.

실전 적용 가이드

새로운 레지스트리 구축 시, 부트스트랩 기능을 활용하여 기존 S3 데이터를 SQLite로 마이그레이션할 수 있다. 구체적으로, `skopeo copy` 명령어를 사용하여 이미지를 푸시하고, `podman run`으로 컨테이너를 실행하여 테스트할 수 있다. 따라서, HTTPS 지원과 같은 추가 기능을 구현하여 실제 운영 환경에 적용할 수 있다.

Registry you can actually query