Amazon Web Services 한국 블로그
Amazon OpenSearch Service를 활용한 4가지 관측성 및 분석 가상 시나리오 솔루션 알아보기
이 글은 2023년 5월 17일부터 7월 27일 까지 진행된 Amazon OpenSearch Bootcamp for Partners 참가자들이 가상의 시나리오를 바탕으로 개발한 솔루션을 AWS 고객의 비즈니스 문제 해결에 도움을 드리기 위해 작성되었습니다.
OpenSearch는 검색, 분석, 보안 모니터링 및 관측용 애플리케이션을 위한 확장성있고 유연한 오픈 소스 소프트웨어 제품군으로 아파치 2.0 라이센스 정책을 따릅니다. 대기 시간이 짧은 검색 및 집계 기능을 제공하는 검색 엔진인 OpenSearch는 시각화 및 대시보드 도구인 OpenSearch 대시보드, 그리고 경고 알림, 세분화된 액세스 제어, 관측성, 보안 모니터링 등과 같은 고급 기능을 제공하는 플러그인 제품군으로 구성되며, 최근 AI 활용과 관련되어 주목받는 벡터 저장 및 처리 기능도 제공합니다.
이번 Amazon OpenSearch Bootcamp Service는 파트너사의 고급 기술 인력을 양성하기 위한 취지로 진행되었습니다. SMILESHARK, MEGAZONE CLOUD, LG CNS, LDCC, kakaoenterprise, SK Inc를 포함하는 총 6개 파트너사 24명의 기술인력이 참여하여 AWS Analytic TFC 소속 전문가들의 온라인 라이브 강의와 실습 워크샵을 9주에 걸쳐 학습하고 10주차에는 가상의 고객이 겪고 있는 문제에 대해 Amazon OpenSearch를 활용한 솔루션을 설계하여 데모시연을 하고 어떻게 문제를 해결할 수 있는지 발표하였습니다. 4개의 사례에 대해 간략한 소개를 드리며 더욱 상세한 내용이 궁금한 경우 과제를 수행한 파트너사에 문의하시기 바랍니다.
1. Quantum Market 애플리케이션 관측성
본 가상 사례는 메가존 클라우드의 김병주 솔루션 아키텍트께서 제안해 주셨습니다.
과제
Quantum Market은 최근 MSA 아키텍처로 현대화하였으며 CloudWatch를 모니터링 솔루션으로 사용하였습니다. 새로운 아키텍처는 애플리케이션들이 분산화되어 서비스가 관계파악도 어렵고 문제 발생시 많은 API 콜을 트레이스하면서 원인을 파악하고 해결하는 것이 힘들었습니다. 예를 들어 코드 버그인지, 서비스간 API 호출 실패에 의한 문제인지, 클라우드에서 제공하는 서비스의 문제인지를 파악하기 어려웠습니다. 이러한 문제를 해결하기 위해 어플리케이션의 관측성 확보를 원합니다. 어플리케이션에 문제가 발생했을 때 원인을 찾아 빠르게 조치하고 서비스 성능 문제까지 한눈에 파악하기를 원하지만, 요소 기능별로 개별 도구를 선정해서 통합하기보다 구성 복잡성을 단순화할 수 있는 통합 도구를 원합니다.
제안 아키텍처 특장점
OpenTelemetry를 통해 트레이스, 메트릭, 로그등의 데이터를 수집하고 Opensearch Observability Plugin을 통해 시각화하고 분석을 할 수 있어 마이크로서비스의 많은 컨테이너 및 AWS의 다양한 서비스와의 종속성에 대한 관측성을 확보할 수 있습니다.
- OpenSearch가 제공하는 대시보드를 통해 여러 가지 관찰가능한 정보들을 제공받을 수 있는데, 복잡한 컨테이너 기반 애플리케이션이나 AWS 서비스와의 종속성을 그래프화하여 쉽게 파악할 수 있어 좋습니다.
- 장애 발생시 webhook를 이용한 slack연동 등의 다양한 방법을 통해 opensearch에 즉각적인 실시간 알람 전달이 가능합니다. 예를 들어 웹사이트 오류에 대한 알람을 보내고 싶다면 http 503 code 등을 slack 같은 외부 애플리케이션으로 쉽게 전송할 수 있습니다.
- OpenTelemetry라는 하나의 도구를 이용하여 트레이스,메트릭,로그 수집을 하므로 각 요소별 솔루션을 조합하는 것보다 솔루션 선정이 간단합니다.
2. AnyCompany 검색 시스템 통계 분석
본 가상 사례는 LG CNS의 임민수 솔루션 아키텍트께서 제안해 주셨습니다.
과제
AnyCompany는 상품 검색 플랫폼을 구축하고 검색어 통계를 분석하여 고객의 검색 경험을 향상 시키고 운영 업무를 위한 분석에 활용하고 싶습니다. 인기 검색어, 최근 검색어, 검색어 자동 완성 기능을 제공하고 사용자 경험을 제고하고, 인기 검색어 등을 분석하여 상품 노출을 강화하거나 재고관리 측면에 필요한 정보를 얻기 위한 분석을 하기를 원합니다. 그러나 이를 위한 IT 운영관리 업무는 최소화하기를 원하며 또한 장애와 워크로드 변화에도 탄력적으로 대응 할 수 있는 방법을 찾고 있습니다.
제안 아키텍처 특장점
자연어 검색을 통해 사용자의 의도에 맞는 검색 결과를 제공하고, 자동 완성 기능, 최근 검색이나 인기 검색을 지원하여 사용자의 검색 경험이 향상되도록 하였습니다.
- 다양한 검색 요구 사항을 만족하기 위한 스키마 설계를 하였으며, 통계 분석을 위해 대화형 쿼리 방식과 API 를 이용하였고 자체 대시보드를 이용한 시각화를 통해 사용자들의 웹 검색 시스템 이용 현황에 대한 인사이트를 쉽게 얻을 수 있도록 하였습니다.
- 검색어 추천을 위해 N-gram 을 사용하였으며 (N=2) 적용하여 지나치게 많은 항목을 제시하지 않도록 하였습니다.
- 인기 검색어는 최근 데이터를 중심으로 요약하여 구현하였으며, 긴 구간에 대한 분석은 데이터 레이크를 이용한 분석을 제안하였습니다.
- 클러스터 구성 및 운영관리가 필요없는 Serverless 를 사용하여 운영관리 부담을 최소화 하였습니다.
3. Gamezoa Company 실시간 게임 로그 분석
본 가상 사례는 메가존 클라우드의 김은옥 솔루션 아키텍트께서 제안해 주셨습니다.
과제
Gamezoa는 게임 사용자 행동 분석 및 구매 패턴 분석을 통해 사용자에 대한 인사이트를 얻고 게임 운영 현황에 대한 정보를 빠르게 검색하기를 원합니다. 이를 위해 기존 배치형태의 데이터 파이프 라인 중 유저 허들 분석, 유료 아이템, 게임 머니등의 데이타에 대한 실시간 분석이 요구됩니다. 초기에는 초당 3000건 처리 성능이 요구되지만 향후 증가되는 트래픽 환경을 대비하기 위해 데이터 파이프 라인 확장이 가능해야 하고, 장애를 대비한 고가용이 지원되어야 하며, 인프라 운영의 복잡성을 제거하고 단순화하여 비지니스에 집중하고 싶습니다.
제안 아키텍처 특장점
증가하는 데이터량에 탄력적으로 대응할 수 있는 스토리지 및 컴퓨팅 사용, 워크로드에 맞는 목적별 분석 도구들을 쉽게 사용할 수 있는 분석 플랫폼을 만들기 위해 AWS 기반 데이터 레이크를 구축할 것을 제안하였습니다.
- 게임 회사의 실시간 분석 요구 사항을 수용하기 위해 스트리밍 데이터 수집과 시각화를 쉽게 구현할 수 있는 Amazon Kinesis Data Streams, Amazon Kinesis Data Firehose 및 Amazon OpenSearch 를 이용해 실시간 데이터 처리 파이프라인을 구성하였으며 샤드 수를 조정하고 향상된 팬아웃을 사용하여 성능 요구 사항에 대응하였습니다.
- 데이터 증가에 따른 운영 데이터 조회 성능 저하를 예방하기 위해 아이템 구매 현황같은 관리 지표들은 일별 집계 데이터를 별도로 인덱싱해서 사용하도록 설계하였습니다.
- 서비스 운영에 필요한 정보는 OpenSearch를 이용해 빠르게 검색할 수 있도록 하였습니다. 고객의 다양한 문의 및 요청에 대해, 예를 들어 ‘어떤 아이템이 갑자기 아이템 창에서 없어졌어요’ 라는 고객 컴플레인에 대해 실제 아이템 획득 이력을 조회하여 빠르게 확인 후 대응할 수 있도록 하였습니다.
- 현대화된 데이터 레이크 아키텍처를 통해 향후 게임 업데이트 방향을 설정한다던가, 적정 아이템 수를 산정한다던가, 유저 이탈 구간을 측정하는 등의 의사결정이 데이터 기반으로 이루어질 수 있습니다.
4.Shark Company 의 관측성 현대화
본 가상 사례는 스마일샤크의 김현민 솔루션 아키텍트께서 제안해 주셨습니다.
과제
SharkCompany는 기존의 온프레미의 모노리틱 아키텍처를 AWS EKS 기반으로 현대화하였으나 이전과 다른 MSA 아키텍처의 분산화된 환경에서 발생하는 오류의 문제를 식별하고 수정하여 해결하는 것에 어려움을 겪고 있습니다. 애플리케이션의 구성이나 종속성, 오류 검색이나 원인이 되는 부분을 빠르게 찾아 코드를 수정하고 배포하기 위해 마이크로서비스 애플리케이션으로부터 로그 데이터와 트레이스를 간편하게 수집하고 분석하여 빠르게 장애 대응을 하고 싶어합니다.
제안 아키텍처 특장점
OpenTelemetry, FluentBit 을 사용하여 웹애플리케이션의 로그데이터와 트레이스가 수집되도록 하였습니다. Data Prepper를 이용하여 OpenSearch 로 전달하는 파이프라인을 구성하고 OpenSearch 대시보드와 플러그인을 사용해서 오류 데이터에 대한 관측성을 시각적으로 가질 수 있기 때문에 애플리케이션 오류의 원인이 되는 지점을 빠르게 찾아 코드를 수정 하고 배포할 수 있습니다.
- Fluent Bit의 EKS 적용과 Data Prepper 를 이용하여 OpenSearch 에 인덱싱 됩니다.
- OpenTelemetry가 제공하는 로그, 메트릭, 트레이스는 실행이 발생한 순간 또는 시간의 범위를 기록할 수가 있어 오류가 발생하는 서비스를 식별하고 해당 서비스에 대한 트레이스를 확인하여 특정 서비스의 특정 오퍼레이션으로 파고들 수 있습니다.
- OpenTelemetry의 메트릭과 트레이스는 리소스에 대한 정보를 포함하고 있어 탐색, 쿼리, 필터링의 통합적 사용이 가능하므로 분산화된 애플리케이션에 대한 관측성이 용이합니다.
- 분석 인프라 구성 작업과 비용을 최소화를 위해 OpenSearch Serverless를 제안하였습니다.
참고 : OpenSearch Bootcamp 아젠다
참고 : OpenSearch Workshop
- Dive into Amazon OpenSearch Service
- Improve search relevance with ML in Amazon OpenSearch Service
- Scalable Query Flexibility: Harnessing the Power of DynamoDB and OpenSearch Workshop
- Getting started with Amazon OpenSearch Serverless
- SIEM on Amazon OpenSearch Service Workshop
- Microservice Observability with Amazon OpenSearch Service
이 글은 AWS Analytic TFC 구성원인 김성일 SA, 박진우 SA, 이승철 TAM께서 작성에 도움주셨습니다.
– 강성희 AWS 파트너 솔루션즈 아키텍트