S3 Vectors 모범 사례

S3 Vectors 모범 사례 (S3 Vectors best practices)

Amazon S3 Vectors는 AI 지원 애플리케이션과 Amazon S3에 저장된 콘텐츠의 의미 검색(semantic search)을 위해 목적에 맞게 설계되고 비용을 최적화한 벡터 저장소를 제공해요. S3 수준의 탄력성과 내구성으로 벡터 데이터셋을 저장하면서, 콜드 쿼리에 대해 1초 미만, 웜 쿼리에 대해 100ms까지의 쿼리 성능을 제공하도록 설계됐어요. 그래서 벡터 인덱스를 만들고 확장해야 하는 애플리케이션에 이상적이에요. S3 Vectors를 사용하면 어떤 인프라도 프로비저닝하지 않고 전용 API 작업 세트로 벡터 데이터를 저장·접근·유사도 검색할 수 있어요. 자세한 내용은 S3 Vectors 및 벡터 버킷 작업을 참고하세요.

S3 Vectors의 이점을 최대한 얻으려면 다음 모범 사례를 따르는 걸 권장해요.

출처: 문서

본문

벡터 삽입 및 삭제 (Inserting and deleting vectors)

여러분의 애플리케이션은 벡터 인덱스당 초당 최대 1,000개의 PutVectors 또는 DeleteVectors 요청을 처리하거나, 벡터 인덱스당 초당 최대 2,500개의 벡터를 삽입·삭제할 수 있어요 — 둘 중 먼저 도달하는 한도가 적용돼요. 요청 속도를 초과하면 429 TooManyRequestsException 오류가 발생할 수 있어요.

비용을 최적화하려면 API 요청당 최대 배치 크기인 500개 벡터까지 큰 배치로 벡터를 삽입·삭제하는 걸 권장해요. 워크로드가 더 작은 배치를 요구한다면 초당 1,000개 요청 한도까지 동시 요청을 보낼 수 있어요. 초당 2,500개 벡터의 최대 처리량에 도달하려면 500개 벡터씩 초당 5개 배치를 보내거나, 평균 2.5개 벡터씩 초당 1,000개 배치를 보내면 돼요.

S3 벡터 인덱스의 벡터 접근 및 검색 (Accessing and querying vectors in an S3 vector index)

여러분의 애플리케이션은 S3 벡터 인덱스당 초당 수백 개의 QueryVectors, GetVectors, 또는 ListVectors 요청을 처리할 수 있어요. 요청 속도를 초과하면 429 TooManyRequestsException 오류가 발생할 수 있어요. 재시도 메커니즘을 사용하고 애플리케이션이 더 적은 요청을 보내도록 구성하는 걸 권장해요.

벡터 인덱스 간 확장 (Scaling across vector indexes)

벡터 인덱스별 쿼리 성능을 개선하려면 가능하다면 애플리케이션이 벡터를 여러 벡터 인덱스에 나눠 저장하도록 구성하는 걸 고려해 보세요. 예를 들어 멀티테넌트(multi-tenant) 워크로드에서 애플리케이션이 각 테넌트를 독립적으로 쿼리한다면, 각 테넌트의 벡터를 별도의 벡터 인덱스에 저장하는 걸 고려할 수 있어요. 자세한 내용은 벡터 인덱스를 참고하세요.

별도 벡터 인덱스로 멀티테넌시 구현하기 (Implementing multi-tenancy with separate vector indexes)

테넌트마다 하나의 벡터 인덱스를 사용해 벡터 데이터를 구성하면 멀티테넌시를 달성할 수 있어요. IAM과 버킷 정책을 사용해 각 테넌트가 지정된 벡터 인덱스에만 접근하도록 제한할 수 있어요. 이 방식은 데이터 격리를 유지하고 테넌트마다 별도의 버킷을 만들 필요가 없어 관리를 단순화해 줘요. 자세한 내용은 S3 Vectors의 ID 및 접근 관리를 참고하세요.

벡터 인덱스의 필터링 불가능한 메타데이터 필드 구성하기 (Configuring non-filterable metadata fields for vector indexes)

벡터 인덱스를 만들 때 필터링이 필요 없는 메타데이터 필드는 필터링 불가능한(non-filterable) 메타데이터 키로 구성하세요. 예를 들어 벡터 임베딩의 텍스트 청크를 참조용으로만 필요할 때 필터링 불가능한 메타데이터 필드로 저장하세요. 자세한 내용은 필터링 불가능한 메타데이터를 참고하세요.

더 알아보기 (Learn more)