메뉴 닫기

AWS에서 OpenSearch로 확장 가능한 실시간 검색 애플리케이션 구축하기

글 제목: OpenSearch 시작 가이드 – AWS에서 빠르고 확장 가능한 검색 애플리케이션 구축하기

조직과 기업은 실시간으로 쏟아지는 방대한 데이터를 분석하고 활용할 수 있는 시스템을 구축하는 데 어려움을 겪고 있습니다. 특히 IoT, 전자상거래, 보안 등의 다양한 분야에서는 대용량 데이터의 검색, 분석, 시각화가 비즈니스 성공의 핵심 요소가 되고 있습니다. 이 글에서는 AWS에서 제공하는 완전관리형 검색 및 로그 분석 서비스인 Amazon OpenSearch Service를 이용해 효과적인 검색 애플리케이션을 구축하는 방법을 소개합니다.

OpenSearch 개요와 핵심 구성

OpenSearch는 분산 아키텍처 기반으로 설계되어 있으며, 기본 단위는 JSON 형식의 문서(document)입니다. 이러한 문서는 관련된 문서 모음인 인덱스(index)에 저장되며, 검색 시 해당 인덱스를 바탕으로 데이터를 탐색합니다. OpenSearch 클러스터는 여러 노드로 구성되며, 각 역할은 다음과 같습니다:

  • 마스터 노드: 클러스터 상태 유지, 샤드 할당 등 클러스터 전반의 관리 담당
  • 데이터 노드: 데이터 저장, 색인화 및 쿼리 실행 등 주요 데이터 처리 담당
  • 코디네이터 노드: 검색, 색인 요청을 라우팅하여 데이터 노드 서버 부하 분산

또한 대규모 데이터를 효율적으로 처리하기 위해 인덱스를 샤드(shard)라는 단위로 분할하고, 고가용성을 위해 각 샤드의 복제본(replica)을 생성하여 여러 노드에 분산 저장합니다.

OpenSearch의 자동화된 확장성 기능은 Amazon OpenSearch Serverless를 통해 구현되며, 인프라를 직접 관리할 필요 없이 사용량에 따라 자동 확장됩니다.

OpenSearch 애플리케이션 아키텍처 및 활용 사례

아래는 AWS를 활용하여 확장 가능하고 완전관리형으로 배포되는 검색 애플리케이션 아키텍처입니다. UI는 AWS App Runner를 통해 배포되며, 데이터는 Lambda와 API Gateway를 통해 OpenSearch Service와 통신합니다.

OpenSearch 검색 애플리케이션 아키텍처 다이어그램

이 애플리케이션의 동작 흐름은 다음과 같습니다:

  1. 사용자가 AWS App Runner에 호스팅된 프론트엔드에 접근
  2. Amazon Cognito를 통한 사용자 인증 및 권한 확인
  3. API Gateway가 요청을 수신하여 AWS Lambda 함수로 전달
  4. Lambda 함수에서 검색아니면 색인 동작 실행
  5. 검색/색인 요청은 VPC 내의 OpenSearch 클러스터에서 수행됨

OpenSearch 앱 구축 및 배포 자동화 가이드

AWS CDK(Cloud Development Kit)를 통해 전체 인프라를 코드 기반으로 자동화하고, cdk.json을 활용하여 클러스터 구성을 수정 가능합니다. Cloudscape React UI로 구성된 앱에는 다음과 같은 기능이 포함됩니다:

  • 다양한 검색 옵션(접두사, 구문, 퍼지, 필드 기반 검색 등) 테스트
  • 제품 카탈로그의 벌크 색인 또는 초기화
  • 인덱스 문서 관리 툴 및 OpenSearch 용어 해설 자료 포함

색인 작업 및 검색 쿼리 예시

앱의 UI에서 "Bulk Index Product Catalog" 기능을 실행하면, 패션/라이프스타일 중심의 임의 샘플 데이터셋이 OpenSearch에 색인됩니다.

OpenSearch 색인화 작업 UI 예시

이후 Title, Description, Color 필드 기준으로 Prefix Match 검색을 시도해볼 수 있으며, 다음 쿼리를 예시로 활용할 수 있습니다:

{
"query": {
"match_phrase_prefix": {
"title": {
"query": "Ru",
"max_expansions": 10,
"slop": 1
}
}
}
}

Prefix Match 검색 예제 예시 화면

또한 "multi_match" 쿼리를 통해 title, description, color 등의 다중 필드를 검색 대상으로 설정해 더욱 유연한 검색 경험 제공이 가능합니다.

OpenSearch Dashboards – 실시간 시각화 및 검색 관리 툴

OpenSearch Dashboards는 데이터 검색, 시각화, 모니터링, 알림 등을 위한 통합 분석 도구입니다. 로그, 메트릭, 추적 데이터 같은 시계열 데이터 분석에도 뛰어난 퍼포먼스를 제공하며, 복잡한 검색 API 테스트 및 운영 환경 적용 전 테스트에도 활용됩니다.

OpenSearch Dashboards UI 예시 이미지

산업별 활용 사례 – 검색을 넘어 실시간 관측 시스템으로

OpenSearch는 전통적인 제품 검색 외에도 보안 분석, DevOps 운영 모니터링, IoT 센서 모니터링 등 다양한 관측(Observability) 워크로드에 활용됩니다. 실시간 로그 및 메트릭 수집 후 OpenSearch Dashboards를 활용해 다음과 같은 자동화 시나리오 구현이 가능합니다:

  • 로그 기반 시계열 분석 및 이상 탐지(Anomaly Detection)
  • 요약 통계 및 시간 히스토그램 기반 알림
  • 보안 이벤트 탐지 및 자동 알림 전송 구성

또한 SQL 및 파이프 기반 언어(PPL) 지원으로 데이터베이스 개발자들도 손쉽게 적응 가능하며, RAG나 벡터 검색, 멀티모달 검색 등 AI 기반 검색 모델과의 연계도 가능합니다.

결론

Amazon OpenSearch Service는 AWS 기반에서 검색 애플리케이션을 구축 및 운영하는 데 있어, 빠른 성능, 강력한 확장성, 보안/가용성, 그리고 자동화를 촉진하는 완전관리형 서비스입니다. 검색에서 관측까지 아우르는 광범위한 활용 시나리오를 통해 조직은 효율적인 데이터 활용 역량을 확보할 수 있습니다. 본문 내용을 기반으로 샘플 코드를 활용하여 직접 경험해보시기 바랍니다.

https://aws.amazon.com/blogs/big-data/amazon-opensearch-service-101-create-your-first-search-application-with-opensearch/

AI, Cloud 관련한 문의는 아래 연락처로 연락주세요!

(주)에이클라우드
이메일 : acloud@a-cloud.co.kr
회사 번호 : 02-538-3988
회사 홈페이지 : https://www.a-cloud.co.kr/
문의하기


AI, Cloud 도입 상담 배너