AWS 기술 블로그

Amazon Kendra를 사용하여 AstraZeneca Japan의 엔터프라이즈 검색 기능 및 규정 준수 개선

이 글은 AWS for Industries, Life Sciences Blog에 게시된 Improving AstraZeneca Japan’s Enterprise Search Capabilities and Regulatory Compliance using Amazon Kendra by Thiam Hwa Lim, Firaz Akmal, Jarich Vansteenberge, and Jim O’Neil을 한국어로 번역 및 편집하였습니다.

일본 제약산업에서는 잘못된 정보나 오래된 정보가 전달되는 것을 방지하기 위해 윤리적 마케팅 규정 준수가 매우 중요합니다. 엄격한 규제와 소비자 보호를 강조하는 것으로 유명한 일본에서 제약 기업들은 신뢰를 유지하고 환자의 건강을 보장하기 위해 일련의 윤리적 지침을 준수해야 합니다. AstraZeneca Japan (AZKK) 의 영업 담당자는 규정을 준수하면서 고객과 소통하기 위해 가장 최신의 검증된 마케팅 콘텐츠를 검색해야 하는 과제에 직면해 있습니다. 이 문제를 해결하기 위해 AZKK는 Amazon Kendra를 사용하여 관련성이 높고 최신 업데이트 되어있으면서 검증된 콘텐츠를 찾을 수 있도록 엔터프라이즈 검색 환경을 개선하기 위해 Amazon Web Services(AWS)와 협력하여 개념 증명(PoC)을 수행했습니다.

Amazon Kendra는 머신 러닝(ML)으로 구동되는 지능형 검색 서비스입니다. 웹사이트와 애플리케이션에 대한 엔터프라이즈 검색을 재해석하여 직원과 고객이 조직 내 여러 콘텐츠 리포지토리에 흩어져 있는 콘텐츠도 쉽게 찾을 수 있도록 지원합니다. 이 서비스는 일본어를 포함한 여러 언어로 반정형 및 비정형 콘텐츠에 대한 시맨틱 검색을 지원하며, 최근 AWS 도쿄 리전에서 Amazon Kendra를 정식으로 사용할 수 있다고 발표했습니다. (2023년 11월 기준으로 서울 리전에는 아직 정식 출시 되지 않았습니다.) 일본어 시맨틱 검색은 AZKK가 PoC를 위해 Amazon Kendra를 선택한 요구 사항 중 하나 였지만, Microsoft Excel 문서의 색인 및 검색 기능과 같이 AZKK가 필요로 하는 추가적인 기능도 있었습니다. 또한 Amazon Kendra는 다양한 데이터 소스 연결을 위한 커넥터를 지원하며, 사용자 정의 커넥터를 생성하는 기능도 제공합니다. 이를 통해 AZKK는 거의 실시간으로 Kendra의 색인을 업데이트할 수 있으므로 사용자가 최신 콘텐츠를 쉽게 검색/찾을 수 있습니다.

AZKK는 Amazon Kendra, Amazon API GatewayAmazon Simple Notification Service (Amazon SNS), Amazon Simple Queue Service (Amazon SQS), AWS LambdaAmazon EventBridge EventBusAmazon EventBridge PipesAWS Key Management Service (AWS KMS) 고객 관리 키,  Amazon Simple Storage Service (Amazon S3)를 사용하여 엔터프라이즈 검색 솔루션을 구축했습니다. 솔루션 아키텍처는 다음 다이어그램에 설명되어 있습니다.

모든 데이터는 AWS KMS 고객 관리 키를 사용하여 미사용 시 암호화됩니다.

  1. Box 콘텐츠 관리 솔루션에서 문서가 생성, 업데이트, 삭제될 때마다 Box는 웹훅을 통해 JSON 메시지를 API Gateway로 전송합니다.
  2. API Gateway는 중복 메시지를 제거하고 문서에 대한 이벤트 순서를 유지하기 위해 Amazon SQS FIFO(선입선출) 대기열로 메시지를 전달합니다.
  3. 람다 함수는 SQS 큐에 있는 메시지에 의해 트리거되어 메시지를 처리합니다. 문서의 파일 유형이 Amazon Kendra에서 지원되는 경우, 파일이 Box에서 S3 버킷으로 전송되며 Amazon Kendra에서 색인됩니다. 이때 Box의 접근 제어 목록(ACL)에 기반하며 해당 ACL을 포함시켜 색인됩니다.
  4. 문서 ID, Amazon Kendra 인덱스 ID, Amazon Kendra 데이터 소스 ID가 포함된 JSON 개체는 Amazon Kendra 인덱싱 요청의 상태를 모니터링하기 위해 SQS FIFO 큐로 전달됩니다.
  5. Box 이벤트 유형이 FILE.TRASHED, FILE.DELETED 또는 FILE.LOCKED(Box에서 비공개로 설정됨)인 경우, Lambda 함수는 먼저 문서 콘텐츠와 문서 제목을 대체하여 콘텐츠를 검색할 수 없도록 한 다음 Amazon Kendra에 색인에서 문서를 제거하도록 요청합니다.
  6. 또 다른 람다 함수는 문서 인덱스 상태 확인용 SQS 대기열에 의해 트리거되어 Amazon Kendra를 폴링하여 인덱싱 요청의 결과를 찾습니다. 성공 또는 실패를 나타내는 결과가 수신되면, 다운스트림 프로세스에 경고하고 로깅하거나, 원하는 경우 추가 분석을 트리거하기 위해 사용자 정의 EventBridge 버스로 메시지가 전송됩니다.
  7. 이벤트 브리지 규칙은 인덱스 수집 상태를 확인하여 성공 또는 실패 결과가 나오면 람다 함수를 트리거하여 S3 버킷에서 문서의 임시 복사본을 삭제하여 문서의 복사본이 두 개가 되지 않도록 합니다.
  8. Amazon Kendra 인덱싱에 문제가 발생하여 실패 상태가 되면 EventBridge 규칙이 트리거되어 조사를 위해 팀에 메시지를 보냅니다. 예외 처리를 위해, 메시지를 재전송 시도하거나 조사를 위해 팀에 알릴 수 있는 기능이 있는 DLQ(Dead Letter Queues)를 SQS 큐에 연결해 놓았습니다.
  9. Amazon Kendra에 문제가 발생하여 인덱스 상태를 얻을 수 없는 경우, 메시지는 DLQ로 떨어지고 EventBridge는 오류를 나타내도록 메시지를 수정하여 EventBridge 버스로 전달합니다.
  10. 수신된 웹훅 알림을 처리하는 데 문제가 있는 경우, Amazon CloudWatch Alarm을 사용하여 알람을 트리거하는 DLQ로 메시지가 전달됩니다.

