TwelveLabs 비디오 임베딩, OpenSearch vs S3 Vectors, 당신의 선택은?

by DD
2개월 전
조회수 12

TwelveLabs Marengo 3.0을 활용한 비디오 임베딩을 저장하고 검색하기 위해 Amazon OpenSearch ServerlessS3 Vectors를 비교 분석함

OpenSearch Serverless는 하이브리드 검색(키워드 + 벡터)을 지원하며, S3 Vectors는 간편한 설정과 비용 효율성을 강조함

테스트 결과, OpenSearch Serverless는 25ms(p50), S3 Vectors는 65ms(p50)의 검색 레이턴시를 보였으며, S3 Vectors는 배치 크기 조절을 통해 인제스트 성능을 개선함

하이브리드 검색 vs 간편한 설정: 두 벡터 DB의 차이점

본문은 Amazon OpenSearch ServerlessS3 Vectors를 비교하며, 각 서비스의 주요 강점을 분석한다. OpenSearch Serverless는 키워드 기반 풀텍스트 검색과 벡터 유사도 검색을 동시에 지원하는 하이브리드 검색(Hybrid Search)에 특화되어 있다. 특히, search pipelinehybrid 쿼리를 활용하여 텍스트와 벡터 스코어를 결합, 정확한 랭킹을 제공한다. 반면, S3 Vectors는 설정의 간편함과 비용 효율성을 강조하며, 별도의 보안 정책이나 VPC 구성 없이 기존 IAM 정책으로 접근 제어가 가능하다. S3의 확장성과 내구성을 활용하여 대규모 벡터 데이터를 저렴하게 저장할 수 있다.

OpenSearch Serverless 설정: 보안 정책과 인덱스 생성

OpenSearch Serverless를 사용하기 위해서는 세 가지 보안 정책을 별도로 구성해야 한다. 암호화 정책(Encryption Policy), 네트워크 정책(Network Policy), 그리고 데이터 접근 정책(Data Access Policy)이 그것이다. 특히, 데이터 접근 정책은 IAM 정책과 별개로 OpenSearch Serverless 자체에서 관리되므로 주의해야 한다. 인덱스 생성 시에는 임베딩 차원, 검색 알고리즘 등을 설정하며, faiss(Facebook AI Similarity Search), hnsw(Hierarchical Navigable Small World), cosinesimil(코사인 유사도) 등의 설정을 통해 성능을 최적화한다. 인덱스 생성 후 충분한 대기 시간을 갖는 것이 권장된다.

S3 Vectors 설정: 간편한 버킷 및 인덱스 생성

S3 Vectors는 Vector Bucket과 Index를 생성하는 것만으로 사용이 가능하다. 별도의 보안 정책이나 VPC 구성 없이 기존 IAM 정책으로 접근 제어가 가능하며, 요청 수와 저장 용량 기반의 과금 방식으로 소규모 워크로드에 적합하다. S3 Vectors는 벡터 키(Key)를 직접 지정할 수 있어, 임베딩을 재생성했을 때 별도의 삭제/재생성 과정 없이 바로 갱신할 수 있는 Upsert(업서트) 기능을 제공한다. 이는 데이터 관리의 효율성을 높이는 중요한 특징이다.

성능 비교: 인제스트와 검색 레이턴시

테스트 결과, OpenSearch Serverless는 2,285개 벡터를 _bulk API로 인제스트하는 데 약 16.80초가 소요되었으며, 검색 레이턴시는 k=5 기준 p50 약 25ms, p95 약 37ms로 측정되었다. S3 Vectors는 2,285개 벡터를 배치 500개씩 put_vectors로 인제스트하는 데 약 4.12초가 소요되었으며, 검색 레이턴시는 k=5 기준 p50 약 65ms, p95 약 181ms로 측정되었다. S3 Vectors의 경우, 배치 크기를 50에서 500으로 변경하는 것만으로 인제스트 시간이 약 3배 개선되었다. 이는 배치 크기와 인제스트 방식이 성능에 미치는 영향이 크다는 것을 보여준다.

실제 프로덕션 환경 적용 시 고려사항

본문은 소규모 데이터셋(2,285개 벡터)을 기반으로 테스트했으므로, 실제 프로덕션 환경에서는 다른 결과가 나올 수 있음을 강조한다. 대규모 데이터셋(수십만~수백만 벡터)에서는 각 서비스의 인덱싱 알고리즘, 메모리 관리, 스케일링 특성에 따라 성능이 크게 달라질 수 있다. 따라서, 실제 프로덕션 도입 전에는 자신의 워크로드 데이터와 쿼리 패턴으로 PoC(Proof of Concept)를 수행하여 적합한 서비스를 선택하는 것이 중요하다. 또한, OpenSearch Serverless는 OCU 용량에 따라 throttling이 발생할 수 있으므로, 워크로드에 맞는 적절한 크기를 찾는 것이 중요하다.

클라우드 환경에서의 비디오 인텔리전스 구현 : TwelveLabs로 시작하는 AI 영상 분석 5부 – 비디오 임베딩을 위한 Vector DB 비교