채널코퍼레이션, DynamoDB 테이블 분리·AWS 관리형 서비스로 마이그레이션 시간 96% 단축
핵심 내용
채널코퍼레이션이 Badge 데이터를 별도 테이블로 분리하고 AWS 관리형 서비스를 활용해 마이그레이션 시간을 96% 단축했다.
자세히 보기
채널코퍼레이션은 올인원 AI 메신저 '채널톡'의 Amazon DynamoDB User 테이블에서 Badge 기능을 분리하는 아키텍처 현대화를 진행했다. 기존 User 테이블은 1.8TB 용량에 약 16억 8천만 개 레코드를 보유하며, 프로필과 Badge 등 다중 역할을 수행했다. 일회성 메시지(OTM) 발송 시 Badge 트래픽이 급증하면서 GSI Hotspot과 Back Pressure가 발생해 전체 서비스 성능 저하를 유발했다.
테이블 분리를 통한 성능 안정화
Badge 데이터는 userId 기반 조회만 필요하므로 GSI가 불필요하다. Badge 기능을 전용 UserBadge 테이블로 분리하면 GSI Back Pressure 문제를 근본적으로 제거할 수 있다. 또한 Badge 트래픽은 예측이 어려운 스파이크 패턴이므로 On-demand 용량 모드를 적용하고, User 테이블은 Auto Scaling이 적용된 Provisioned 모드를 유지해 비용을 최적화했다. 분리 후 Badge 업데이트 충돌이 분당 10,000회에서 80회로 감소했으며, User 테이블의 WCU 사용량도 약 12~13% 절감됐다.
마이그레이션 파이프라인 혁신
기존 커스텀 Java 애플리케이션 기반 마이그레이션은 1.8TB 데이터 스캔에 약 128시간이 소요되고 프로덕션 테이블에 부하를 줬다. 채널코퍼레이션은 DynamoDB Export to S3, AWS Glue, Import from S3를 결합한 서버리스 파이프라인을 구축했다. 이 방식은 프로덕션 테이블의 RCU/WCU를 전혀 소비하지 않아 스로틀링 위험이 없다. 마이그레이션 시간은 128시간에서 약 5시간 30분으로 96% 단축되었고, 비용은 $394.13에서 $253.74로 36% 절감됐다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.