본문 바로가기
행사 및 개인 프로젝트/개발자 컨퍼런스 후기

MongoDB.local Seoul 2023 행사 메모 및 후기

by 번데기 개발자 2023. 9. 29.
반응형

 

MongoDB.local Seoul 2023 행사 참여

 

이번에 MongoDB Local Seoul 2023 행사에 다녀왔습니다.

 

간단히 세션별로 내용을 요약해서 공유드리고 후기를 적어보도록 하겠습니다.

 

각 세션에 대해 PDF 파일도 필요하시면 받아가시면 좋을것 같습니다.

 

세션 1 : DevOps Engineer의 저녁이 있는 삶, MongoDB Atlas 도입기

 

첫번째 세션은 MongoDB Atlas 도입 이후의 서비스 개선 사례에 관련된 내용 정리한 세션이었습니다. 

 

 

Atlas 마이그레이션

  • 삼성전자의 가전전자들에서 발생하는 Smart Home DB 구축을 위해 MongoDB 도입하고 Self Host부터 MongtoDB Atlas까지 기존 Smart Home DB 마이그레이션
  • 도입 이유는 scale-up 및 scale-out의 어려움, 기존 방식의 여름철에만 급증하는 트래픽에 대한 workload를 다루기 힘듬
  • 마이그레이션 이후 MongoDB 인프라 관리는 MongoDB atlas에 넘김

 

MongoDB Atlas 마이그레이션 이후 긍정적인 변화

  • 응답 latency 감소
    • 과거 : 25ms ~3초
    • 현재 : 1ms ~ 25ms
  • 에러 감소 효과
    • DB 자체에서 발생하는 에러 현저하게 감소
    • 2021.01 ~ 2022.05 : 19건
    • 2022.05 ~ Now : 0건
    • 높은 고가용성 (지속적 운영에 장점)

 

세션 2 : What's New in MongoDB 7.0

 

 

두번째 세션은 MonboDB 7.0의 개선점에 관련된 내용을 주로 다뤘습니다.

 

개선된 개발자 경험

  • Aggregation 내의 새로운 백분위수 지원
    • 전체 데이터에서 백분위 값을 확인 가능
    • $median
    • 해당 항목의 중간값을 search 할수 있음.
    • $bitAnd
    • and배열에 대한 비트 연산 결과를 반환.
    • $percentile
    • 지정된 백분위 수 값에 해당하는 스칼라 값의 배열을 반환. ex) [0.5 0.9]
  • $$USER_ROLES.role
    • Before뷰안에서의 로직 변경시 관련된 모든 뷰를 재정의 해야함.
    • 제한된 사용자에 대해 다양한 데이터 액세스 방안을 설정하려면 각 맞춤 역할데 대해 별도의 뷰를 만들고 사용자에게 역할을 할당해야함.
    • IN 7.0쿼리 시 각각 다른 결과를 내려줄 수 있다. ex) 회원관리팀과 결제팀
    • 제한된 사용자에 대해 다양한 데이터 액세스를 설정하려면 사용자 역할을 기반으로 하는 논리를 사용하여 하나의 동적 보기를 지원.
  • 시계열 collection 기능 개선 (Time Series Collection)
    • 성능 향상
    • 확장성 향상
    • 특정 timestamp document에 대한 다중 / 단일 삭제 지원
    • Timestamp에 대한 인덱싱 지원 / 기존에는 timestamp에 대한 인덱싱 X

성능

  • 샤딩된 인스턴스 CRUD시 Routing 테이블로 인한 속도 저하 감소
  • 여러 쿼리 성능 향상
  • 그룹핑
    • $group
    • $project
  • 필터링 & 정렬
    • $match
    • $sort
  • 복제셋 내에서 조인
    • $lookups


마이그레이션

  • Cluster-To-Cluster
    • 단방향 마이그레이션 지원
    • Dev Staging 구성시 더 편리하게 별도의 클러스터 구축 가능
    • 워크로드 분석시 용이
  • 서로 다른 Topology 내에서 보다 편하게 sync 가능.
    • 클러스터의 shard 수가 동일 하거나 다른 경우.m to n shard
    • m to m shard

보안

  • OpenID Connect 지원
    • SSO provider 자격증명을 통한 DB 엑세스 제어
    • OIDC SASL에 대한 드라이버 지원 (?)
    • 데이터베이스 액세스를 위한 OpenId Connect 지원.

 

summary

  • 개발자에게 여러가지 새로운 operator를 지원.
  • 쿼리에 대한 실행 엔진을 바꿈으로 인해서 쿼리 성능 향상
  • cluster ro cluster를 통해 똑같은 기술 스택을 가지고 효율적으로 다룰수 있게 함.

 

 

