Amazon DynamoDB에 벡터 검색이 내장됩니다

Amazon DynamoDB에 벡터 검색이 내장됩니다

  • 벡터 임베딩을 같은 테이블에 저장하고 바로 유사도 검색, 별도 벡터 DB·동기화 불필요
  • 밀리초 한 자릿수 지연에 99% 이상 재현율, 최대 4096 차원·결과 100개까지
  • 이미 DynamoDB에 운영 데이터가 있는 팀이 RAG·추천 기능을 붙일 때 먼저 볼 만함

Amazon DynamoDB의 벡터 검색이 정식 출시됐습니다. 이제 벡터 임베딩을 운영 데이터와 같은 테이블에 저장하고, 그 데이터에 곧바로 유사도 검색을 실행할 수 있습니다. 별도의 벡터 저장소로 데이터를 복제하지 않아도 됩니다.

이미 DynamoDB에 운영 데이터가 있다면 지금까지는 벡터 검색을 붙이려고 전용 벡터 데이터베이스에 데이터를 복사하고, 두 서비스 사이에 동기화 파이프라인을 유지해야 했습니다. 여기에는 운영 부담, 데이터 이동 비용, 라이선스 비용이 따라붙었고, 규모가 커질수록 낮은 지연을 일정하게 유지하기가 까다로웠습니다. 벡터 검색이 DynamoDB 안으로 들어오면서 벡터와 운영 데이터가 같은 서버리스 인프라와 요청당 과금 모델을 공유합니다.

저장과 검색이 이뤄지는 방식

임베딩은 직접 고른 모델로 생성합니다. Amazon Bedrock Titan Text Embeddings, Cohere Embed, OpenAI 텍스트 임베딩 모델 등을 쓸 수 있습니다. 생성한 벡터는 실수 목록으로 테이블에 넣습니다. DynamoDB가 기존 List 데이터 타입에 저장하고, 목록의 각 원소는 임베딩 벡터의 실수 하나를 담는 Number입니다. 새 데이터 타입이나 스키마 변경 없이 기존 속성 옆에 벡터를 함께 두면 됩니다. 기존 테이블이라면 UpdateItem으로 임베딩 속성을 추가하는 식입니다.

그다음 그 속성에 벡터 인덱스를 만들면서 차원 수, 거리 함수, 검색 결과를 좁힐 때 쓸 비벡터 필터 속성을 지정합니다. 검색은 SearchVectors API로 합니다. 쿼리 벡터와 반환할 결과 개수(최대 100개), 선택적 필터 조건을 받아 유사도 순으로 정렬한 결과를 돌려줍니다. 차원은 최대 4096까지 지원합니다.

거리 함수를 고를 때 Cosine은 벡터 사이의 각도를 재기 때문에 텍스트 임베딩의 의미 유사도 비교에 적합합니다. 벡터의 크기가 의미를 가질 때, 예를 들어 구매 횟수 같은 수치로 항목을 묶는다면 Euclidean을 씁니다. 방향과 크기가 모두 중요한 추천 시스템에는 Dot product가 맞습니다. 정확도를 위해서는 임베딩 모델을 학습할 때 쓴 함수와 맞추는 편이 낫습니다.

유사도 점수의 의미는 거리 함수에 따라 다릅니다. Cosine과 Euclidean에서는 점수가 낮을수록 더 비슷하고, 0이 동일한 벡터입니다. Dot product에서는 점수가 높을수록 더 비슷합니다.

파티션 키와 필터 제약

벡터 인덱스에 파티션 키를 지정하면 DynamoDB가 벡터를 여러 파티션에 분산합니다. 각 검색은 하나의 파티션 키 값 안에서만 이뤄집니다. 여러 마켓플레이스를 다루는 상품 카탈로그라면 인덱스 전체를 훑지 않고 특정 마켓플레이스 재고 안에서만 검색할 수 있습니다. 파티션 키는 선택 사항이지만, 데이터가 크고 조회량이 많으면 권장됩니다.

