새로운 오픈소스 컨테이너 이미지 및 아티팩트 레지스트리 'zot'이 개발자들 사이에서 주목받고 있습니다. 이 레지스트리는 OCI(Open Container Initiative) Distribution/Image Specification을 기반으로 설계되었으며, 특히 가볍고 유연한 아키텍처가 특징입니다. 단일 Go 바이너리로 정적 빌드되어 실행되며, 기본 설정에서는 PostgreSQL이나 Redis 같은 별도의 데이터베이스 서비스를 필요로 하지 않아 매우 간편하게 배포하고 운영할 수 있습니다.
zot은 모든 기능이 포함된 'Full' 빌드와 핵심 레지스트리 기능만 담은 'Minimal' 빌드를 제공하며, 부가 기능은 확장(extension) 형태로 필요한 것만 활성화할 수 있습니다. 작은 환경에서는 로컬 파일 시스템만 지정하여 단일 zot 프로세스로 레지스트리를 구성할 수 있습니다. 가비지 컬렉션(Garbage Collection), 중복 제거(deduplication), 보존 정책(retention policy) 등 기본적인 스토리지 관리 기능을 자체 제공하며, TLS 인증서와 개인 키를 직접 지정할 수 있어 별도의 리버스 프록시(reverse proxy) 없이도 TLS(전송 계층 보안)를 구성할 수 있습니다. 또한, AWS S3, Google Cloud Storage, Azure Blob Storage 등 다양한 오브젝트 스토리지(object storage)와 연동하여 이미지 저장소를 확장할 수 있으며, 필요시 여러 zot 인스턴스를 활용한 고가용성(HA) 및 스케일아웃(scale-out) 구성도 지원합니다.
zot의 가장 큰 장점은 유연한 확장성입니다. 단일 인스턴스로 시작하여 트래픽이 증가하면 로드 밸런서(Load Balancer)와 오브젝트 스토리지, 공유 메타데이터 백엔드(Redis 또는 DynamoDB)를 활용하여 여러 zot 인스턴스로 확장할 수 있습니다. 이는 처음부터 복잡한 클러스터를 구성할 필요 없이, 필요에 따라 점진적으로 시스템을 확장할 수 있다는 의미입니다. 또한, 다른 OCI 레지스트리를 주기적으로 미러링(mirroring)하거나 온디맨드 풀스루 캐시(on-demand pull-through cache)로 사용할 수 있어, 도커 허브(Docker Hub)와 같은 외부 레지스트리 접근을 줄이고 사내 CI/CD 환경의 안정성을 높이는 데 유용합니다.
이러한 zot의 등장은 기존의 무겁고 복잡한 통합형 레지스트리 솔루션에 대한 매력적인 대안을 제시합니다. 하버(Harbor)처럼 복제, 스캐너, 프로젝트 관리 등 다양한 기능을 적극적으로 활용하는 환경에서는 통합형 레지스트리가 더 적합할 수 있습니다. 하지만 단순히 이미지를 푸시(Push)/풀(Pull)하고 외부 레지스트리의 프록시 캐시(proxy cache)로 사용하려는 목적이라면, 여러 서비스와 데이터베이스를 함께 운영할 필요가 없는 zot이 훨씬 효율적이고 경제적인 선택지가 될 수 있습니다. 이는 특히 리소스가 제한적인 소규모 팀이나 개인 개발자에게 큰 이점으로 작용할 것입니다.