세션 3 : Confluent와 함께 하는 실시간 데이터와 클라우드 여정

 

MongoDB에서 제공하는 Streaming processing에 대한 활용 예제를 다룬 내용들이었습니다. Kafca 서비스를 좀더 쉽게 사용하는 Confluent Cloud라는 서비스를 MongoDB와 같이 사용하는 방법에 대해 설명하였습니다.

 

 

Kafca

실시간 데이터 처리에 사용되는 기술
  • Data in Motion - 표준화된 1:N 통합.
  • 데이터가 도착하는 즉시 처리하는 스트리밍 ETL을 지원하는 confluent - 레이턴시가 굉장히 짧다.
카프카를 직접 운영하는 것은 어려운 일이다.
  • 카프카는 쉽지 않다. 새로운 미션 크리티컬한 데이터나 사용 사례가 있을 수록 더 어렵다.
카프카 Key Challenge.
  • 운영 부담과 리소스
  • 보안의 어려움
  • 실시간 연결 및 처리
  • 글로벌 가용성의 어려움

 

Confluent Cloud (AWS)
Confluent Cloud를 이용하면 좀더 쉽게 Kafka 서비스를 이용 가능
AWS 위에 새롭게 아키텍처한 Apache Kafka 서비스.
  • build
  • connect
  • integrate
  • 완전한 데이터 스트리밍 플랫폼을 위한 모든 필수 도구를 사용하여 kafka에코 세스템 구축
  • 온프레미스에서 클라우드 및 클라우드 전반에 걸쳐 플랫폼으로 데이터를 실시간으로 연결
성능, 확장성, 유연함, 글로벌화 등 여러 면에서 좋음
  • 탄력적인 확장성.
  • 손쉬운 확장 및 축소를 통해 워크로드 및 페타바이트 스토리지를 10배 더 빠르고 쉽게 처리할 수 있으며 운영 부담도 없다.
  • 복원력보장
  • 지연시간 단축
운영비용 ⇒ TCO (Total Cost Ownership) 감소

 

 

세션 4 : Streaming Processing 을 활용한 실시간 이벤트 처리

 

MongoDB의 Streaming Processing을 통해 데이터를 가공하고 Kafka를 통해 전달하는 방법을 다뤘습니다.

 

 

실제 서비스 상황에서의 연속적인 데이터들

  • Iot 데이터
  • 센서데이터
  • 운전데이터
  • 주문 데이터

 

Streaming Processing

  • 도큐먼트 모델을 이용한 유연한 스키마.
  • Streaming processing against Batch Query
  • Continuous Processing,  유효성 검사 및 상태 저장 Window Processing.
  • MongoDB Atlas를 활용하여 실시간 생성되는 데이터와 기존 데이터를 결합.
  • Event & Document
  • Schema 변경에 빠른 대응
  • 무한이 반복 되는 쿼리 & 데이터
  • 효율적인 관리 측면에서 streaming process를 개발.

 

Streaming Processing의 실제 사용 사례

  • kafka로부터 넘어온 주식데이터를 Streaming Processing으로 뉴욕 증시만 가져올수 있도록 필터링 후 평균값 (30분, 1시간 등)을 내어 다시 kafka로 전송

 

세션 5 : Relational Migrator를 활용한 애플리케이션 현대화

 

 

RDBMS에 비해 MongoDB가 좋은 이유에 대해 전반적인 MSA 아키텍쳐 및 현대적인 애플리케이션 구조의 변화를 근거로 설명한 내용을 다뤘습니다. 

 

  • Relational migrator를 활용한 애플리케이션 현대화.
    • What?
      • SQL DB를 MongoDB로 전환.
    • How?
      • 스키마 변환
      • 데이터 복제
      • DAL(Data Access Layer)
    • 왜 NoSQL 인가?
      • 변화에 대한 신속한 대응/혁신 → 유연한 스키마 필요
      • 개발주기의 단축
        • Object - data 일치
        • APP 주도의 Top-Down 방식
        • SQL은 Bottom - Up 방식
    • Realation Migrator
      • 지원 가능 SQL로 부터 빠르고 안정적인 MongoDB로 전환
        • Design
          • 기존의 SQL 스키마로 부터 MongoDB 스키마 변환.
          • 직관적인 ER방식 디자인 툴
        • Migrate
          • MongoDB 스키마에 맞춘 데이터 변환과 복제 SQL과 데이터 실시간 동기화.
        • Generate
          • DAL코드 생성.

 

 

 

