TECH 으로 돌아가기
TECH HACKER NEWS 오늘 5분 읽기 39 READS

전 세계 서버가 '하나의 진실'에 동의하게 만들기 — Cloudflare의 Meerkat

전 세계 서버가 '하나의 진실'에 동의하게 만들기 — Cloudflare의 Meerkat

흩어진 서버들이 '같은 답'을 내게 하는 문제

여러 대의 컴퓨터가 함께 일할 때 가장 골치 아픈 문제가 뭘까요? 바로 "누구 말이 맞느냐"를 정하는 거예요. 서울 서버는 A라고 하고 뉴욕 서버는 B라고 할 때, 전체 시스템이 하나의 답으로 합의(consensus)하게 만드는 거죠. Cloudflare가 이번에 'Meerkat(미어캣)'이라는 전 지구 규모의 분산 합의 시스템을 공개했어요. 이름처럼 여러 개체가 서로 신호를 주고받으며 한 방향을 바라보게 하는 시스템이에요.

합의가 왜 그렇게 어렵냐면

분산 시스템에서 '합의'는 교과서에도 나오는 오래된 난제예요. 대표적인 알고리즘이 Paxos랑 Raft인데요. 쉽게 말하면 여러 서버 중에 리더를 한 명 뽑고, 그 리더가 정한 순서대로 모두가 기록을 남겨서 어느 서버를 보든 똑같은 상태가 되게 맞추는 거예요. 은행 잔고처럼 절대 어긋나면 안 되는 데이터에 꼭 필요하죠.

문제는 이걸 '전 지구 규모'로 하면 물리 법칙이 발목을 잡는다는 거예요. 서울에서 상파울루까지 빛이 왕복하는 데만도 수백 밀리초가 걸리거든요. 합의를 하려면 서버들이 서로 "나 이거 기록했어, 너도 했어?" 하고 확인 메시지를 주고받아야 하는데, 대륙을 건널 때마다 이 지연이 쌓여요. 그래서 강한 일관성(어느 서버를 봐도 같은 값)을 지키려다 보면 응답이 느려지고, 빠르게 하려다 보면 일관성이 흔들리는 트레이드오프가 생겨요. 이게 그 유명한 CAP 정리의 현실판이에요. 네트워크가 끊길 수 있는 상황에서 일관성과 가용성을 동시에 완벽히 잡을 순 없다는 이야기죠. Meerkat 같은 시스템은 이 지연과 일관성 사이에서 최대한 똑똑하게 균형을 잡도록 설계돼요.

이미 있는 것들과 비교하면

전 지구 합의 하면 원조 격은 구글의 Spanner예요. GPS와 원자시계로 시간을 극도로 정밀하게 맞춰서 전 세계 데이터센터에 일관된 데이터베이스를 굴리죠. 그 아이디어에서 나온 오픈소스가 CockroachDB고요. 쿠버네티스가 설정을 저장할 때 쓰는 etcd, 애플 등이 쓰는 FoundationDB도 다 이 합의 문제를 각자의 방식으로 푼 결과물이에요. Cloudflare는 전 세계 수백 개 도시에 엣지 서버를 깔아둔 회사라, 이 지연 문제를 특히 절실하게 겪을 수밖에 없어요. 자기네 인프라에 딱 맞는 합의 엔진을 직접 만든 건 그래서 자연스러운 선택이에요.

한국 개발자에게

글로벌 서비스를 만드는 분이라면 이 주제가 남 일이 아니에요. 사용자가 여러 나라에 흩어져 있을 때 "어느 리전에 데이터를 두고, 어떻게 동기화할 것인가"는 결국 합의 문제로 귀결되거든요. 당장 Paxos를 직접 구현할 일은 없더라도, 강한 일관성과 지연·가용성 사이의 트레이드오프를 이해하고 있으면 멀티 리전 아키텍처를 설계할 때 판단이 훨씬 단단해져요. 리더 선출, 쿼럼(과반수 동의), 분할 내성 같은 개념은 꼭 한 번 정리해두시길 권해요.

정리하면, "빠름과 정확함을 동시에 전 지구에서 잡는 건 근본적으로 어렵고, 그래서 다들 저마다의 절충안을 만든다"는 게 핵심이에요. 여러분의 서비스는 강한 일관성이 꼭 필요한 쪽인가요, 아니면 조금 느슨해도 빠른 게 나은 쪽인가요?


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://blog.cloudflare.com/meerkat-introduction/
SHARE
처리 중...