S3 Vectors와 벡터 버킷 다루기

S3 Vectors와 벡터 버킷 다루기

Amazon S3 Vectors가 무엇인지, 어떤 구성 요소로 이루어져 있고, 어떻게 사용하는지 설명하는 개요 문서예요.

출처: Working with S3 Vectors and vector buckets

본문

Amazon S3 Vectors란? (What is Amazon S3 Vectors?)

Amazon S3 Vectors는 AI 에이전트, 추론, RAG, 시맨틱 검색을 위한 목적 특화형 비용 최적화 벡터 저장을 제공해요. S3 Vectors는 Amazon S3와 동일한 탄력성, 내구성, 가용성을 제공하도록 설계되었으며, 드문 쿼리는 서브초(초 이하) 지연, 더 빈번한 쿼리는 최저 100밀리초의 지연을 제공해요. 인프라를 프로비저닝하지 않고도 벡터 데이터를 저장·접근·질의하기 위한 전용 API 작업 세트가 제공돼요. S3 Vectors는 함께 동작하는 여러 핵심 구성 요소로 이루어져 있어요.

  • 벡터 버킷 (Vector buckets) – 벡터를 저장하고 질의하도록 목적 특화된 새 버킷 유형이에요.
  • 벡터 인덱스 (Vector indexes) – 벡터 버킷 안에서 벡터 데이터를 벡터 인덱스로 조직화할 수 있어요. 벡터 인덱스 안에서 벡터 데이터에 유사도 질의를 수행해요.
  • 벡터 (Vectors) – 벡터 인덱스에 벡터를 저장해요. 유사도 검색과 AI 애플리케이션을 위해 벡터는 벡터 임베딩으로 만들어지는데, 이는 콘텐츠(텍스트, 이미지, 오디오 등) 사이의 시맨틱 관계를 보존하는 숫자 표현이라 비슷한 항목끼리 더 가깝게 위치해요. S3 Vectors는 벡터가 서로 수학적으로 얼마나 가까운지 비교함으로써, 정확한 일치가 아닌 시맨틱 의미를 기준으로 유사도 검색을 수행할 수 있어요. 벡터 인덱스에 벡터 데이터를 추가할 때는 조건 집합(예: 타임스탬프, 카테고리, 사용자 선호도) 기반의 향후 필터링 질의를 위해 메타데이터를 붙일 수도 있어요.

S3 Vectors에 대한 쓰기는 강력한 일관성(strongly consistent)을 가져서, 가장 최근에 추가된 데이터를 즉시 접근할 수 있어요. 시간이 지나며 벡터를 쓰고, 업데이트하고, 삭제할 때 S3 Vectors는 데이터셋이 확장·진화해도 벡터 저장의 최상의 가격·성능을 내도록 벡터 데이터를 자동 최적화해요. 버킷 및 IAM 정책을 포함한 Amazon S3의 기존 접근 제어 메커니즘으로 벡터 데이터에 대한 접근을 제어할 수 있어요. 버킷당 벡터 인덱스 제한과 인덱스당 벡터 제한에 대한 자세한 내용은 Limitations and restrictions을 참고해 주세요.

사용 사례: 대규모 데이터셋에서의 유사도 검색

유사도 검색은 정확한 키워드 일치가 아니라 벡터 표현을 기반으로 서로 개념적으로 관련된 항목을 찾을 수 있게 해줘요. 정확한 단어나 시각 요소가 달라도 비슷한 의미나 특성을 가진 콘텐츠를 식별해요.

S3 Vectors로 유사도 검색을 하는 일반적인 사용 사례는 다음과 같아요.

  • 의료 영상 – 진단과 치료 계획을 지원하기 위해 수백만 개의 의료 이미지에서 유사점을 찾기
  • 저작권 침해 – 대규모 미디어 라이브러리에서 파생물로 보이는 콘텐츠 식별하기
  • 이미지 중복 제거 – 대규모 이미지 컬렉션에서 중복 또는 거의 중복인 이미지를 감지·제거하기
  • 비디오 이해 – 비디오 자산에서 특정 장면이나 콘텐츠 검색하기
  • 기업 문서 검색 – 기업 문서 전체에서 시맨틱 검색으로 의미에 기반한 관련 정보 찾기
  • 개인화 – 유사한 항목을 찾아 맞춤형 추천 제공하기

서브초 검색 시간으로 비용 효율적인 벡터 검색과 에이전틱 AI 애플리케이션을 만들고 싶다면 S3 Vectors를 사용해야 해요. 벡터 버킷은 사용한 만큼만 비용을 지불하며, 벡터 임베딩의 업로드·저장·질의 비용을 아낄 수 있어요. 가격에 대한 자세한 내용은 Amazon S3 pricing을 참고해 주세요.

