View a markdown version of this page

S3 Vectors 모범 사례 - Amazon Simple Storage Service

S3 Vectors 모범 사례

Amazon S3 Vectors는 AI 지원 애플리케이션 및 Amazon S3에 저장된 콘텐츠의 시맨틱 검색에 사용할 수 있도록 특별히 구축되고 비용 최적화된 벡터 스토리지를 제공합니다. S3 Vectors는 벡터 데이터세트를 저장하기 위한 S3 수준의 탄력성과 내구성을 제공하도록 설계되어 콜드 쿼리의 경우 1초 미만, 웜 쿼리의 경우 100밀리초 이내의 빠른 쿼리 성능을 제공합니다. 따라서 벡터 인덱스를 구축하고 확장해야 하는 애플리케이션에 적합합니다. S3 Vectors를 사용하면 전용 API 작업 세트를 사용하여 인프라를 프로비저닝하지 않고도 벡터 데이터에 대한 유사성 쿼리를 저장, 액세스 및 수행할 수 있습니다. 자세한 내용은 S3 Vectors 및 벡터 버킷 작업 섹션을 참조하세요.

S3 Vectors를 최대한 활용하려면 다음과 같은 모범 사례를 수행하는 것이 좋습니다.

벡터 삽입 및 삭제

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

비용을 최적화하려면 벡터를 API 요청당 최대 500개의 벡터 배치 크기까지 대량 배치로 삽입 및 삭제하는 것이 좋습니다. 워크로드에 더 작은 배치가 필요한 경우 초당 최대 1,000개의 요청 한도까지 동시 요청을 보낼 수 있습니다. 초당 벡터 2,500개의 최대 처리량에 도달하려면 초당 5개의 배치를 각각 500개의 벡터로 보내거나 초당 1,000개의 배치를 각각 평균 2.5개의 벡터로 보낼 수 있습니다.

S3 벡터 인덱스에서 벡터 액세스 및 쿼리

애플리케이션은 하나의 S3 벡터 인덱스에서 초당 수백 개의 QueryVectors, GetVectors 또는 ListVectors 요청을 달성할 수 있습니다. 요청 속도를 초과하면 429 TooManyRequestsException 오류가 발생할 수 있습니다. 재시도 메커니즘을 사용하고 더 적은 요청을 보내도록 애플리케이션을 구성하는 것이 좋습니다.

벡터 인덱스 간 규모 조정

벡터 인덱스당 쿼리 성능을 개선하려면 가능한 경우 여러 벡터 인덱스로 벡터를 분할하도록 애플리케이션을 구성하는 것이 좋습니다. 예를 들어 다중 테넌트 워크로드가 있고 애플리케이션이 각 테넌트를 독립적으로 쿼리하는 경우 각 테넌트의 벡터를 별도의 벡터 인덱스에 저장하는 것이 좋습니다. 자세한 내용은 벡터 인덱스 섹션을 참조하세요.

별도의 벡터 인덱스를 사용하여 다중 테넌시 구현

각 테넌트에 대해 단일 벡터 인덱스를 사용하여 벡터 데이터를 구성하면 다중 테넌시를 달성할 수 있습니다. IAM 및 버킷 정책을 사용하여 각 테넌트의 액세스를 지정된 벡터 인덱스로만 제한할 수 있습니다. 이 접근 방식은 각 테넌트에 대해 별도의 버킷을 만들 필요가 없으므로 데이터 격리를 유지하고 관리를 간소화하는 데 도움이 됩니다. 자세한 내용은 S3 Vectors의 Identity and Access Management 섹션을 참조하세요.

벡터 인덱스에 대해 필터링 불가능한 메타데이터 필드 구성

벡터 인덱스를 만들 때 필터링이 필요하지 않은 메타데이터 필드를 필터링 불가능한 메타데이터 키로 구성합니다. 예를 들어 벡터 임베딩용 텍스트 청크는 참조용으로만 필요한 경우 필터링 불가능한 메타데이터 필드로 저장합니다. 자세한 내용은 필터링 불가능한 메타데이터 키 섹션을 참조하세요.