CTO의 36시간 DB 해킹, 서비스 장애를 극복하다!

by DD
3년 전
조회수 8

쿠키런: 킹덤 36시간 장애 발생, CockroachDB 복구 불가능 판정

CTO를 포함한 엔지니어들이 비트 레벨까지 파고들어 데이터베이스 해킹 시도

7TB 데이터 복구 성공, 분산 처리오픈소스 활용으로 서비스 재개

Pebble 스토리지 엔진 분석

CockroachDBPebble을 하위 스토리지로 사용하며, SST 파일 형태로 데이터를 저장한다. 구체적으로 LevelDB의 on-disk format을 기반으로 하며, RocksDB와 호환성을 가진다. 따라서 SST 파일 구조를 파악하여 데이터 복구 가능성을 탐색했다.

7TB 데이터 복구를 위한 분산 처리

장애 상황에서 7TB에 달하는 데이터를 복구하기 위해 PySpark를 활용한 분산 처리를 시도했다. crdb2csv 프로그램을 수정하여 SST 파일CSV로 변환하고, AWS 클라우드 자원을 최대한 활용했다. 반면, CSV 변환 과정에서 성능 병목이 발생하여 4시간 이상 소요되었다.

해커 문화와 오픈소스의 중요성

데브시스터즈는 해커 문화를 통해 기술적 한계를 극복하고, 오픈소스를 적극적으로 활용한다. 따라서 CTO를 포함한 엔지니어들이 데이터베이스의 내부 구조를 파악하고, 소스코드를 직접 수정하여 문제를 해결했다. 결과적으로 데이터 복구에 성공하고, 서비스 안정성을 확보했다.

CTO가 커리어를 걸고 비트 레벨까지 내려가서 DB를 해킹했던 이야기