본문으로 건너뛰기

Amazon Bedrock으로 멀티테넌트 문서 채팅 구축

Amazon Bedrock Managed Knowledge Base로 사용자별 문서 격리와 에이전틱 검색을 함께 구현하는 AWS 아키텍처

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

대규모 고객을 위한 멀티테넌트 문서 채팅은 문서 수집과 검색보다 사용자별 데이터 격리를 에이전트의 모든 검색 단계에 적용하는 일이 핵심 과제입니다. Amazon Bedrock Managed Knowledge Base는 문서 파싱, 임베딩, 저장, 랭킹, Agentic Retrieval을 관리하고 애플리케이션은 업로드, 인증, 사용자별 필터, 채팅 화면을 맡는 구조를 제공합니다. 업로드는 Amazon SQS와 AWS Lambda로 비동기 처리하며, 6MB 이하 파일은 인라인으로 보내고 큰 파일은 Amazon S3에 저장한 뒤 참조로 전달합니다. 문서에는 인증된 JWT의 Amazon Cognito sub를 user_id 메타데이터로 기록하고, AgenticRetrieveStream 호출마다 서버에서 만든 동일한 필터를 적용해 사용자별 검색 범위를 제한합니다. 텍스트는 TEXT_INDEXED 상태부터 검색할 수 있고 PDF의 이미지와 표까지 검색하려면 INDEXED 상태를 기다려야 하며, 검색보다 수집 처리량과 인덱싱 대기 시간이 주요 운영 병목이 될 수 있습니다.

섹션별 상세

01
멀티테넌트 문서 채팅은 사용자가 계약서나 보고서를 올린 직후 질문할 수 있게 하면서도 다른 사용자의 문서가 검색 결과에 섞이지 않게 해야 합니다. Agentic Retrieval은 질문을 하위 질의로 나누고 여러 번 검색하므로 한 번의 요청뿐 아니라 에이전트 계획의 모든 검색 단계에 사용자 범위를 전달해야 합니다. Amazon Bedrock Managed Knowledge Base가 파싱, 임베딩, 저장, 랭킹과 검색 계획을 맡으면 팀은 검색 인프라를 직접 구축하는 대신 업로드, 인증, 채팅과 격리 로직에 집중할 수 있습니다.
02
문서 업로드와 검색은 별도의 데이터 흐름으로 나누고 Amazon API Gateway와 AWS Lambda가 애플리케이션 엔드포인트와 라우팅을 맡습니다. Amazon Cognito가 발급한 JWT를 API Gateway가 검증한 뒤 서버가 식별자를 추출하고, Amazon SQS 메시지에 문서와 함께 넣어 비동기 수집으로 넘깁니다. 워커 Lambda는 최대 10개 작업을 한 번의 IngestKnowledgeBaseDocuments 호출로 묶고, Amazon DynamoDB에는 문서 ID와 인덱싱 상태를 저장해 브라우저가 준비 상태를 조회하게 합니다.
03
파일 크기에 따라 6MB 이하 문서는 API 요청에 바이트로 포함하고, 더 큰 파일은 Amazon S3에 저장한 뒤 S3 URI로 전달합니다. 두 경로 모두 커스텀 커넥터를 통한 직접 수집으로 합쳐지며, 같은 문서 ID를 재사용하면 기존 문서를 중복 생성하지 않고 전체 재수집으로 교체할 수 있습니다. 단일 호출에 최대 10개 문서를 담을 수 있으므로 500건의 동시 업로드를 약 50회의 배치 호출로 줄이는 방식이 수집 처리량을 높이는 주요 수단입니다.
04
IngestKnowledgeBaseDocuments는 STARTING 상태를 즉시 반환하지만, 파싱과 임베딩이 끝날 때까지 문서를 검색할 수 없습니다. 일반 텍스트는 테스트 환경에서 2~3초 만에 TEXT_INDEXED와 INDEXED에 도달했고, PDF는 텍스트 검색 가능 시점이 5~30초, 완전한 INDEXED까지 약 90초가 걸렸으며 실제 시간은 문서 크기와 부하에 따라 달라집니다. 텍스트 청크가 검색 가능한 TEXT_INDEXED에서 사용자 화면을 ready로 바꾸고 PDF의 이미지와 표까지 필요할 때만 INDEXED를 기다리면 체감 대기 시간을 줄일 수 있습니다.
05
사용자별 격리는 공유 지식 기반에 user_id 메타데이터를 기록하고 검색마다 명시적인 equals 필터를 적용하는 방식으로 구현합니다. 필터 값은 요청 본문이 아니라 검증된 JWT에서 서버가 만들며, 지식 기반이 질문 문맥에서 추론한 필터는 관련성 기능일 뿐 접근 제어로 사용하지 않습니다. 참조 구현은 호출 전 필터의 사용자 범위를 확인하고 반환 청크의 user_id도 다시 검사하며, 인증이 없으면 401, 식별 가능한 sub가 없으면 403을 반환해 방어 계층을 추가합니다.
06
AgenticRetrieveStream은 한 번의 호출에서 질문을 분해하고 각 검색에 사용자 필터를 적용한 뒤 인용이 포함된 응답을 스트리밍하므로 채팅 UI에 바로 연결하기 적합합니다. 사용자 지정 프롬프트나 특정 모델이 필요하면 Retrieve API로 passages를 가져온 다음 같은 필터를 유지한 채 Converse API를 별도로 호출할 수 있습니다. 대화 이력은 API 호출 사이에 저장되지 않으므로 Amazon DynamoDB 같은 애플리케이션 데이터 저장소에 보관하고 관련 턴을 매 요청의 messages에 포함해야 문서와 동일한 사용자 격리를 유지할 수 있습니다.
07
운영 규모가 커지면 검색보다 수집 처리량과 인덱싱 대기 시간이 먼저 한계에 도달할 수 있습니다. Retrieve API는 지식 기반당 25 QPS 버스트와 10 QPS 지속 처리를 지원하지만, 동시성 초과가 ThrottlingException이 아닌 ValidationException으로 반환될 수 있어 재시도 분류기가 이를 재시도 가능한 조건으로 처리해야 합니다. 수집 성공률, INDEXED 도달 시간의 P50·P99, 검색 지연 시간을 추적하고 특히 INDEXED 시간이 상승하는지를 초기 용량 한계 신호로 삼아야 합니다.
08
비용은 모델 선택에 따라 달라지며 관리형 모델을 사용할 때 Managed Knowledge Base는 저장과 호출 단위 검색에 과금되고 수집에는 별도 요금이 없습니다. Amazon Bedrock 모델을 선택하면 수집 시 임베딩 토큰, Agentic Retrieval 사용 시 오케스트레이션과 생성 토큰 비용이 추가됩니다. 대규모 기존 저장소를 한 번에 옮길 때는 실시간 업로드와 경쟁하는 직접 수집보다 예약 동기화에 맞춰진 S3 connector를 사용하는 편이 적합합니다.

