“내 사내 문서/교재/매뉴얼을 LLM이 똑똑하게 참고하면서 대답해 주게 만들고 싶다”
이걸 AWS 매니지드 서비스만으로 해결해 주는 게 바로 Amazon Bedrock Knowledge Bases(지식 기반) 입니다.
(https://docs.aws.amazon.com/bedrock/latest/userguide/kb-how-it-works.html?utm_source=chatgpt.com)
이 글은 Bedrock 지식 기반을 처음 쓴다는 가정으로,
을 한 번에 따라갈 수 있게 정리했습니다.
RAG(Retrieval-Augmented Generation) 는 한 줄로 말하면:
“답변하기 전에 내 문서에서 관련 내용을 먼저 찾아서 그걸 근거로 답변하게 하는 방식”
작동 흐름은 보통 이래요:
Amazon Bedrock Knowledge Bases는 이 과정을 AWS에서 “자동으로” 묶어둔 서비스예요.
즉, “RAG 파이프라인을 직접 조립하지 않아도 되게 해주는 서비스”라고 보면 됩니다.
지식 기반을 하나 만들면 보통 아래 4가지가 핵심입니다.
Amazon Bedrock 지식 기반 데이터의 사전 조건
https://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/knowledge-base-ds.html
amazon.titan-embed-text-v1 global.anthropic.claude-sonnet-4-20250514-v1:0 같은 inference profile IDAWS에서 Bedrock 지식 기반을 쓰기 전에,
루트 계정으로 한 번만 할 일과 IAM 사용자로 계속 할 일을 분리해 두면 운영이 진짜 편해져요.
루트 계정은 결제·보안·최초 설정용으로만 쓰는 게 베스트 프랙티스입니다.
실제 Bedrock 작업은 전부 IAM 사용자/역할로 하는 걸 권장합니다.
1) 결제/리전 확인
ap-northeast-2, Seoul)을 미리 정해두기2) 관리자용 IAM 사용자(또는 IAM Identity Center) 만들기
AdministratorAccess 권한 부여3) 루트 계정은 최소 사용 원칙
➡️ 여기까지는 “계정 만들고 한 번만” 하면 됩니다.
이제부터가 진짜 Bedrock 지식 기반 만드는 단계예요.
처음에는 “관리자 / 개발자” 2개로만 나눠도 충분합니다.
1) 사용 리전 확정
ap-northeast-2 (Seoul)2) Bedrock 모델 사용 허용(Access 요청/Enable)
bedrock:* (초기에는 편함, 운영 안정화 후 최소 권한으로 줄이기 권장)3) 데이터 소스(S3) 준비
PDF/문서/이미지 등을 담을 전용 S3 버킷 준비
참고: S3생성 및 권한 설정 블로그
폴더 구조 예시
raw/ : 원본 PDF/이미지processed/ : 정리된 텍스트/Markdownkb/ : 지식 기반이 실제로 읽을 경로 kb/textbook/middle/grade1/S3 권한(최소)
s3:ListBucket, s3:GetObject, s3:PutObject4) 벡터 스토어(OpenSearch Serverless) 준비(선택)
aoss:* 또는aoss:CreateCollection, aoss:BatchGetCollectionaoss:UpdateAccessPolicy, aoss:CreateIndex5) 지식 기반용 IAM Role 생성
bedrock.amazonaws.com 허용s3:GetObject, s3:ListBucket)1) Bedrock 지식 기반 접근 권한
bedrock:ListKnowledgeBases, bedrock:GetKnowledgeBasebedrock:Retrieve, bedrock:RetrieveAndGeneratebedrock:InvokeModels3:GetObject2) 콘솔에서 Knowledge Base 생성 & Sync
Create knowledge base3) 콘솔에서 Test knowledge base로 질의 테스트
4) 코드에서 RetrieveAndGenerate 호출 준비
boto3 등)bedrock-agent-runtime 클라이언트로 호출bedrock:RetrieveAndGeneratebedrock:InvokeModelRetrieveAndGenerate) 위주이렇게 나누면,
이번 파트는 “내 문서를 Bedrock 지식 기반이 읽게 만드는 과정”입니다.
핵심은 딱 2가지예요.
1) S3(데이터 소스)를 Knowledge Base에 연결
2) Sync(동기화)를 눌러서 인덱싱(Chunk → Embedding → Vector store 저장)
데이터 소스/형식 사전 조건 참고
https://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/knowledge-base-ds.html
BedRock 지식 기반 생성시 참고 블로그 : https://dobby-isfree.tistory.com/241
1) S3 버킷/폴더 구조(예시)
raw/ : 원본(그대로 보관)processed/ : 전처리된 텍스트/마크다운(선택)kb/ : 지식 기반이 읽을 “최종” 경로 (여기만 연결하는 걸 추천)예:
s3://my-kb-bucket/kb/manual/s3://my-kb-bucket/kb/textbook/middle/grade1/2) 업로드
kb/ 아래로 업로드합니다.3) 주의(자주 막히는 포인트)
v1/, v2/)로 관리하면 좋습니다.Bedrock 콘솔에서 아래 순서대로 진행합니다.
1) Bedrock 콘솔 접속
Create knowledge base2) Knowledge Base 기본 설정
my-kb 처럼 구분 가능한 이름3) Data source(데이터 소스)로 S3 선택
kb/ 경로를 정확히 입력s3://my-kb-bucket/kb/manual/4) Embedding 모델 선택
amazon.titan-embed-text-v1 등5) Vector store 선택
6) Create
Sync = “S3 문서를 읽어서 지식 기반에 반영하는 과정”입니다.
Sync를 누르면 내부적으로:
즉, S3에 문서를 올렸다고 바로 반영되는 게 아니라, Sync를 해야 반영됩니다.
1) Bedrock 콘솔 → Knowledge base 선택
2) Data sources 탭 이동
3) 연결된 S3 데이터 소스 선택
4) Sync 버튼 클릭
확인할 것
In progress → Completed로 바뀌는지Failed로 뜨면서 원인(권한/파일형식 등)이 나옵니다.현업에서는 보통 아래처럼 운영합니다.
kb/ 경로에 반영kb/manual/v1/ (운영)kb/manual/v2/ (준비)1) IAM Role 권한 문제
s3:ListBucket, s3:GetObject 확인2) S3 경로 오타
s3://bucket/kb/manual/ 처럼 prefix가 정확한지 확인3) 지원하지 않는 파일 형식/손상된 파일
4) 리전(Region) 혼용
5) 너무 큰 문서/너무 많은 문서
지식 기반을 만들고 Sync까지 완료했다면, 이제 콘솔에서 바로 질문을 던져서
아래 화면처럼 Amazon Bedrock → 지식 기반 → (내 Knowledge base 선택) → 지식 기반 테스트로 들어가면 됩니다.

