삼성 클라우드, 마리아DB 로 DB 비용 50% 절감

컴퓨팅입력 :2022/09/20 15:58

마리아DB는 삼성전자 MX 사업부의 삼성 클라우드 서비스가 자사의 분산형 SQL 데이터베이스인 ‘마리아DB 엑스팬드(Xpand)’를 이용해 매일 수십 억 건에 달하는 트랜잭션을 처리하고, 데이터베이스 비용을 50%까지 절감하는 성과를 달성했다고 20일 밝혔다.

삼성 클라우드 서비스는 전세계 갤럭시 사용자의 기기와 정보를 관리하기 위해 수백 페타바이트(PB) 및 16억행 이상에 달하는 대규모 데이터베이스에서 매일 수십 억 건의 트랜잭션을 처리해야 한다. 이전의 마이SQL 샤딩 구현의 복잡성 문제를 해소하고, 데이터베이스의 가용성과 확장성을 높이기 위해 2017년부터 엑스팬드로 마이그레이션한 후 현재 50대 이상의 노드에 성공적으로 운영하고 있다.

샤딩은 데이터베이스 관리자가 전체 온라인 백업을 각 샤드마다 받아야 했기 때문에 데이터 일관성을 유지하기 어렵고, 코드를 계속 수정해야 하거나 온라인 백업을 위해 지나치게 많은 인프라를 사용해야 하는 등의 여러 단점들을 가지고 있다. 이러한 복잡성을 제거하는 것을 최우선 목표로 엑스팬드를 통한 분산형 SQL 접근방식을 적용했다.

분산형 SQL은 강력한 일관성과 데이터 무결성을 유지하면서도 이전에는 불가능했던 규모로 확장이 가능한 차세대 관계형 데이터베이스이다. 일단 구축되면, 수많은 데이터베이스 노드가 하나의 데이터베이스처럼 실행된다. 규모에 따라 노드를 추가하면 확장이 가능하며, 일부가 실패하더라도 문제가 되지 않는다. 마리아DB의 분산형 SQL 데이터베이스인 엑스팬드는 초당 수백만개의 트랜잭션을 처리할 수 있도록 쉽게 확장할 수 있으며, 고가용성을 제공한다. 또한 관계형 데이터베이스의 모든 이점을 제공하는 동시에, 기존 데이터베이스 비용을 획기적으로 절감할 수 있다.

삼성클라우드 운영 리더인 김전호 님은 엑스팬드를 이용해 더 이상 샤딩 코드를 관리할 필요 없이 서비스 로직에 집중하는 등 애플리케이션 아키텍처를 단순화할 수 있었고, 추가 인프라를 운영하지 않고도 고가용성 및 백업을 안정적으로 유지할 수 있었다. 엑스팬드의 효율성을 기반으로 3개 지역, 2개 서비스로 확장하면서도 AWS  EC2 크기를 i3.16xlarge에서 4분의1 크기인 i3.4xlarge로 줄이고, 50%의 비용 절감이 가능했다.

삼성전자의 마리아DB 엑스팬드 아키텍처

엑스팬드 환경에서는 단일 커맨드로 새로운 서버 노드를 추가하면, 데이터가 자동으로 새로운 서버 노드로 이전되고, 추가된 노드는 엑스팬드에 더 많은 컴퓨팅 파워와 메모리, 스토리지를 공급해 더 많은 트랜잭션을 더욱 빠르게 처리할 수 있다. 엑스팬드는 복수의 DB 인스턴스에 트랜잭션을 기록하기 때문에 ACID 요건을 충족할 수 있다.

엑스팬드는 표준 SQL과 마이SQL 프로토콜을 지원한다. 애플리케이션 코드 변경 없이 마이SQL에서 엑스팬드로 쉽게 마이그레이션할 수 있다. 현 워크로드의 데이터 분산 구조와 각 인스턴스의 상태 및 자원 활용률을 분석하고, 이를 자동으로 최적화함으로써 운영 자원을 절감할 수 있다. 만약 DB 인스턴스가 추가 혹은 삭제되거나 예기치 않은 장애 상황이 발생하면, 데이터를 자동으로 다른 인스턴스로 이전하여 각 인스턴스가 보관하는 데이터의 양과 쿼리 처리 상태를 균등하게 최적화할 수 있다.

관련기사

이와 함께 엑스팬드는 단일 장애 지점(SPOF)으로 인한 서비스 중단을 방지하고 시스템 가용성을 높일 수 있도록 장애 허용성을 지원한다. 엑스팬드 시스템은 서버 노드 하나에 장애가 생겨도 다른 엑스팬드 노드의 복제본에 존재하는 데이터를 이용할 수 있으며, 리밸런서로 장애 지점에 있던 데이터의 복제본을 생성하여 자동으로 시스템을 복구한다.

다음 목표로, 삼성 클라우드 운영팀은 지금껏 성공적으로 사용해왔던 엑스팬드 경험을 바탕으로 병렬 복제 기능을 시험하고 있다. 현재까지 삼성 클라우드 서비스는 ETL 프로세스를 엑스팬드  운영 클러스터에서 수행해왔지만 병렬 복제 기능을 통해 부하 분산이 더욱 원활해 질 것으로 기대한다고 회사측은 전했다.