세션 6 : 더욱 안전한 MongoDB Atlas on AWS 사용 방법

 

MongoDB와 AWS Cloud를 이용할때 보안을 강화할수 있는 방법에 대해서 설명한 세션이었습니다.

 

  • Mongo DB Atlas의 보안을 강화하는 방법
    • PrivateLink를 활용한 보안 강화
      • MongoDB는 자체적으로 VPC와 VPC 접근을 위한 LoadBalancer와 접근을 위한 Endpoint 주소가 존재.
      • MongoDB 엔드포인트에 대한 접근은 전통적으로 IP Blocking 형태로 제어
      • 하지만 MongoDB는 해당 자체 VPC를 Private Endpoint로 설정 가능
      • AWS에서는 PrivateLink 라는 서비스를 통해 Atlas의 endpoint와 단방향 연결로 통신 가능
      • 해당 방식의 장점은 AWS에서 MongoDB Atlas로의 접근만 허용, 반대는 허용 X
    • KMS IAM을 활용한 보안 강화
      • 데이터 키 생성 및 관리 하는 방법
        • 여러개의 데이터 키를 생성 후 사용.
        • 특정 데이터 키가 유출되더라도 피해를 최소화.
        • 이중 월렛 구조를 이용해 데이터 키를 한번 더 암호화 함.
    • AWS KMS(Key Management Service)
      • IAM policies
      • AWS CloudTrail

 

 

 

세션 7 : Riot Games Korea: Why MongoDB? Why Atlas?

 

 

라이엇 게임즈 코리아에서 MongoDB Atlas 도입 이유 및 긍정적인 효과를 정리한 세션이었습니다. 

  • 라이엇 게임즈 코리아가 하는일
    • PC방 비지니스
    • 모바일 상점
    • 게임 퍼블리싱
    • 이스포츠 데이터 분성
  • 라이엇 게임즈 코리아 Mongo Atlas 도입 이유
    • 기존에 자체적으로 EC2에 self-hosting 방식으로 MongoDB 구축
    • 여러 데이터가 쌓이다보니 Document의 갯수가 100억개 이상, 전체 DB 사이즈 350G, Index 사이즈 170G로 DB 자체가 무거워짐
    • 큰 DB의 백업에 대한 부담
    • AWS 점검을 위해 주기적으로 EC2 인스턴스를 꺼줘야 하는 문제 발생 (AWS Maintanence)
    • DB 버전 업그레이드에 대한 부담
    • 데이터에 대한 시각화
  • 라이엇 게임즈코리아가 Atlas로 이전후에 좋았던 부분들
    • AWS Maintanence가 자동으로 처리 (메일로 바로 공지)
    • 스토리지의 자동적인 백업 (엔지니어 투입 필요 X)
    • 차트 기능을 통해 원하는 데이터를 시각화해서 보여줄수 있어, 비지니스 인사이트 확보
    • Online Archive를 통해 과거에 쌓인 자주 사용하지 않는 데이터를 쉽게 백업하여 현재 사용하고 있는 DB의 용량 감소로 인한 성능 향상
    • 기술 지원

 

행사 후 받은 것들 

 

 

 

 

마무리

MongoDB local 행사를 통해서 그냥 회사에서 쓰던 Atlas 에 대해 알던 내용이 아닌 좀더 많은 기능을 간접적으로 알게 되어 좋았습니다.또, 이번 MongoDB 행사에서 알게된 AWS 및 MongoDB 보안 관련 내용은 실제로 회사에 도입을 해볼수 있을것 같아서, 이처럼 얻게 된점이 많은 것 같습니다.

 

다른 컨퍼런스도 시간적인 여유가 될때 참석하여 공유해보도록 하겠습니다. ~!

 

 

참고 자료

 

세션1 - DevOps Engineer 저녁이 있는 삶.pdf
1.66MB
세션2 - MongoDB 7.0 새로운 기능.pdf
4.91MB
세션3 - Cloudfuent 와 함께하는 실시간 데이터와 클라우드 여정.pdf
2.69MB
세션4 - Streaming Processing을 활용한 실시간 이벤트 처리.pdf
1.03MB
세션5 - Relational Migrator를 활용한 애플리케이션 현대화.pdf
7.79MB
세션6 - 더욱 안전한 MongoDB Atlas on AWS 사용법.pdf
4.45MB
세션7 - Riot Games Korea - Why MongoDB Atlas.pdf
2.44MB
세션8 - Vector Search 차세대 애플리케이션을 주도하는 기술.pdf
4.27MB
세션9 - Samsung Knox Cloud Solutions and MongoDB.pdf
3.10MB

반응형