인라인 필터는 정확히 일치하는 값만 지원합니다. BETWEEN이나 BEGINS_WITH 같은 범위 조건은 쓸 수 없습니다. 가격 범위나 접두어 검색을 인덱스 필터로 걸 생각이었다면 이 제약을 먼저 확인해야 합니다.

벡터 인덱스에는 저장 용량 한도가 없고 데이터가 늘어나면 수평으로 확장합니다. DynamoDB는 밀리초 한 자릿수 지연과 99% 이상의 재현율을 유지하도록 설계됐으며, 조 단위 벡터 규모까지 대응합니다. 프로비저닝하거나 패치할 서버가 없고, 유지보수 창이나 다운타임도 없습니다.

에이전트 메모리, 검색 증강 생성(RAG), 추천 엔진, 개인화, 이상 탐지처럼 의미 기반 검색이 필요한 작업에 쓸 수 있습니다.

벡터 검색은 AWS GovCloud(US) 리전을 포함한 모든 상용 AWS 리전에서 제공됩니다. 리전별 제공 현황은 AWS Capabilities by Region에서, 요금은 Amazon DynamoDB 요금 페이지에서 확인할 수 있습니다.

도입 검토 의견

원문 발표가 아닌 솔트웨어의 의견입니다

이미 상품 카탈로그, 사용자 프로필, 대화 기록 같은 운영 데이터를 DynamoDB에 두고 있고 여기에 자연어 검색이나 RAG, 추천을 붙일 계획이라면 지금 살펴볼 만합니다. 별도 벡터 DB를 세우고 두 서비스 사이의 동기화를 유지하는 작업 자체가 없어지므로, 그만큼 운영 부담이 줄어듭니다. 데이터가 이미 한곳에 있으니 검색 결과에 이름·가격 같은 운영 속성이 같은 응답으로 함께 돌아오는 점도 개발 손이 덜 갑니다.

반대로 운영 데이터가 DynamoDB에 없고 다른 DB를 주력으로 쓴다면 이번 발표만으로 옮길 이유는 크지 않습니다. 가격대나 날짜 범위로 결과를 걸러야 하는 검색이 핵심이라면 인라인 필터가 정확히 일치하는 값만 받는다는 제약이 걸리므로, 필터를 애플리케이션 쪽에서 다시 처리할지부터 판단해야 합니다.

임베딩 모델 선정과 인덱스 생성은 반나절에서 하루면 끝납니다. 기존 항목에 임베딩을 채워 넣는 배치 작업이 데이터 양에 따라 시간을 더 잡아먹을 수 있으니 여기에 여유를 두세요. 요금은 벡터와 운영 데이터가 같은 요청당 과금을 씁니다. 별도 벡터 DB의 라이선스와 데이터 이동 비용이 없어지는 대신 인덱스와 검색 요청에 대한 과금이 새로 생기므로, 지금 쓰는 구성의 월 비용과 DynamoDB 요금 페이지의 단가를 대조한 뒤 결정하세요.


원문: Amazon DynamoDB now supports real-time vector search at any scale · 발행일 2026-08-05

관련 글

Amazon Bedrock에 Claude Haiku 5.5 출시, Amazon Nova 2.5 Sonic 공개 등 AWS 주간 소식2026-10-13Anthropic Claude Haiku 5.5가 Amazon Bedrock에서 정식 출시2026-10-07Amazon Bedrock, 서울·싱가포르 리전 내 추론으로 Anthropic Claude Opus 5·Sonnet 5 지원2026-09-30Amazon Bedrock에 도착한 OpenAI GPT-6과 Anthropic Claude Opus 5.5, 그리고 Strands harness2026-09-28
전체 글 보기 →
AWS·Anthropic AI 소식, 발표 당일 한국어 분석으로

새로운 AI 서비스가 나올 때마다 실무 관점 분석을 메일로 보내드립니다. 무료이며 언제든 해지할 수 있습니다.

이 소식 도입 상담하기 →