자동화&툴 리뷰

Artifact Keeper — Rust로 만든 오픈소스 범용 아티팩트 레지스트리 완벽 가이드

노동1호 2026. 5. 17. 04:04

Artifact Keeper — Rust로 만든 오픈소스 범용 아티팩트 레지스트리 완벽 가이드

Artifact Keeper — Rust로 만든 오픈소스 범용 아티팩트 레지스트리 완벽 가이드

오픈소스 패키지 레지스트리시장중 JFrog Artifactory나 Sonatype Nexus가 독점적으로 사용되면서, 특히 소규모 팀이나 비용 민감한 조직에서는 고가의 라이선스 비용에 부담을 느껴왔다. 하지만 최근 등장한 Artifact Keeper가 이격격에 변화를 주고 있다. Rust로 작성된 이 레지스트리는 45개 이상의 패키지 포맷을 네이티브 프로토콜로 지원하며, 무엇보다 MIT 라이선스로 완전한 오픈소스를 제공하고 있다.

Artifact Keeper란 무엇인가

Artifact Keeper는 셀프호스팅이 가능한 범용 아티팩트 레지스트리며, JFrog Artifactory와 Sonatype Nexus의 대안으로 개발된 프로젝트다. 가장 큰 차별점은 단순한 파일 저장소가 아니라 각 패키지 매니저의 네이티브 프로토콜을 직접 처리한다는 점이다. 따라서 Maven의 경우 실제 Maven 프로토콜을, NPM의 경우 npm registry 프로토콜을 그대로 이해하고 동작한다.

백엔드는 Rust와 Axum 프레임워크 기반으로 구축되어 있으며, 메타데이터와 설정 관리를 위해 PostgreSQL 16을 사용한다. 스토리지 백엔드는 파일시스템 또는 S3 호환 스토리지 중 선택 가능하며, 전체 시스템은 Docker Compose로 손쉽게 배포할 수 있다.

주요 기능 살펴보기

45개 이상의 패키지 포맷 지원

Artifact Keeper가 자랑하는 가장 큰 강점은 광범위한 포맷 지원이다. 다음 표는 지원되는 주요 포맷을 카테고리별로 정리한 것이다.

언어 및 런타임: Maven, Gradle, PyPI, NPM, Yarn, pnpm, Cargo, Go modules, RubyGems, Composer, Pub, CocoaPods, Swift Package Manager, CRAN, SBT, NuGet

컨테이너 및 인프라: Docker, OCI, Podman, Helm, Terraform, Vagrant

시스템 패키지: RPM, Debian, Alpine, Conda, OPKG

ML 및 AI: HuggingFace 모델 및 데이터셋, 일반 ML 아티팩트

편집기 확장: VS Code, Cursor, Windsurf, Kiro, JetBrains

기타: Conan, Git LFS, Bazel, Protobuf 등

45개가 넘지만 아직 여기에 포함되지 않는 포맷을 사용해야 한다면, WASM 플러그인 시스템을 통해 직접 포맷 핸들러를 구현할 수 있다.

저장소 모델

Artifact Keeper는 세 가지 유형의 저장소를 제공한다. Local 저장소는 사내에서 직접 패키지를 업로드하고 관리할 때 사용한다. Proxy 저장소는 npmjs.com, PyPI, Maven Central, Docker Hub 같은 공개 레지스트리를 캐시하여 CI/CD 파이프라인 속도를 향상시키고 네트워크 트래픽을 절감한다. Virtual 저장소는 여러 Local이나 Proxy 저장소를 하나의 URL 뒤에 묶어서, 지정된 순서대로 해석하게 해준다. 이 모델은 기존 Nexus나 Artifactory 사용자에게 매우 익숙한 구조다.

보안 및 품질 관리

보안 스캔 파이프라인으로 Trivy와 Grype를 사용한다. 컨테이너 이미지와 파일시스템 스캔 모두 지원하며, 취약점 점수화와 정책 엔진, 격리 워크플로우까지 제공한다. Debian, RPM, Alpine, Conda 패키지에 대해서는 GPG와 RSA 서명도 지원한다.

