MongoDB Day Seoul 2022 후기

개발 끄적끄적 .. ✍️·2022년 10월 24일
0

MongoDB Day Seoul 2022

10월 19일 수요일 양재역 엘타워에서 진행한 몽고디비 컨퍼런스에 참여했습니다. 이번 몽고디비 컨퍼런스는 3년 만에 오프라인으로 진행되었습니다.

💡 MongoDB ?
몽고디비는 도큐먼트 지향형 데이터베이스입니다. 일반적으로 사용하는 관계형데이터베이스가 아닌 비관계형 데이터베이스로서 비정규화된 형태를 가지고 있는 것이 특징입니다

몽고디비는 최근 12개월의 다운로드 수가 지난 12년간의 다운로드 횟수보다 많은 만큼 최근 각광 받는 데이터 베이스입니다. 수많은 기업에서 몽고디비를 사용하고 있고, 몽고디비 Atlas 솔루션을 도입하고 있습니다.

Session

이번 MongoDB Day Seoul 2022는 총 8개의 세션으로 진행되었습니다(오프닝과 키노트 발표는 제외). 크게는 인프런, 네이버와 같은 몽고디비 고객사 세션 / AWS, Confluent이 진행한 파트너 세션 / 몽고디비 자체 세션으로 나눠 진행되었습니다.

고객사 세션은 각 플랫폼에서 몽고디비 솔루션을 적용하고 도입한 경험을 공유했고, 파트너 세션의 경우 파트너사의 솔루션과 몽고디비가 함께 만들어 갈 수 있는 큰 차원의 방향을 제안했습니다. 마지막으로 몽고디비 자체 세션은 이번에 새롭게 release된 몽고디비 6.0을 중점으로, 개선되고 보완된 몽고디비 솔루션에 대한 소개를 진행했습니다.

각 세션에 대한 간략한 정리를 해보았습니다.
[고객사 세션 1] 시리즈 A 스타트업이 검색엔진으로 MongoDB Atlas Search를 선택한 이유

  • 인프런이 가지고 있던 문제
    1. 대부분의 기능을 Aurora for PostgreSQL에 성능에 의존 (DB엔진에 의존)
      • 검색 중 Full Text Search 가 발생하게 되면 데이터베이스 부하가 발생
      • 부하 이후 시스템 장애로 이어질 수 있음
    2. 인프런 프로젝트가 가지고 있는 레거시
      • 이것은 대부분의 스타트업에서 가지고 있는 레거시
    3. 인프런의 검색 기능의 노후화
      • DB 엔진에 의존한 검색의 한계
  • 맨처음 도입하려고 했던 아키텍쳐
    • 기존 PG + Redis
    • 검색엔진: AWS OpenSearch
    • 비정형 데이터: AWS DynamoDB
    • 하지만 이들을 모두 안정적으로 운영할 수 있을까에 대한 고민
    • 최고의 아키텍쳐 보다는 지금 가장 효율적인 아키텍쳐로 비즈니스의 요구사항을 적시에 달성하는 것이 더 중요하다고 생각
  • Atlas Search 도입 결과
    • AWS Aurora 리소스 감소. 평균 50% → 20%
    • 검색 성능이 증가됨에 따라, 검색 이후 실제 구매까지 이어지는 비율 증가(비즈니스적 성과)
  • Atlas Search 단점
    • 부족한 커뮤니티와 레퍼런스
    • 성능적인 부분에서 Elastic Search > Atlas Search
    • 로컬 테스트 환경 구성이 어려움
    • 검색 텍스트가 어떻게 tokenizing 되는지 알 수가 없음
  • Atlas Search 장점
    • 커뮤니티와 레퍼런스가 부족하지만 MongDB 서포트팀이 이러한 부분들을 매우 잘 지원해줌
    • 인프런 백엔드 개발자들이 기본 node에 대한 이해가 있어서 상대적 익숙함
    • 높은 SLA. 99.995% ← 1년에 서비스 다운타임이 26m 17s
    • 형태소 분석기 성능
  • 인프런이 도입해보니..
    • RDBMS만 사용하고 있고, RDMBS의 Full Text Search로 검색을 하면서 비정형 데이터 베이스 도입이 예정되어 있는 소규모 스타트업은 고려해볼만한 옵션
    • 최소한의 도구로 다양한 문제들을 일정수준 이상으로 해결가능

[고객사 세션 2] 네이버의 MongoDB 활용사례

  • 몽고디비 서포터들이 네이버에서 잘 사용할 수 있게 도와줬다는 이야기