이미지 분석

Amazon Cognito와 API Gateway에서 검증된 JWT를 받아 파일을 SQS와 Lambda로 전달하고, Amazon Bedrock Managed Knowledge Base에서 에이전틱 검색과 인용 응답을 수행하는 멀티테넌트 문서 채팅 아키텍처입니다.
Diagram

그림은 6MB 이하 파일을 인라인으로 보내고 큰 파일을 Amazon S3에 둔 뒤 S3 위치를 큐에 전달하는 업로드 경로를 구분합니다. 워커 Lambda가 배치 수집을 수행하고 DynamoDB에 상태를 기록하는 흐름과, 별도의 채팅 요청이 Managed Knowledge Base의 에이전틱 검색을 거쳐 인용 응답으로 돌아오는 흐름을 함께 연결합니다. 인증된 JWT에서 얻은 사용자 식별자가 업로드·수집·검색 경계에 사용되는 구조가 멀티테넌트 격리의 핵심입니다.

Amazon Cognito와 API Gateway에서 검증된 JWT를 받아 파일을 SQS와 Lambda로 전달하고, Amazon Bedrock Managed Knowledge Base에서 에이전틱 검색과 인용 응답을 수행하는 멀티테넌트 문서 채팅 아키텍처입니다.

용어 해설

에이전틱 검색(Agentic Retrieval)
사용자 질문을 여러 하위 질의로 분해하고 필요한 정보를 반복 검색한 뒤 답변을 구성하는 검색 방식입니다. 단일 검색보다 복합 질문에 적합하지만, 각 검색 단계마다 동일한 사용자 권한과 테넌트 필터를 전달해야 데이터 격리가 유지됩니다.
메타데이터 필터링(Metadata Filtering)
문서에 저장된 속성값을 검색 조건에 포함해 특정 사용자나 조직의 문서만 검색하는 방식입니다. 이 글에서는 각 문서의 user_id와 인증된 JWT에서 얻은 사용자 식별자를 비교해 검색 결과의 범위를 제한합니다.
커스텀 커넥터(Custom Connector)
애플리케이션이 파일을 관리형 지식 기반으로 직접 전달할 수 있게 하는 데이터 소스 연결 방식입니다. 정기 동기화가 필요한 S3 connector와 달리 업로드한 문서를 즉시 수집하고 별도 동기화 없이 문서 ID를 기준으로 갱신할 수 있습니다.
데드레터 큐(Dead-Letter Queue)
여러 차례 처리에 실패한 메시지를 별도 보관하는 큐입니다. 문서 수집 작업이 반복 실패해도 업로드 요청 자체를 중단하지 않고, 운영자가 실패 원인을 조사할 수 있는 상태로 남겨 줍니다.

기술

  • Amazon Bedrock Managed Knowledge Base
  • Amazon Bedrock Knowledge Bases
  • Amazon API Gateway
  • AWS Lambda
  • Amazon Cognito
  • Amazon Simple Queue Service (Amazon SQS)
  • Amazon DynamoDB
  • Amazon Simple Storage Service (Amazon S3)
  • Amazon CloudFront
  • IngestKnowledgeBaseDocuments API
  • GetKnowledgeBaseDocuments API
  • AgenticRetrieveStream API
  • Retrieve API
  • Converse API
  • GetDocumentContent API

활용 사례

  • 사용자별 계약서·보고서·제품 매뉴얼 문서 채팅
  • 기업용 멀티테넌트 Agentic Retrieval
  • 대규모 동시 문서 업로드 처리
  • 인용이 포함된 내부 문서 질의응답
  • PDF의 텍스트·이미지·표를 활용하는 문서 검색
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 09. 01.수집 2026. 09. 01.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.