Artifact Keeper — Rust로 만든 오픈소스 범용 아티팩트 레지스트리 완벽 가이드

컨테이너 이미지는 DISA STIG 승인을 받은 Red Hat UBI 9 베이스 이미지로 빌드되며, 실행 시 root가 아닌 사용자로 동작하고 런타임에 쉘이나 패키지 매니저가 포함되지 않아 공격 표면이 최소화되어 있다.

인증 및 권한 관리

다양한 인증 방식을 지원한다. JWT, OpenID Connect, LDAP, SAML 2.0, API Token까지 다양한 환경에 맞게 선택할 수 있다. 역할 기반 접근 제어와 저장소 단위 권한 설정도 가능하여 팀규모화 프로젝트별로 세밀하게 권한을 관리할 수 있다.

Borg Replication — P2P 메시 기반 복제

흥미로운 기능 중 하나는 Borg Replication이다. P2P 메시 네트워크를 활용하여 아티팩트를 분산 복제하는 기능으로, 여러 지역에 분산된 개발팀이 동일한 아티팩트에 빠르게 접근할 수 있다. Recursive peer mesh와 swarm 기반 artifact distribution으로 구현되어 있다.

WASM 플러그인 시스템

WASM 플러그인 시스템을 통해 커스텀 패키지 포맷 핸들러를 추가할 수 있다. WIT 기반으로 정의된 인터페이스를 충족하는 WebAssembly 모듈을 Wasmtime 런타임에서 샌드박스 격리환경하 실행한다. CPU와 메모리 사용량 제한 및 핫 리로드도 지원한다.

설치 및 배포

Docker Compose를 사용하면 개발 환경에서 몇 분 안에 시작할 수 있다. 공식 저장소의 docker-compose.yml 파일 하나로 PostgreSQL, 백엔드, Web Dashboard, OpenSearch, 보안 스캔 도구까지 모든조건이 한번에 실행된다.

git clone https://github.com/artifact-keeper/artifact-keeper.gitcd artifact-keeperdocker compose up -d

실행 후 http://localhost:8080 에서 Web Dashboard에 접근할 수 있다. 기본적관리자 계정으로 로그인하여 저장소 생성과 패키지 업로드, 사용자 관리 등을 진행할 수 있다.

Kubernetes 환경에서는 Helm chart를 제공하고, Terraform/EKS/RDS/S3 구성은 별도의 IaC 저장소로 분리되어 있다. Prometheus 메트릭과 OpenTelemetry 트레이싱, Kubernetes health probe도 기본 지원된다.

대안과의 비교

주요 대안들과 비교했을 때 Artifact Keeper의 위치는 명확하다. JFrog Artifactory는 매우 성숙한 솔루션이지만 상용 라이선스 비용이 높고, Sonatype Nexus도 Community Edition에는 제약이 있다. Artifact Keeper는 MIT 라이선스로 모든 기능을 완전히 무료로 제공한다. 오픈소스면서도 enterprise 기능인 보안 스캔, SSO, RBAC, 레지스트리 복제를 모두 제공하는 것은 매력적이다.

특히 JFrog Artifactory에서Artifact Keeper로 마이그레이션하는 도구가 내장되어 있어, 기존에 Artifactory를 사용하고 있던 팀의 전환 장벽을 크게 낮추었다.

마치며

Artifact Keeper는 비용 부담 없이도 기업 수준의 패키지 관리 인프라를 구축하고 싶은 팀에게 적합하다. Rust의 성능과 안전성, MIT 라이선스의 완전한 자유도, 45개 이상의 포맷 지원, 그리고 내장된 보안 스캔과 복제 기능까지 갖춰있다. 온프레미스나 사내망에서 Maven, NPM, Docker, PyPI, Helm 등을 한 번에 관리하고 싶거나, 취약점 스캔과 서명, 격리, SSO, RBAC까지 원하는 팀이라면 충분히 검토해볼 만하다. 특히 기존 Artifactory나 Nexus 사용자가 전환을 고려하고 있다면, 내장된 마이그레이션 도구 덕분에 비교적 손쉽게 이전할 수 있을 것이다.


📚 출처

https://news.hada.io/topic?id=29536