DevLog

엔지니어링 블로그를 한 곳에서 탐색하고, 최근 발행 흐름을 빠르게 파악할 수 있는 서비스 입니다.

Quick Links

  • Latest Feed
  • Engineering Directory

Support

  • 소개
  • 개인정보처리방침

Contribute

  • 원하는 블로그 추가 (준비 중)
  • Feedback

© 2026 DevLog Inc. All rights reserved.

본 사이트는 공개 RSS 피드를 통해 콘텐츠를 수집하며, 모든 콘텐츠의 저작권은 원저작자에게 있습니다.

Back to Feed
Read Original

Contents

Continue Reading

  • More from 미리디
  • Related reads#AmazonDocumentDB
#Backend

Amazon DocumentDB 인덱스 최적화로 미리캔버스의 쿼리 성능을 개선 사례

Amazon DocumentDB 인덱스 최적화로 미리캔버스의 쿼리 성능을 개선 사례
01

Summary

MongoDB와 똑같을 줄 알았죠? 미리캔버스의 DocumentDB 실전 튜닝 생존기

전환 후 마주한 쿼리 지연을 해결하고 성능을 수만 배 이상 끌어올린 인덱스 최적화 전략

이 아티클은 미리캔버스 팀이 MongoDB에서 Amazon DocumentDB로 마이그레이션한 후 겪은 기술적 도전과 구체적인 해결책을 다룹니다. 두 데이터베이스 간의 쿼리 플래너 및 인덱스 동작 차이를 상세히 분석하고, 실무에서 즉시 적용 가능한 4가지 성능 최적화 패턴을 제시합니다. 단순한 엔진 교체를 넘어 클라우드 네이티브 환경에서 DB 성능을 극대화하는 시니어 엔지니어의 통찰을 담고 있습니다.

  • 01DocumentDB에서 Partial Index 사용 시 필터 조건이 정확히 일치해야 하는 엄격한 제약 사항 분석
  • 02SORT_MERGE 미지원에 대응하기 위한 애플리케이션 레벨의 효율적인 쿼리 병합 전략
  • 03정규표현식(Regex)을 범위 검색($gt/$lt)으로 변환하여 극적인 속도 향상을 이끌어낸 사례
  • 04Hot Document 잠금 경합을 해결하기 위해 ElastiCache(Redis)를 활용한 쓰기 분산 기법
  • 05MVCC 가비지 컬렉션(GC) 메커니즘과 성능 모니터링을 위한 핵심 운영 지표 가이드

+RECOMMENDATION

MongoDB에서 DocumentDB로 마이그레이션을 준비하거나 운영 중인 백엔드 엔지니어에게 필수적인 지침서입니다. 특히 대규모 트래픽 환경에서 인덱스 설계의 미세한 차이가 성능에 미치는 영향을 이해하고 싶은 개발자에게 강력히 추천합니다.

The Problem

MongoDB Atlas에서 Amazon DocumentDB로 전환한 후, 동일한 인덱스와 쿼리가 기대와 다르게 동작하며 성능 저하가 발생했습니다. 특히 DocumentDB의 쿼리 플래너 특성으로 인해 Partial Index가 무시되거나, SORT_MERGE 미지원으로 인한 인메모리 정렬 부하 및 Hot Document로 인한 쓰기 지연 문제가 나타났습니다.

The Solution

Partial Filter Expression을 쿼리 조건과 정확히 일치시키고, $or 정렬 쿼리는 애플리케이션 레벨에서 병합하도록 변경했습니다. 또한 정규식(Regex)을 범위 검색($gt/$lt)으로 변환하여 IXSCAN 효율을 높였으며, 빈번한 카운트 업데이트($inc)는 Redis로 분리하여 데이터베이스 락 경합을 해소했습니다.

The Result

정규식의 범위 쿼리 변환만으로 실행 시간을 2,236ms에서 0.08ms로 약 28,000배 가량 단축하는 성과를 거두었습니다. 시스템 전반의 쓰기 지연 시간이 정상화되었고, 쿼리 플래너가 최적의 인덱스를 타도록 유도하여 마이크로초 단위의 안정적인 성능을 확보했습니다.

Trade-off

DocumentDB의 아키텍처 제약(SORT_MERGE 미지원 등)으로 인해 일부 로직을 애플리케이션 레벨에서 처리하게 되어 코드 복잡도가 다소 증가했습니다. 또한 자동화된 가비지 컬렉션(GC) 제어가 불가능하고 마이그레이션 직후 통계 워밍 기간이 필요하다는 운영상의 변수가 존재합니다.

03

Key Concepts

Concept · 01

ESR 원칙 (Equality-Sort-Range)

MongoDB 계열 DB에서 효율적인 인덱스 구성을 위해 일치 조건(=), 정렬(Sort), 범위(Range) 순으로 인덱스 필드를 배치하는 표준 설계 규칙입니다.

  • DocumentDB 쿼리 플래너의 차이로 인해 이 원칙이 기대만큼 동작하지 않는 예외 상황을 확인
  • 플래너가 최적의 인덱스를 선택할 수 있도록 쿼리 형태를 보정하는 기초 논리로 활용
Concept · 02

SORT_MERGE

여러 개의 인덱스 스캔 결과를 별도의 메모리 정렬 단계 없이 병합하여 결과를 반환하는 데이터베이스 실행 단계입니다.

  • Amazon DocumentDB는 이를 지원하지 않아 $or 사용 시 인메모리 정렬 부하가 발생함을 식별
  • 이를 우회하기 위해 쿼리를 분리하여 애플리케이션에서 직접 병합하는 전략을 도입
Concept · 03

MVCC (Multi-Version Concurrency Control)

데이터 업데이트 시 원본을 수정하는 대신 새로운 버전을 생성하여 읽기 일관성을 유지하고 동시성을 제어하는 방식입니다.

  • DocumentDB의 가비지 컬렉션(GC) 부하와 MVCC ID 사용량을 모니터링하여 시스템 안정성을 확보
  • 장기 실행 트랜잭션이 오래된 버전의 정리를 방해하지 않도록 관리하는 것이 운영의 핵심
Continue reading · same source

미리디More from 미리디

View all posts from 미리디
  • AI 잘 쓰는 사람의 노하우, 어떻게 팀 전체로 퍼질까?

    AI EnablementAXAI Native
    2일 전
  • 미리캔버스가 AI 3대로 해외 트렌드에서 진짜를 가려내는 법

    LLM AgentsMulti-Agent OrchestrationTrend Analysis
    1주 전
  • AI로 QA 업무를 자동화한 방법: n8n부터 E2E 테스트 자동화까지

    n8nE2E TestingLLM
    2주 전
  • 통합 검색 임베딩 모델 개발기: 9개 태스크를 고르게 학습시키기

    EmbeddingMulti-task LearningContrastive Learning
    2주 전
  • 데이터 요청 응대 30분을 3분으로 줄인 n8n AI 에이전트

    n8nAI AgentWorkflow Automation
    3주 전

Related reads#AmazonDocumentDB

Explore #AmazonDocumentDB
미리디

Amazon DocumentDB로 미리캔버스의 성능 50%와 비용 30%를 개선하다

#AmazonDocumentDB4개월 전

Source

미리디
미리디
Engineering Blog

Published · April 23, 2026

Topics

Amazon DocumentDBMongoDBQuery OptimizationIndex StrategyAWS