📚 Amazon Bedrock – RAG & 지식 베이스 설정

이 문서는 Amazon Bedrock에서 RAG(Retrieval-Augmented Generation)
파이프라인과 **지식 베이스(Knowledge Base)**를 설정하는 방법을 단계별로
정리한 가이드입니다.
스토리지는 Amazon S3, 벡터 데이터베이스는 Amazon OpenSearch
Serverless
를 사용합니다.


1. 🔍 준비 사항

  • IAM 사용자 (루트 계정 ❌, IAM 계정 ✅)
  • IAM 사용자에게 AdministratorAccess 정책 부여
  • 필요한 AWS 서비스:
    • Amazon Bedrock
    • Amazon S3
    • Amazon OpenSearch Serverless (또는 외부 벡터 DB)
  • 업로드할 문서 파일 (예: evolution_of_the_internet.pdf)

2. 🛠 단계별 설정

Step 1 – IAM 사용자 만들기

  1. IAM 콘솔 → 사용자 생성
  2. 사용자 이름 입력 (예: danny)
  3. AWS Management Console Access 활성화
  4. 비밀번호 설정
  5. AdministratorAccess 정책 연결
  6. 로그인 URL / 계정 정보 저장 후 IAM 사용자로 로그인


Step 2 – Bedrock에서 지식 베이스 생성

  1. Bedrock 콘솔 → Knowledge Bases → Create
  2. 지식 베이스 이름 입력

  1. IAM 권한 → 새 서비스 역할 생성
  2. 데이터 소스 선택 → Amazon S3
  3. (선택) 다른 데이터 소스:
    • 웹 크롤러 (웹 페이지)
    • Confluence
    • Salesforce
    • SharePoint


Step 3 – Amazon S3 버킷 만들고 문서 업로드

  1. S3 콘솔 → 버킷 생성
    • 리전: us-east-1
    • 버킷 이름: 전 세계에서 유일해야 함 (예: my-kb-bucket-danny)
  2. 문서 업로드
  3. 업로드 확인 (객체 리스트에서 보이는지 체크)


Step 4 – S3와 Bedrock 지식 베이스 연결

  1. Bedrock 지식 베이스 생성 중 → 데이터 소스에 S3 버킷 선택

  1. 임베딩 모델 선택:
    • Amazon Titan Text Embeddings V2 (기본)
  2. 벡터 데이터베이스 선택:
    • 시험 대비 포인트 → Amazon OpenSearch Serverless (가장 자주 언급됨)
    • 외부 DB → Pinecone(무료 티어 제공)

⚠️ 비용 주의: OpenSearch Serverless는 최소 약 $172/월 발생 → 테스트 후 반드시 삭제 필요!


Step 5 – 데이터 동기화

  1. 지식 베이스에서 Sync 실행
    • PDF → 텍스트 청크 분할 → 임베딩 생성 → 벡터 DB 저장
  2. OpenSearch에서 컬렉션 / 인덱스 확인 가능


Step 6 – 지식 베이스 테스트

  1. 모델 선택 (예: Anthropic Claude Haiku)
  2. 질문 입력 (예: "World Wide Web을 만든 사람은 누구야?")
  3. Bedrock 내부 처리:
    • 벡터 DB에서 관련 청크 검색
    • 질문 + 검색 결과를 합쳐서 프롬프트 생성
    • 모델이 최종 답변 생성 (출처 포함)
  4. 출처 링크 클릭 시 → S3 문서 열람 가능


3. 🧠 내부 동작 원리 (RAG)

1
2
3
4
5
6
7
flowchart TD
A[📂 Amazon S3 문서] --> B[✂️ 청크 분할 & 임베딩 생성<br/>(Amazon Titan)]
B --> C[🗄 벡터 DB<br/>OpenSearch Serverless]
C --> D[🔍 KNN 검색]
D --> E[📑 관련 청크 추출]
E --> F[📝 쿼리와 합쳐서 프롬프트 생성]
F --> G[🤖 모델이 답변 생성 + 출처 제공]
  • Chunking (청크 분할): 큰 문서를 작은 단위로 나눔\
  • Embeddings (임베딩): 텍스트를 숫자 벡터로 변환\
  • KNN 검색: 가장 유사한 k개의 벡터를 찾아냄\
  • Augmented Prompt: 원래 질문 + 검색된 내용 → 더 정확한 답변

4. 🛑 비용 절감 – 리소스 정리

테스트 끝난 후: 1. Bedrock 지식 베이스 삭제 2. OpenSearch Serverless 컬렉션 삭제 3. (선택) S3 버킷 유지 또는 삭제 (S3는 저렴)


5. 📌 시험 대비 핵심 포인트

  • 루트 계정은 Bedrock 지식 베이스 생성 불가 → IAM 사용자 사용해야 함
  • 벡터 DB 선택지 (시험에 자주 등장):
    • OpenSearch (KNN 검색)
    • Aurora PostgreSQL (pgvector 확장)
    • Neptune Analytics (그래프 기반 RAG)
    • S3 Vectors (저비용, 초저지연 검색)
  • 외부 벡터 DB: Pinecone, Redis, MongoDB Atlas
  • 데이터 소스 확장성: S3, 웹 크롤러, Salesforce, Confluence,SharePoint 등
  • RAG 핵심 정의: Retrieve → Augment → Generate

정리:
Amazon Bedrock에서 S3 + OpenSearch 기반의 지식 베이스를 구축하고, Titan 임베딩 모델로 벡터를 생성한 뒤, KNN 검색 + LLM 응답까지 연결하는 과정을 마쳤습니다.
이 흐름은 AWS 자격증 시험에서도 자주 등장하는 주제이므로 꼭 이해하고 기억해두세요.