Articleaws.amazon.com·2026년 6월 26일·0

Build interactive PDF text extraction from Amazon S3

Quick Summary

이 글은 Amazon S3에 저장된 텍스트 기반 PDF를 MCP 서버로 실시간 조회해, 배치 파이프라인 없이 필요한 문서 내용을 즉시 추출하는 방법을 설명한다.

Build interactive PDF text extraction from Amazon S3 관련 대표 이미지

🖼️ 인포그래픽

Build interactive PDF text extraction from Amazon S3 내용을 설명하는 본문 이미지

🖼️ 4컷 인포그래픽

Build interactive PDF text extraction from Amazon S3 내용을 설명하는 본문 이미지

💡 한 줄 요약

이 글은 Amazon S3에 저장된 텍스트 기반 PDF를 MCP 서버로 실시간 조회해, 배치 파이프라인 없이 필요한 문서 내용을 즉시 추출하는 방법을 설명한다.

📌 핵심 요약

  • 글의 출발점은 감사, 법무, 재무 회의처럼 특정 PDF 내용이 즉시 필요한 상황에서 예약 작업이나 배치 파이프라인을 기다리기 어렵다는 문제의식이다.
  • 해결책은 Amazon S3에 있는 PDF 파일을 AI 클라이언트가 MCP 서버를 통해 요청하고, 서버가 PDF를 내려받아 PyPDF2로 텍스트를 추출한 뒤 다시 사용자에게 반환하는 구조다.
  • 이 접근법은 텍스트가 이미 PDF 안에 인코딩된 문서, 대화형 조회, 개발 또는 개념검증 환경, 최소 인프라를 원하는 경우에 적합하다.
  • 반대로 스캔 문서, OCR, 필드·표 추출, 복잡한 레이아웃 분석, 대규모 운영 SLA가 필요한 문서 처리에는 Amazon Textract를 선택해야 한다고 설명한다.
  • 설치 절차는 Python 가상환경 생성, mcp·boto3·PyPDF2 설치, MCP 서버 파일 작성, Kiro CLI의 mcp.json 설정, 서버 연결 검증으로 이어진다.

🧩 주요 포인트

  1. 글의 출발점은 감사, 법무, 재무 회의처럼 특정 PDF 내용이 즉시 필요한 상황에서 예약 작업이나 배치 파이프라인을 기다리기 어렵다는 문제의식이다.
  2. 해결책은 Amazon S3에 있는 PDF 파일을 AI 클라이언트가 MCP 서버를 통해 요청하고, 서버가 PDF를 내려받아 PyPDF2로 텍스트를 추출한 뒤 다시 사용자에게 반환하는 구조다.
  3. 이 접근법은 텍스트가 이미 PDF 안에 인코딩된 문서, 대화형 조회, 개발 또는 개념검증 환경, 최소 인프라를 원하는 경우에 적합하다.
  4. 반대로 스캔 문서, OCR, 필드·표 추출, 복잡한 레이아웃 분석, 대규모 운영 SLA가 필요한 문서 처리에는 Amazon Textract를 선택해야 한다고 설명한다.
  5. 설치 절차는 Python 가상환경 생성, mcp·boto3·PyPDF2 설치, MCP 서버 파일 작성, Kiro CLI의 mcp.json 설정, 서버 연결 검증으로 이어진다.

🧠 상세 정리

1. 실시간 PDF 조회가 필요한 배경

글은 규정 준수 담당자, 변호사, 재무 분석가가 각각 감사·고객 통화·회의 직전에 PDF 안의 특정 조항이나 수치를 찾아야 하는 상황에서 시작한다. 이런 경우 예약된 작업이 끝나기를 기다리거나 배치 파이프라인을 돌리는 방식은 현실적으로 늦다. 핵심 문제는 문서가 이미 Amazon S3에 저장되어 있어도, 그 안의 텍스트를 필요한 순간에 바로 꺼내 쓰기 어렵다는 점이다. 따라서 글은 PDF 내부 텍스트에 대한 온디맨드 접근을 목표로 삼고, 사용자가 자연어로 묻거나 CLI에서 요청하면 빠르게 관련 텍스트를 얻는 구성을 제안한다.

2. 제안하는 해법의 핵심 구조

이 글에서 만드는 것은 Amazon S3에 저장된 PDF 파일에서 텍스트를 실시간으로 추출하는 서버다. 방식의 중심에는 Model Context Protocol, 즉 MCP가 있으며, MCP는 애플리케이션과 외부 데이터 소스 사이의 통신 계층 역할을 한다. 사용자는 명령줄 인터페이스에서 PDF 추출을 요청하고, MCP 서버는 요청받은 버킷과 객체 키를 사용해 S3에서 PDF를 가져온다. 이후 PDF 파싱 구성요소가 문서의 텍스트를 추출하고, 서버는 그 결과를 다시 클라이언트에 반환해 사용자가 확인할 수 있게 한다.

3. 적합한 사용자와 업무 시나리오

글은 이 방식이 특히 규정 준수, 법무, 금융 서비스, 경영진의 즉석 조회 업무에 맞는다고 설명한다. 규정 준수나 법무 팀은 수백 페이지 정책 문서나 계약서에서 특정 조항을 빠르게 찾아야 할 때가 많고, 금융 서비스 팀은 감사 중 내부 리스크 정책이나 규제 문서의 정확한 문구를 즉시 확인해야 할 수 있다. 경영진은 전략 회의 중 전 분기 보고서의 수치나 근거를 현장에서 확인해야 할 수 있다. 이 사례들의 공통점은 모두 문서가 텍스트 기반 PDF이고, 수동 검색이나 사후 조회보다 즉각적인 응답이 더 중요하다는 점이다.

4. Amazon Textract와의 역할 구분

글은 MCP 기반 PDF 텍스트 추출을 Amazon Textract의 대체재가 아니라 보완적인 선택지로 제시한다. Amazon Textract는 스캔 페이지, 손글씨, 다중 열 레이아웃, 양식과 표 추출, 복잡한 레이아웃 분석, 운영 규모의 배치 처리와 SLA가 필요한 문서 처리에 적합한 완전관리형 서비스로 설명된다. 반면 MCP 기반 접근은 PDF 안에 이미 텍스트가 들어 있어 OCR이 필요 없고, 사용 흐름이 배치가 아니라 대화형이며, 개발 또는 개념검증 환경에서 인프라를 최소화하려는 경우에 맞다. 문서 처리의 난도가 높아질수록 Textract를 선택해야 한다는 구분이 분명하다.

5. 비용 비교의 의미

비용 비교는 약 1만 페이지의 텍스트 기반 PDF를 한 달 동안 개념검증 환경에서 다룬다는 예시로 제시된다. Amazon Textract 쪽은 페이지 단위 처리, OCR 준비, 양식·표 추출, 레이아웃 이해, 엔터프라이즈 SLA 같은 기능 범위를 포함하며, 예시 비용은 처리·S3 저장·Lambda 컴퓨트·LLM 토큰 비용을 합쳐 대략 23~28달러로 안내된다. MCP 서버 쪽은 이미 텍스트가 들어 있는 PDF에서 직접 텍스트를 추출하는 범위이고, 관리형 처리 서비스가 없으므로 S3 저장과 데이터 전송 중심으로 약 2.50달러가 예시로 제시된다. 글은 두 수치를 단순한 가격 대결로 보지 말고, 기능 범위와 작업 요구사항에 맞춰 선택해야 한다고 강조한다.

6. 아키텍처와 처리 흐름

아키텍처는 네 가지 구성요소로 설명된다. 첫째는 사용자가 요청을 보내는 명령줄 인터페이스이고, 둘째는 통신을 담당하는 MCP 계층이며, 셋째는 PDF 처리를 수행하는 사용자 정의 MCP 서버, 넷째는 문서를 저장하는 Amazon S3다. 보안은 AWS Identity and Access Management 권한을 통해 S3 접근을 제어하는 방식으로 연결된다. 전체 흐름은 AI 클라이언트가 CLI에서 PDF 추출을 시작하고, 요청이 MCP 서버로 전달되며, 서버가 S3에서 파일을 가져와 PDF 파서에 넘기고, 추출된 텍스트를 다시 클라이언트가 표시하는 순서로 진행된다.