[파트너 세션 1] Confluent와 함께 분산된 데이터를 MongoDB로 연결하기

  • 여러 레거시 시스템을 클라우드에 통합하는 것은 매우 복잡
  • 전체 환경에서 레거시 데이터 시스템을 교체하거나 리팩토링 하는 것은 쉽지 않음. 그동안 데이터 가시성이 제한 될 수 있음
  • 여러 데이터 사일로 및 데이터 형식 통합의 어려움
  • 무튼 그래서 Confluent에서 제공하는 통합 솔루션을 사용하면 매우 편하게 합칠 수 있다..

[파트너 세션 2] MongoDB Atlas on AWS와 함께하는 MSA Journey

  • 모놀리식 아키텍쳐의 한계
    • 성능 이슈
    • 확장성의 한계
    • 개발자들의 유연성 저해
    • 개발 및 배포 지연

[몽고디비 세션 1] MongoDB 6.0 새로운 기능

  • 역대 몽고디비 주요 release 및 변화
    • 3.0 / 3.2: wired tiger 엔진 도입
    • 3.4 / 3.6: MongoDB Atlas
    • 4.0: 분산 환경에서의 ACID 도입
    • 4.4: shard key 변경 가능
  • 몽고디비 6.0 주요 기능
    • Time series collection
      • 시계열 컬렉션에 대한 성능과 정렬 개선
      • 5.0 시계열 컬렉션 등장
      • 5.2 버전부터 시계열 컬렌션에 열압축을 진행했었는데, 6.0에서 압축율 개선. i/o 성능 개선
    • Relational Migratior
      • rdb → mongo db 마이그레이션 솔루션
      • 기존 db의 스키마를 분석하고, 이를 몽고디비에 적용하여 rdb에서 mongdo db로 데이터를 마이그레이션
      • 지원 가능한 rdb: Oracle, MSSQL, MySQL, PostgresSQL
    • Cluster to cluster sync
      • 기존 MongoDB 클러스터에서 다른 MongoDB 클러스터로 데이터를 복제 & 동기화
    • Atlas Search
      • Atlas Search: Apache Lucence을 탑재한 search 솔루션
      • 교차 검색, Facet등 성능 개선
      • 전용 분석 노드 / 컬럼 인덱싱을 활용한 분석 워크로드에 대한 더 많은 유연성 제공
    • Altas serverless
    • initial sync 성능 4배 개선. 더 빠른 속도로 더 나은 프로비저닝 가능
      • initial sync: 몽고디비 primary node 데이터를 replica node로 옮기는 작업(초기 단계의 동기화)
    • 스토리지 엔진 개선
    • 샤딩 환경에서 connection storm 개선

[몽고디비 세션 2] MongoDB Atlas Search Deep-dive Session

  • DB엔진 vs 검색엔진
    • 검색 엔진
      • 검색에 최적화된 데이터 구조
      • 식별자가 아닌 일반 언어를 통한 검색. 사용자가 무엇을 검색할지 알 수 없음
    • DB 엔진
      • BSON 형태의 데이터. MQL을 이용한 데이터 조회
      • 미리 정의된 쿼리를 통한 운영 데이터 베이스 조회. 보통 식별자를 통한 조회 → 정확한 결과
  • MongoDB Atlas 내부에 DB엔진과 검색엔진이 함께 존재
  • 데이터베이스(mongod)와 검색(mongot) 인덱스 간의 데이터 자동 동기화(데이터 아키텍쳐의 단순화)
  • 데이터와 스키마가 변해도 이를 자동으로 변경
  • 비즈니스 개발에 더욱더 집중 가능. 개발 생산성 증가
  • Atlas Search의 주요 개념
    • Analyzer: 주어진 도큐먼트를 읽어 검색 가능한 term을 반환
    • Inverted Index: Analyzer가 생성한 Term들에 대해서 Index를 생성하고, 각각의 Term을 가지고 있는 도큐먼트들에 대한 목록을 유지
    • Score: 사용자가 검색한 질의가 얼만큼 연관이 있는지 표현. 사용자의 결과는 Score를 기반으로 정렬

후기

컨퍼런스 자체에서 큰 교훈이나 솔루션을 얻기는 쉽지 않습니다. 짧은 시간 동안 깊고 방대한 내용을 전달한다는 일차적인 한계가 가장 크고, 컨퍼런스의 내용이 현재의 문제와 어떤 관계가 있고, 도입 가능한 부분인가에서 오는 이차적인 한계가 있습니다.

그럼에도 컨퍼런스에서 얻을 수 있는 것은 기술 변화의 큰 흐름을 따라 갈 수 있다는 것이 가장 크다고 생각합니다. 그리고 지금 당장은 고려되지는 않지만, 이후 만날 문제들에 대하여 컨퍼런스의 내용이 솔루션을 찾는 과정에서의 좋은 배경이자 은색총알이 될 수 있다고 생각합니다.

기타 사진들 ..




0개의 댓글