테스트 화면은 크게 2부분입니다.
왼쪽: 구성(설정)
오른쪽: 테스트
왼쪽 검색 및 응답 생성에서 아래 둘 중 반드시 이걸 선택합니다.
검색 전용: 데이터 소스
→ 문서 검색 결과만 보여주고, 답변 생성은 안 함
검색 및 응답 생성: 데이터 소스 및 모델 ✅
→ 검색 + LLM 답변 생성까지 한 번에 수행
📌 보통 우리가 원하는 건 “RAG 답변”이라서 검색 및 응답 생성이 맞습니다.
캡처처럼 Claude 3.5 Sonnet 등 원하는 모델이 선택되어 있어야 합니다.
(모델 접근 허용이 안 되어 있으면 목록에 안 뜰 수 있음)
오른쪽 미리 보기(채팅 영역)에 질문을 입력합니다.
예:
고려 건국 과정 설명해줘후삼국 통일 과정의 핵심 사건을 정리해줘실행:
정상적으로 지식 기반이 동작하면 답변에 출처 표시(footnote / [1] 같은 번호) 가 뜹니다.
캡처에서도 답변 중간에 [1][2] 같은 형태로 출처가 붙는 걸 확인할 수 있습니다.
추가로 왼쪽 또는 하단의 소스 청크(Source chunk) 영역에서
✅ 결론: