외부 API 오케스트레이션을 대체하는 서버 측 내장 웹 검색의 등장
파운데이션 모델은 지난주의 기업 실적 발표나 어제의 규제 변경, 오늘 아침의 일기 예보처럼 학습 데이터에 포함되지 않은 최신 정보에 답할 때 한계를 보인다. AWS는 이러한 정보 격차를 해소하기 위해 AWS New York Summit 2026에서 AgentCore의 웹 검색 기능을 발표한 데 이어, Amazon Bedrock 내에서 동작하는 Web Search 기능을 일반 제공(GA)했다. 이 기능은 모델 응답을 최신 웹 지식에 연결하는 서버 측 내장 도구로, 개발자가 챗봇이나 코딩 어시스턴트, CLI 도구를 구축할 때 겪는 환각 현상을 줄이는 그라운딩(Grounding)을 수행한다.
기존의 그라운딩 구현 방식은 개발자가 직접 제3자 웹 검색 제공업체를 선정하고, 외부 API를 통합하며, 이를 유지보수하는 복잡한 과정을 필요로 했다. 이 과정에서 프로젝트 일정이 지연되거나 데이터 거주지(Data Residency) 위험이 발생하며, 운영 오버헤드가 가중되는 문제가 반복되었다. Amazon Bedrock의 Web Search는 이러한 외부 벤더 온보딩 과정과 API 오케스트레이션 단계를 완전히 제거하여, 그라운딩을 Bedrock의 네이티브 기능으로 전환했다. 개발자는 이제 별도의 서드파티 보안 리뷰를 수행하지 않고도 모델에 실시간 웹 지식을 연결할 수 있다.
이 도구는 Amazon Bedrock의 차세대 추론 엔진을 통해 제공되는 OpenAI 모델을 대상으로 지원된다. 개발자는 OpenAI 호환 API를 호출할 때 단일 파라미터만 추가함으로써 기능을 활성화하며, 별도의 함수 스키마 정의나 클라이언트 측 루프 구축 없이도 그라운딩된 답변을 얻는다. 모든 검색 라이프사이클은 Bedrock 인프라 내부의 서버 측에서 처리되므로, 단 한 번의 API 호출로 검색 쿼리 생성, 콘텐츠 검색, 결과 주입, 최종 응답 생성이 완료된다.
지식 그래프와 시맨틱 스니펫을 통한 팩트 정확도 최적화
Amazon Web Search는 Amazon이 직접 운영하며 지속적으로 갱신하는 수십억 개의 문서 기반 웹 인덱스를 활용한다. 시스템은 이 웹 인덱스를 도메인 내 엔티티와 그들 사이의 관계망을 정의한 내장 지식 그래프(Knowledge Graph)와 결합하여 멀티 소스 그라운딩을 수행한다. 모델이 단순히 추출된 페이지 텍스트에서 답을 추론할 경우 발생할 수 있는 미세한 사실 오류를 방지하기 위해, 특정 도서의 저자나 사건 발생 연도 같은 사실 관계 질문에는 지식 그래프를 우선 참조하여 높은 확신도로 답변한다.
정보 추출 단계에서는 전체 웹 페이지를 모델에 전달하는 대신 쿼리와 관련성이 높은 구절만 뽑아내는 시맨틱 스니펫(Semantic Snippet) 추출 방식을 적용한다. Web Search는 각 웹 페이지에서 쿼리에 직접적으로 영향을 주는 패시지만을 추출하여 모델의 컨텍스트 윈도우에 최적화된 형태로 반환한다. 이 방식은 내비게이션 메뉴나 광고, 푸터와 같은 보일러플레이트(Boilerplate) 토큰 소모를 줄여 모델이 핵심 정보에만 집중하게 만든다.
시맨틱 스니펫 방식은 입력 토큰 수를 효율적으로 관리함으로써 추론 지연 시간을 최소화하고 응답 속도를 높인다. 현재 시스템은 Amazon이 미리 인덱싱한 웹 데이터인 `indexed-web` 추출 방식만을 제공하며, 실시간 웹 페이지를 직접 가져오는 `live-web` 추출 기능은 향후 업데이트를 통해 추가될 예정이다. 이러한 구조는 검색 결과의 양보다 질적인 정제 단계에 집중함으로써, 모델이 무관한 정보에 기반해 거짓 답변을 생성하는 환각 현상을 기술적으로 억제한다.
aws-bedrock-token-generator를 활용한 3단계 구현 절차
Web Search를 구현하는 첫 번째 단계는 `aws-bedrock-token-generator` 패키지를 사용하여 인증 체계를 설정하는 것이다. 이 패키지는 기존 AWS IAM ID를 기반으로 SigV4 서명을 거쳐 최대 12시간 동안 유효한 단기 베어러 토큰(Bearer Token)을 생성한다. 개발자는 별도의 API 키를 관리할 필요 없이, 생성된 토큰을 OpenAI 클라이언트의 `api_key` 파라미터에 입력하고 요청 대상을 `bedrock-mantle` 엔드포인트로 지정한다.
두 번째 단계는 API 호출 시 `tools` 배열에 `web_search` 파라미터를 추가하는 설정이다. 아래 코드 블록과 같이 `external_web_access` 필드를 통해 검색 소스를 지정할 수 있다.
tools=[{'type': 'web_search', 'web_search': {'external_web_access': False}}]`external_web_access` 파라미터의 기본값은 `true`이며, 이를 사용하려면 `bedrock-websearch:ExternalWebAccess` 권한이 필요하다. 위 예시처럼 `false`로 설정하면 추가 권한 없이 인덱싱된 웹 코퍼스 내에서만 검색을 수행한다. 현재는 `indexed-web`만 지원되지만, API 명세에 `live-web` 파라미터가 이미 포함되어 있어 향후 기능 업데이트 시 코드 수정 없이 설정값 변경만으로 실시간 웹 추출 기능을 사용할 수 있다.
마지막 단계는 응답 데이터의 `annotations` 배열에서 `url_citation` 객체를 추출하여 인용구를 처리하는 것이다. Bedrock은 응답 텍스트와 함께 각 참조 소스의 URL, 페이지 제목, 그리고 텍스트 내 위치를 나타내는 `start_index`와 `end_index`를 반환한다. 개발자는 이 문자 오프셋 수치를 활용해 응답 텍스트의 정확한 지점에 인라인 각주를 렌더링하거나 근거 문장에 하이라이트를 표시하는 인터페이스를 구현할 수 있다.
제로 데이터 유출 구조와 CloudTrail 기반의 엔터프라이즈 감사
Amazon Bedrock의 Web Search는 기본적으로 제로 데이터 유출(Zero Data Egress) 설정을 제공하여 모든 데이터가 AWS 환경 외부로 나가지 않도록 보장한다. 모든 검색 프로세스가 Bedrock 인프라 내부에서 완결되므로, 기업의 엄격한 데이터 거주지 및 컴플라이언스 요구사항을 충족한다. 향후 데이터 외부 노출이 필요한 새로운 기능이 도입되더라도, 사용자의 명시적인 요청이 있을 때만 데이터가 전송되도록 설계하여 보안 통제권을 사용자에게 부여한다.
보안 관리를 위해 모든 검색 활동은 AWS CloudTrail과 연동되어 관리 이벤트로 기록된다. `bedrock-websearch:InvokeSearch` 및 `bedrock-websearch:InvokeFetch` API 호출이 발생하면 호출자의 신원, 타임스탬프, 수행 액션, 리전 정보가 자동으로 저장된다. 특히 소스 신원 정보에는 권한을 위임받아 세션을 생성한 포워드 액세스 세션(forward-access-session)의 시작자 정보까지 포함되어 전체 호출 경로를 명확히 추적할 수 있다.
데이터 프라이버시 보호를 위해 CloudTrail 로그에는 사용자가 입력한 쿼리 텍스트, 검색 결과 URL, 추출된 페이지 원문이 기록되지 않는다. 검색어는 모델 추론 프롬프트와 동일한 보안 수준으로 취급되어 감사 로그에서 완전히 제외되며, 오직 '행위'에 대한 기록만 남긴다. 또한 IAM 설정 오류로 인한 접근 거부 발생 시 `AccessDeniedException` 이벤트에 구체적인 조건 키를 포함하여 제공함으로써, 개발자가 누락된 권한을 즉시 진단하고 수정할 수 있도록 지원한다.
결과적으로 개발자는 외부 검색 API 도입 시 필수적으로 수반되던 보안 리뷰, API 키 관리, 데이터 유출 리스크를 제거하고 구현 시간을 획기적으로 단축할 수 있다.