S3 Vectors의 기능 (Features of S3 Vectors)

벡터용 목적 특화 저장 (Purpose-built storage for vectors)

S3 Vectors는 벡터를 저장하고 질의하는 최초의 목적 특화 클라우드 객체 저장이에요. 벡터 버킷은 벡터 데이터를 위한 비용 효율적이고 탄력적이며 내구성 있는 저장을 제공하도록 설계되었어요.

벡터 임베딩은 의료 이미지 전반의 유사성 감지, 수천 시간 분량의 비디오 푸티지에서 이상 징후 찾기, 대규모 코드베이스 탐색, 특정 법적 사안에 가장 관련 있는 판례 식별 등 고객이 비정형 데이터를 사용·조회하는 방식을 바꾸고 있어요. 이러한 신흥 애플리케이션은 데이터(예: 텍스트, 이미지, 비디오, 코드)의 시맨틱 의미를 숫자 벡터 임베딩으로 인코딩하는 임베딩 모델과 결합해요.

벡터 버킷 안에서 인프라를 프로비저닝하지 않고 벡터 데이터를 벡터 인덱스로 조직화해요. 시간이 지나며 벡터를 쓰고, 업데이트하고, 삭제할 때 S3 Vectors는 데이터셋이 확장·진화해도 벡터 저장의 최상의 가격·성능을 내도록 벡터 데이터를 자동 최적화해요. 버킷당 벡터 인덱스 제한과 인덱스당 벡터 제한에 대한 자세한 내용은 Limitations and restrictions을 참고해 주세요.

유사도 질의 수행 (Perform similarity queries)

S3 Vectors로 질의 벡터와 가장 유사한 벡터를 찾는 질의를 수행할 수 있으며, 드문 쿼리는 서브초 응답, 더 빈번한 쿼리는 최저 100밀리초의 응답을 제공해요. S3 Vectors는 쿼리가 덜 빈번한 워크로드에 이상적이에요.

메타데이터 필터링 (Metadata filtering)

벡터에 메타데이터(예: 연도, 작성자, 장르, 위치)를 키-값 쌍으로 붙일 수 있어요. 기본적으로 모든 메타데이터는 명시적으로 비필터 가능으로 지정하지 않는 한 필터 가능해요. 필터 가능 메타데이터를 사용해 특정 속성에 따라 질의 결과를 필터링할 수 있어 질의의 관련성을 높여줘요. 벡터 인덱스는 문자열, 숫자, 불리언, 리스트 유형의 메타데이터를 지원해요. 벡터당 메타데이터 크기 제한과 벡터당 필터 가능 메타데이터 크기 제한에 대한 자세한 내용은 Limitations and restrictions을 참고해 주세요.

접근 관리와 보안 (Access management and security)

AWS Organizations의 IAM과 Service Control Policies로 벡터 버킷의 리소스 접근을 관리할 수 있어요. S3 Vectors는 Amazon S3와 다른 서비스 네임스페이스인 s3vectors 네임스페이스를 사용해요. 따라서 S3 Vectors 서비스와 그 리소스에 특화된 정책을 설계할 수 있어요. 개별 벡터 인덱스, 벡터 버킷 안의 모든 벡터 인덱스, 또는 계정의 모든 벡터 버킷에 접근을 부여하도록 정책을 설계할 수 있어요. 모든 Amazon S3 Block Public Access 설정은 벡터 버킷에 대해 항상 활성화되어 있으며 비활성화할 수 없어요.

AWS 서비스와의 통합 (Integration with AWS services)

S3 Vectors는 다른 AWS 서비스와 통합해 벡터 처리 능력을 향상시켜요.

  • Amazon OpenSearch Service – OpenSearch API 작업을 계속 사용하면서 벡터 저장 비용을 최적화해요. 하이브리드 검색, 집계, 고급 필터링, 패싯 검색 같은 고급 검색 기능이 필요한 워크로드에 이상적이에요. 높은 QPS와 낮은 지연의 벡터 검색을 위해 S3 벡터 인덱스의 스냅샷을 Amazon OpenSearch Serverless로 내보낼 수도 있어요.
  • Amazon Bedrock Knowledge Bases – RAG(검색 증강 생성) 애플리케이션의 저장 비용을 아끼기 위해 S3 Vectors의 벡터 인덱스를 벡터 스토어로 선택해요.
  • Amazon Bedrock in SageMaker Unified Studio – S3 Vectors를 벡터 스토어로 사용해 지식 베이스를 개발하고 테스트해요.

더 알아보기 (Learn more)