팀들이 Weaviate에서 Zilliz Cloud로 마이그레이션하는 이유 — 그리고 이를 원활하게 수행하는 방법
벡터 데이터베이스는 오늘날 AI 및 검색 애플리케이션의 중추로, 시맨틱 검색부터 RAG 파이프라인까지 모든 것을 지원합니다. Weaviate는 많은 팀이 빠르게 시작할 수 있도록 도왔지만, 프로덕션 워크로드를 확장하려면 더 견고하고 효율적인 기반이 필요한 경우가 많습니다.
바로 여기에 Milvus와 Zilliz Cloud(완전 관리형 Milvus 서비스)가 등장합니다 — 동일한 개발자 친화적 경험에 엔터프라이즈급 확장성, 성능, 안정성을 제공합니다.
이 글에서는 더 많은 팀이 Weaviate에서 Milvus/Zilliz Cloud로 이동하는 이유, 전환할 가치가 있게 만드는 아키텍처상의 차이, 그리고 몇 단계만으로 워크로드를 마이그레이션하는 방법을 살펴보겠습니다.
Weaviate vs. Milvus/Zilliz Cloud: 팀들이 전환하는 이유
Weaviate는 복잡한 확장을 요구하지 않는 소규모 워크로드나 프로토타입에 좋은 선택입니다. 하지만 데이터 볼륨이 증가하고 워크로드가 다양해지면, 팀들은 종종 그 아키텍처적 한계에 부딪힙니다. Weaviate를 확장하는 것은 비용이 많이 들고, 운영 부담이 크며, 성능 예측 가능성이 낮아질 수 있습니다.
Milvus는 대규모 고성능 워크로드를 위해 특별히 설계된 오픈소스 벡터 데이터베이스로, 분산 아키텍처, 유연한 인덱싱, 클라우드 네이티브 설계를 갖추고 있습니다. Zilliz Cloud는 이 기반을 엔터프라이즈급 보안, 복원력, 무운영 관리로 확장합니다.
다음은 이들을 비교한 내용이며 — 많은 팀이 전환하는 이유입니다:
1. 대규모 성능 및 인덱싱
Weaviate는 주로 HNSW 인덱스에 의존하는데, 이는 작은 데이터셋에서는 잘 작동하지만 데이터가 수억 개의 벡터에 도달하면 메모리를 많이 사용하고 비용이 높아집니다.
반면 Milvus는 다양한 워크로드에 대해 정확도, 속도, 비용의 균형을 맞출 수 있도록 HNSW, DiskANN, IVF, SCANN, GPU 가속, RABITQ 인덱스를 포함한 폭넓은 인덱싱 전략을 제공합니다. 특히 DiskANN은 비용과 성능의 균형을 맞춰야 하는 대규모 데이터셋에 이상적입니다. 최소한의 RAM 사용으로 수십억 개의 벡터에 대한 디스크 기반 쿼리를 가능하게 하며 — 대규모 분석이나 오프라인 검색에 완벽합니다.
2. 하이브리드 검색 및 랭킹
사용 사례가 성숙해지면 벡터 전용 검색만으로는 거의 충분하지 않습니다. 팀은 구조화된 메타데이터를 사용해 결과를 필터링, 순위 지정 또는 개인화해야 하는 경우가 많습니다.
Milvus는 다양한 스칼라 데이터 타입과 인덱스를 지원하여 벡터 유사도와 구조화된 필터(예: “50달러 미만의 유사 제품 찾기”)를 결합할 수 있게 합니다. 또한 하이브리드 벡터 + 전체 텍스트 검색을 지원하여 임베딩과 키워드 관련성을 결합해 더 정확하고 설명 가능한 결과를 제공합니다. Weaviate는 기본적인 메타데이터 필터를 지원하지만, Milvus는 더 폭넓은 데이터 타입 적용 범위와 더 빠른 쿼리 실행을 제공하며, 이는 프로덕션 규모 애플리케이션에 중요합니다.
3. 클라우드 네이티브, 비용 효율적인 아키텍처
Weaviate는 컴퓨트와 스토리지를 강하게 결합하여 데이터가 증가함에 따라 비용을 증가시키고 확장을 복잡하게 만들 수 있습니다. Milvus는 컴퓨트와 스토리지를 분리한 클라우드 네이티브 방식으로 구축되었으며, 영속 계층으로 객체 스토리지(Amazon S3 또는 MinIO와 같은)를 사용합니다. 이 설계는 독립적인 확장을 가능하게 하고, 비용을 줄이며, 대규모이거나 자주 업데이트되는 데이터셋의 복원력을 향상시킵니다.
4. 컬렉션 전반의 원활한 확장
Weaviate는 인스턴스당 컬렉션 수를 제한하여, 프로젝트가 성장함에 따라 팀이 여러 클러스터를 띄워야 하는 경우가 많습니다. Milvus는 단일 클러스터에서 많은 컬렉션을 지원하여 관리를 단순화하고, 리소스 활용도를 개선하며, 소수의 데이터셋을 관리하든 수천 개를 관리하든 선형적이고 예측 가능한 확장을 가능하게 합니다.
5. 진정한 분산 설계
Weaviate는 수집, 인덱싱, 쿼리가 동일한 리소스를 공유하는 단일 역할 아키텍처에서 실행되며 — 이는 높은 부하에서 종종 경합과 지연 시간을 야기합니다. Milvus는 독립적으로 확장되는 전용 IndexNodes, DataNodes, QueryNodes를 갖춘 완전 분산 마이크로서비스 아키텍처를 사용합니다. 그 결과: 동시 수집, 검색, 분석 워크로드 전반에서 일관된 성능을 제공합니다.
6. 더 스마트한 데이터 관리를 위한 계층형 스토리지
Milvus 2.6은 액세스 빈도에 따라 데이터를 핫, 웜, 콜드 계층 간에 자동으로 이동하는 계층형 스토리지를 도입합니다. 이를 통해 자주 액세스되는 데이터는 빠르게 검색할 수 있도록 유지하면서 스토리지 비용을 낮출 수 있습니다. Weaviate에는 네이티브 계층형 스토리지가 없어 데이터 노후화를 효율적으로 관리하려면 수동 데이터 샤딩이나 비용이 많이 드는 메모리 프로비저닝이 필요합니다.
Zilliz Cloud는 Milvus를 실행하는 가장 좋은 방법입니다
Milvus는 확장 가능하고 고성능인 벡터 검색을 위한 오픈소스 기반을 제공합니다. 하지만 이를 프로덕션에서 운영하려면 클러스터 관리부터 업그레이드 및 모니터링까지 시간, 튜닝, 전문성이 필요합니다. 완전 관리형 Milvus 서비스인 Zilliz Cloud는 이러한 복잡성을 제거합니다. 향상된 엔터프라이즈 기능과 함께 동일한 Milvus 성능을 제공하며 운영 부담은 전혀 없습니다.
탄력적 확장 및 비용 효율성 – 원클릭 배포, 서버리스 자동 확장, 사용한 만큼 지불하는 가격 책정.
고급 AI 검색 – 메타데이터 필터링, 동적 스키마, 멀티테넌시를 지원하는 벡터, 전문, 하이브리드(희소 + 밀집) 검색.
자연어 쿼리 – 복잡한 API 없이 직관적인 쿼리를 위한 MCP server 지원.
엔터프라이즈급 안정성 및 보안 – 99.95% SLA, SOC 2 Type II 및 ISO 27001 인증, GDPR 준수, HIPAA 준비, RBAC, BYOC, 그리고 이제 감사 로그까지. 자세한 내용은 trust center를 참조하세요.
글로벌 가용성 – 전 세계 sub-100ms 지연 시간으로 AWS, GCP, Azure 전반에 배포.
원활한 마이그레이션 – Pinecone, Qdrant, Elasticsearch, PostgreSQL, OpenSearch, AWS S3 vectors, Weaviate 또는 온프레미스 Milvus에서 이동할 수 있는 내장 도구.
요컨대 Weaviate에서 Zilliz Cloud로 이동하는 것은 단순히 도구를 바꾸는 것이 아니라, 규모, 효율성, 엔터프라이즈 안정성에 최적화된 현대적인 클라우드 네이티브 벡터 데이터베이스 플랫폼으로 업그레이드하는 것입니다.
Weaviate에서 Zilliz Cloud로 마이그레이션하는 방법
Zilliz Migration Service는 Weaviate 및 기타 벡터 데이터베이스의 데이터를 Zilliz Cloud로 쉽게 이동할 수 있도록 해주는 내장 도구입니다. 오픈소스 Vector Translation Service (VTS)를 기반으로 하며, Weaviate, Pinecone, Elasticsearch, OpenSearch, Amazon S3 Vectors, Qdrant, PostgreSQL을 포함한 여러 소스에서 직접 마이그레이션을 지원합니다.
이 섹션에서는 최소한의 설정과 무중단으로 Weaviate에서 Zilliz Cloud로 데이터를 원활하게 전송하기 위해 이 마이그레이션 서비스를 사용하는 방법을 살펴보겠습니다.
Books라는 컬렉션이 있는 로컬 Weaviate 인스턴스를 실행 중이라고 가정합니다. 이 컬렉션에는 200개의 레코드가 있으며, 각 레코드에는 다음이 포함됩니다.
두 개의 속성:
title및author하나의 벡터 필드:
vector
사전 요구 사항
Docker가 로컬 환경에 올바르게 설치되어 있습니다.
VTS(Vector Translation Service)를 실행하는 노드가 Weaviate 인스턴스와 Zilliz Cloud 모두에 액세스할 수 있습니다.
마이그레이션 전 검증
VTS 서비스를 배포하고 시작하기 전에 Weaviate의 기존 데이터와 액세스 권한을 확인하는 것이 좋습니다.
import weaviate
client = weaviate.connect_to_local()
books = client.collections.use("books")
for book in books.iterator():
print(book)
200개의 데이터 항목을 볼 수 있어야 합니다:
Object(uuid=_WeaviateUUIDInt('001f555f-9fd5-4892-acd4-d443705e5704'), properties={'title': 'Wait week benefit certain.', 'author': 'Lauren Sullivan'}, collection='Books', ……)
Object(uuid=_WeaviateUUIDInt('00abe290-70d1-4447-a43a-e6bf28ee6cdf'), properties={'title': 'American kitchen lot station.', 'author': 'Bradley Smith'}, collection='Books', ……)
Object(uuid=_WeaviateUUIDInt('01aed685-5b8c-4ca1-a3f9-62da5ed87ead'), properties={'title': 'No just most certain job.', 'author': 'Jessica Woodward'}, collection='Books', ……)
Object(uuid=_WeaviateUUIDInt('02bf867d-dcd0-48d6-947d-9c47fe79c699'), properties={'title': 'Message yet ball explain draw.', 'author': 'Gregory Nelson'}, collection='Books', ……)
………………
마이그레이션 시작
- 최신 VTS 이미지(버전 1.2.0 이상)를 가져옵니다.
docker pull zilliz/vector-transport-service:v1.2.0
- 구성 파일을 생성합니다.
vim ./weaviate_to_milvus.conf
다음 내용을 작성합니다:
env {
execution.parallelism = 1
job.mode = "BATCH"
}
source {
Weaviate {
scheme = "http" # Connection protocol: http or https
host = "10.0.0.1:8080" # Host address of your Weaviate instance
class_name = "books" # Name of the collection to be migrated
}
}
sink {
Milvus {
url="https://in01-***.<region>.zilliz.com.cn:19530"
token="***"
database="default" # Target database
batch_size=1 # Batch size per insert operation; larger batches are faster but use more
}
}
- 편집 후 구성 파일을 저장합니다.
- VTS Docker 이미지를 사용하여 컨테이너를 시작하고 구성 파일을 컨테이너에 마운트합니다.
docker run -v ./weaviate_to_milvus.conf:/config/weaviate_to_milvus.conf -it zilliz/vector-transport-service::v1.2.0 /bin/bash
- Docker 컨테이너 내부에 들어가면 다음 명령을 사용하여 VTS 프로세스를 시작합니다:
./bin/seatunnel.sh --config /config/weaviate_to_milvus.conf -m local
마이그레이션 후 검증
Zilliz Cloud Console에 접속합니다.
마이그레이션 서비스는 properties 필드의 데이터 구조를 자동으로 감지하고 Milvus에 해당 열을 생성합니다. 원래 Weaviate ID는 Milvus에서 기본 키(pk) 열로 사용됩니다.
다음으로, 필요에 따라 벡터 필드에 대한 인덱스를 생성합니다.
데이터를 미리 보려면 Load Collection을 수행합니다.
원래 Weaviate 컬렉션과 동일한 수의 레코드와 동일한 콘텐츠가 표시되어야 하며, 이를 통해 마이그레이션이 성공했음을 확인할 수 있습니다.
다음 단계는 무엇인가요?
Zilliz Cloud가 자신에게 적합한지 아직 고민 중이신가요? 무료로 가입하고 $100 크레딧을 받아 세계 최고의 관리형 벡터 데이터베이스를 직접 탐색해 보세요.
Zilliz Cloud는 Weaviate, Milvus, Pinecone, Elasticsearch, OpenSearch, Amazon S3 Vectors, Qdrant, PostgreSQL을 포함한 다양한 소스에서의 원활한 마이그레이션을 지원하며, 더 많은 통합이 곧 제공될 예정입니다.
자체 호스팅 Milvus 배포를 운영 중이라면, Zilliz Cloud로의 이동을 훨씬 더 빠르고 간단하게 만들어 줄 예정인 One-Click Migration 기능을 기대해 주세요.
그리고 현재 Weaviate 또는 다른 관리형 서비스를 운영 중이라면, 다운타임 없이 마이그레이션할 수 있도록 도와드릴 수 있습니다 — 대부분 현재 지불 중인 비용의 절반 수준으로 — 그리고 훨씬 더 뛰어난 성능을 제공합니다.
자세한 내용은 마이그레이션 문서를 방문하거나 문의하기를 이용해 주세요. 저희 팀이 원활하고 효율적이며 걱정 없는 전환을 도와드리겠습니다.
계속 읽기

Notion's Vector Search Is Excellent. Their Next Problem Is Harder.
Notion solved vector search scaling in two years. The next bottleneck — offline context engineering, unified data, and the real-time/offline gap — is harder.

What Exactly Are AI Agents? Why OpenAI and LangChain Are Fighting Over Their Definition?
AI agents are software programs powered by AI that can perceive their environment, make decisions, and take actions to achieve a goal—often autonomously.

How to Use Anthropic MCP Server with Milvus
MCP + Milvus: Streamline AI agent development with standardized data access, eliminating integration hassles while enhancing context and flexibility.



