삼성전자 스마트홈, MongoDB Atlas 기반으로 엔지니어의 저녁이 있는 삶을 실현하다
초기 단계의 스타트업부터 세계적으로 유명한 대기업까지, 모든 규모의 기업이 오늘날 빠르게 변화하는 디지털 환경으로 인해 최신 애플리케이션을 개발하고 출시하는 과정에서 어려움을 경험하고 있습니다. 또한, 이 같은 애플리케이션 개발의 중심에 선 개발자들에게는 최신 기술로 애플리케이션 현대화를 유지하면서 업무 생산성을 높이는 것이 쉽지 않은 과제로 여겨지고 있습니다.
2023년 9월에 열린 MongoDB.local Seoul에서 삼성전자 Digital Appliances (DA) 사업부의 임성빈 프로는 'DevOps 엔지니어의 저녁이 있는 삶, MongoDB Atlas 도입기'를 주제로 발표를 진행했습니다. 이 발표에서 임 프로는 MongoDB 도입을 통해 팀이 실제 경험한 업무 효율 혁신에 대해 공유했습니다.
효과적인 가전 데이터 관리를 위한 MongoDB Atlas
DA사업부는 삼성전자의 스마트싱스(SmartThings) 중심으로 사물인터넷(IoT) 기능뿐 아니라 최신의 AI 기술을 적용하여 다양한 서비스를 제공하는 AI 가전과 기술을 개발해왔습니다.
스마트홈 서비스는 DA사업부에서 운영 중인 가장 오래되고 큰 스케일의 서버 플랫폼으로, 삼성 가전의 기기 데이터를 수집하여 DA사업부의 다양한 데이터 기반 서비스에서 활용할 수 있도록 제공하는 역할을 수행하고 있습니다.
2014년 스마트홈 서비스는 모바일 앱으로 삼성 가전을 제어하고 모니터링하기 위한 사용자 및 기기 프로필 관리 서버로 처음 런칭하였으며, MySQL 데이터베이스로 애플리케이션에서 사용하는 데이터를 관리 운영했습니다.
2015년에는 삼성 가전에서 생성되는 실시간 이벤트 데이터를 수집하여 AI 서비스의 학습용 데이터 등 데이터 기반 서비스에 이를 활용할 수 있는 기반 시스템을 구축하였습니다.
또한, JSON 포맷의 가전 데이터 워크로드의 유연한 처리와 활용을 위해 도큐먼트 모델인 MongoDB 커뮤니티 버전을 도입, NoSQL 역량을 개발 워크로드 전면에 접목하게 되었습니다.
스마트홈 서비스 확장 위한 강력한 토대 구축
MongoDB 도입 초기에는 MongoDB 커뮤니티 버전으로 자체 운영하는데 큰 문제가 없었으나, 서버와 통신하는 가전기기 수와 데이터 트래픽이 지속적으로 증가하면서 서비스를 안정적으로 운영하는데 대한 어려움에 직면하게 되었습니다.
특히, 여름철에 에어컨, 냉장고 등의 가전제품 사용과 트래픽이 집중되는 워크로드 특성은 어려움을 더욱 가중시켰습니다.
커뮤니티 버전의 MongoDB는 개발자의 의도에 따라 튜닝이 가능하다는 장점이 있었지만 문제 발생 시 데이터베이스를 운영 및 관리하기 위한 개발자들의 상당한 시간 투입이 요구됐습니다.
나아가 서비스 확장에 따라 MongoDB를 더 잘 활용하기 위한 기술적인 백그라운드 기반 확보는 물론, 유연한 클러스터와 스토리지 및 모니터링 보강에 대한 내부 개발 팀의 목소리가 점차 커졌습니다. 이에 2022년 삼성전자 DA사업부는 스마트홈 서비스를 더욱 효과적으로 운영하기 위해 MongoDB Atlas로 본격적인 마이그레이션을 진행했습니다.
삼성전자 DA사업부는 옵션 별 제약사항과 다운타임을 고려해 프라이빗 네트워크로 데이터 이관이 가능한 Mongomirror 유틸리티를 활용하는 마이그레이션 정책을 수립했습니다.
당시 마이그레이션을 이끈 임성빈 프로는 “인프라 관리와 비즈니스 로직 개발 사이의 균형을 유지하는 것이 중요했던 삼성전자 스마트홈은 MongoDB Atlas로 마이그레이션을 통해 인프라 관리 부담을 줄이고 애플리케이션 개발과 혁신에 집중할 수 있었다"고 설명했습니다.
또한 임성빈 프로는 “MongoDB Atlas평균 응답 속도가 8ms에서 3ms로 절반 이상 감소하고, 디스크 리드 레이턴시(Disk read latency)도 기존 최대 3s에서 18ms로 감소하며 가용성이 크게 개선됐다"며 “개발자로서 더욱 획기적이라고 느꼈던 점은 데이터베이스 처리 과정에서 발생하는 장애로 인한 이슈나 알람이 MongoDB Atlas로 이전 후 발생하지 않았다는 점”을 강조했습니다.
이 같이 MongoDB Atlas는 삼성전자 스마트홈의 서비스 확장을 위한 견고한 기반으로서 더 많은 데이터 트래픽을 용이하게 처리할 수 있도록 하는 중요한 역할을 수행했습니다.
개발자 생산성과 서비스 품질, 두 마리 토끼를 잡다
삼성전자 스마트홈의 개발 팀은 에어컨의 센서 이벤트(온도, 습도 등), 냉장고의 문열림 이벤트 등과 같이 제품에서 변경 이벤트가 발생할 때마다 도큐먼트에 업데이트하는 라이트 인텐시브(write-intensive) 워크로드를 핵심으로 관리하고 있습니다.
그러나 MongoDB Korea 팀과 주요 성능 지표 분석을 통해, 기존 레플리카 세트 기반의 확장 정책으로는 향후 지속적으로 증가하는 트래픽 추이와 특히 여름철 성수기에 급증하는 워크로드를 빠르게 업데이트하고 관리하는데 한계가 있다는 결론에 도달했습니다.
MongoDB Atlas로의 마이그레이션을 통해 상당한 개선 효과를 경험한 삼성전자 DA사업부는 기존의 레플리카 세트(Replica Set)에서 경험한 라이트 워크로드에 대한 한계를 극복하기 위해 샤디드 클러스터(sharded cluster)에서 새로운 스케일 아웃 전략을 구상했습니다.
임성빈 프로는 “MongoDB Korea 팀과 함께 워크샵과 기술검증(PoC)을 진행하면서 실제 단계별, 프로세스별 샤드 전환 시 발생하는 문제점을 사전에 파악하여 문제없이 샤드 전환을 완료할 수 있었다”며 “샤딩 전환 작업 과정에서 문제가 발생하는 경우를 대비해 PITR(Point in Time Recovery)을 설정하고 롤백을 위한 레플리카 세트도 함께 준비했다”고 설명했습니다.
샤드 전환 이후에 기존 레플리카 세트에서 약 800개의 노드 커넥션이 필요했던 것과 달리 샤드 별 300-400개로 균등하게 분산되어 밸런싱이 개선됐으며, MongoDB의 논리적 데이터(logical data) 사이즈도 기존 82GB에서 약 42GB로 분산되며 효율적인 워크로드 운영이 기능해졌습니다. 디스크 IOPS도 8-10k/s로 기존(16-20k/s) 대비 절반 가까이 감소하며 디스크 활용 역량도 개선됐습니다.
MongoDB Atlas를 기반으로 데이터베이스 장애 제로화를 달성하고 고가용성을 확보한 삼성전자 DA사업부는 고객을 위한 새로운 서비스 개발에 주력하며 ‘저녁이 있는’ 서버 엔지니어의 삶을 실천하고 있습니다.
MongoDB Atlas로의 마이그레이션 및 샤딩을 통해 효율적이고 안정적인 인프라를 구축한 삼성전자 DA사업부는 앞으로도 더욱 효과적인 데이터 워크로드 관리를 위해 MongoDB Korea와 협력할 계획입니다.