PoC 결과, 기존 엔터프라이즈 검색 솔루션에 비해 검색 관련성이 2배 증가했으며 검색 속도(평균 평점 4.4/5 대 2.4/5)와 접근성(평균 평점 4.2/5 대 2.2/5)도 크게 개선된 것으로 나타났습니다. 사용자의 93%가 이 솔루션을 프로덕션 환경에 도입해야 한다고 추천했습니다. 많은 사용자가 빠르고 정확한 검색이 마음에 든다는 의견을 남겼습니다.

PoC의 성공에 힘입어 2023년 6월 말, 이 솔루션은 큰 호응을 얻으며 프로덕션에 출시되었습니다.

“AI로 직원 생산성을 높이는 것은 디지털 워크포스의 핵심 기반입니다. 이 프로젝트는 연간 12,000시간의 생산성 향상을 가져왔으며, 사내 AI 엔지니어링 인재와 AWS 팀과의 긴밀한 파트너십이 가져올 수 있는 영향력을 잘 보여줍니다.” Harsh Gandhi, 일본 아스트라제네카 IT 정보 및 디지털 책임자.

AZKK는 더 많은 데이터 소스를 추가하고 더 나은 콘텐츠 분류를 지원하기 위해  Amazon Comprehend와 솔루션을 통합하여 솔루션을 개선하고자 합니다. 또한 음성 상호 작용을 지원하기 위해 Amazon Polly와 함께 챗봇 통합을 위해 Amazon Lex를 사용하는 것을 검토할 계획입니다. 이를 통해 AZKK의 현장 인력은 이동 중에도 Amazon Kendra와 핸즈프리로 상호 작용할 수 있습니다.

Amazon Kendra는 AstraZeneca Japan과 같은 조직이 검색 환경을 개선하고 직원 생산성을 높일 수 있도록 지원합니다. 생성형 AI의 확산으로 이제 더 복잡한 쿼리에 대한 응답을 생성하는 것이 가능해 졌습니다. 적시에 정확한 답변을 생성할 수 있게 된 AZKK는 검색 증강 생성(RAG) 기반 애플리케이션에서 대규모 언어 모델(LLM)로 구동되는 대화형 AI를 사용하도록 사용 사례를 발전시키고 있습니다. RAG 아키텍처는 환각(Hallucination)이 발생하기 쉬운 LLM에 의존하는 대신 회사 데이터에 대한 응답을 제한하여 생성형 AI의 환각을 줄입니다. 데이터 소스 커넥터, 공통 파일 형식 지원, 높은 보안성을 갖춘 포괄적인 에코시스템인 Amazon Kendra의 검색 API(RAG를 위해 특별히 설계됨)를 사용하면 검색 메커니즘으로 Amazon Kendra를 사용하여 엔터프라이즈 사용 사례에 생성형 AI 솔루션을 빠르게 사용할 수 있습니다. AZKK는 기존 Amazon Kendra 기반 솔루션을 Amazon Bedrock 및 Amazon Sagemaker JumpStart와 같은 기본 AWS 서비스로 보강하여 사용 사례에 가장 적합한 다양한 LLM에 액세스할 수 있습니다.

Amazon Kendra를 활용해 자료 검색 환경을 구축하는 과정을 상세히 기술한 다음의 블로그를 참고하시기 바랍니다.

Kyungshik Shin

Kyungshik Shin

신경식 솔루션즈 아키텍트는 다년간 컨테이너 기반의 서비스 구축/운영과 다양한 산업 분야의 고객사에게 기업향 서비스 연동 및 구축을 지원한 경험을 보유하고 있습니다. 이러한 경험을 바탕으로 고객이 AWS 상에서 비즈니스에 적합한 클라우드 아키텍처를 설계하고 구축할 수 있도록 돕는 역할을 수행하고 있습니다.