7. 설치와 구현 절차

구현 절차는 먼저 Python 3.10 이상, AWS CLI와 유효한 자격 증명, Kiro CLI, PDF가 들어 있는 S3 버킷을 준비하는 것에서 시작한다. 이후 프로젝트 폴더를 만들고 이동한 뒤 Python 가상환경을 생성·활성화하고, mcp, boto3, PyPDF2 패키지를 설치한다. 다음으로 s3_pdf_extractor.py 파일을 만들어 MCP 서버를 정의하고, extract_s3_pdf_text라는 도구가 bucket과 key를 입력받아 S3에서 PDF를 다운로드한 뒤 PyPDF2의 PdfReader로 각 페이지의 텍스트를 추출하도록 구성한다. 서버 실행 테스트에서는 출력 없이 대기하는 상태가 정상이며, 이는 요청을 받을 준비가 되었다는 뜻으로 설명된다.

8. Kiro CLI 연결과 보안 고려

서버 파일을 만든 뒤에는 Kiro CLI가 MCP 서버를 인식하도록 설정 파일을 수정해야 한다. 설정 파일 경로는 ~/.kiro/settings/tools/mcp.json으로 제시되며, 파일이 없으면 디렉터리를 만들고 새 JSON 파일을 생성한다. 이 파일에는 s3-pdf-extractor 서버 이름, 실행 명령인 python, 그리고 실제 s3_pdf_extractor.py의 절대 경로를 args에 넣어 등록한다. 이후 Kiro CLI를 재시작하고, s3://버킷명/sample.pdf 형태의 문서에서 텍스트 추출을 요청해 연결을 검증한다. 보안 측면에서는 별도 API 키를 만들지 않고 기존 AWS 자격 증명과 IAM 권한을 사용한다는 점이 강조된다.

🧾 핵심 주장 / 시사점

  • 이 접근법의 가치는 복잡한 문서 처리 자체보다, 이미 텍스트가 들어 있는 PDF를 사람이 기다리지 않고 바로 조회할 수 있게 하는 데 있다.
  • 비용이 낮아 보이는 MCP 방식도 처리 범위가 제한되어 있으므로, 스캔 문서나 표·양식·레이아웃 해석이 필요한 순간에는 Amazon Textract와 역할을 분리해야 한다.
  • 개념검증 단계에서는 작은 MCP 서버와 기존 S3·IAM·CLI 구성을 활용해 빠르게 실험하고, 요구사항이 복잡해질 때 더 전문적인 문서 처리 서비스로 확장하는 흐름이 적합하다.

✅ 액션 아이템

  • S3 저장 PDF의 회의·감사·재무 상황에서 배치 지연 없이 즉시 조회 가능한 MCP 텍스트 추출 파이프라인을 우선 적용한다.
  • 텍스트 인코딩 PDF는 MCP로 처리하고, 스캔·OCR·필드·표·복잡 레이아웃 문서는 Amazon Textract로 분기 기준을 정의한다.
  • Python 가상환경에서 mcp·boto3·PyPDF2 설치 후 MCP 서버 구현, Kiro CLI의 mcp.json 설정, 서버 연결 검증을 점검한다.

❓ 열린 질문

  • 텍스트 기반 PDF 즉시 추출이 실제 회의나 감사 업무에서 배치 방식 대비 어느 지연 임계치까지 유효한가?
  • PDF 인코딩 실패나 누락 발생 시 MCP 재요청·오류 복구를 어느 범위에서 허용할지 어떤 규칙이 필요한가?
  • 처리량 증가나 운영 SLA 압박이 발생할 때 Textract 전환 판단을 위한 정량 기준은 무엇인가?

관련 문서

공통 태그와 주제 흐름을 기준으로 같이 보면 좋은 문서를 이어서 제안합니다.