텔레그램 5개 데이터센터의 비밀: 전화번호 국가코드로 DC 배정, DC2·DC3엔 유저가 없다는 착각
- 텔레그램은 DC1(마이애미), DC2·DC4(암스테르담), DC5(싱가포르) 등 5개 데이터센터를 운영하며 계정은 가입 시 국가코드에 따라 고정 배정되고 이후 바뀌지 않음
- DC5는 중국어권 텔레그램 커뮤니티에서 잦은 다운타임으로 유명하며, +86 번호 가입자가 주로 배정됨
- 한 봇으로 유저들의 DC를 조사한 결과 DC1 360명, DC4 50명, DC5 390명인데 DC2·DC3은 0명으로 나와 두 DC에 유저가 없다는 추측이 돌았음
- 실제로는 DC2에 다수 유저(예: +49 독일 번호)가 배정되지만 봇의 조회 방식이 프로필 사진이 저장된 DC만 감지하는 결함이 있어 DC2를 못 잡아낸 것으로 밝혀짐
- DC3은 2020년경 기존 유저가 DC1로 이전된 뒤 신규 가입을 받지 않는 것으로 보이며, DC 확인 방법은 로그인 방식·프로필 사진(파일) 방식·웹 CDN 방식 세 가지가 있고 방식마다 결과가 다르게 나옴
Hacker News 의견들
콘텐츠 전달이나 인프라 전문가는 아니지만 이 구조 진짜 특이하게 짜여있네
아마 사용자를 위치에 최대한 가깝게 배정하려고 했을 텐데, 전화번호 국가코드로 하는 게 처음엔 괜찮은 방법처럼 보였을 거임. 그러고는 별 고민 없이 그냥 그 아이디어로 전체 시스템을 만든 듯
이건 커스텀 코드랑 기술 부채가 엄청 쌓인 구조인데. 새로 들어오는 개발자마다 이걸 다 배워야 할 텐데, 왜 유저별 sticky master election 방식으로 안 하고 특수 데이터센터를 따로 뒀는지 모르겠음
텔레그램 직원이 30명 정도밖에 안 된다고 들었음. 새 사람 온보딩할 일이 그렇게 많지도 않을 듯
그냥 유럽 유저는 EU DC로, 중국 유저는 가까운 DC로 배정하는 거라 말이 됨. 커스텀 코드라고 해봤자 국가-DC 매핑 정도일 텐데, 지금 잘 돌아가는 단순한 방식 대신 election 같은 복잡한 걸 새로 만들라는 건 괜히 돈 쓰는 거임
이 데이터 라우팅 방식 뭔가 좀 수상한 냄새가 남
DC2는 모든 MTProto 클라이언트의 최초 접속 지점임. 어떤 DC든 요청을 거절하고 클라이언트를 다른 DC로 넘길 수 있고, 프로필 URL만 봐서는 메시지나 채팅방이 실제로 어디 저장되는지 알 수 없음. 텔레그램은 미디어 전용 DC를 두 개 따로 운영하고 나머지 DC는 미디어 대역폭을 제한함
마이애미에 DC 있다니까 내가 왜 텔레그램 앱이 그렇게 빠른지 이해가 됨. 서부 해안에 있을 때 메타 같은 빅테크 앱들도 비슷하게 빨라지는 걸 느꼈음. 레이턴시가 요청 많이 날리는 앱에서는 확실히 체감됨
나는 가입할 때 한국에 살고 있어서 DC5에 배정됐는데, 딱히 다운되는 걸 많이 못 느꼈음
텔레그램 데이터센터 관련해서 더 흥미로운 이야기가 있음, FSB 관련 iStories 기사랑 후속 반박 기사 링크 걸어둠
텔레그램이 관할권 다른 서버에 유저 데이터를 나눠 저장해서 당국이 접근하기 어렵게 만든다고 자기들 프라이버시 정책에서 주장하는데, 이게 사실이면 아무도 안 쓰는 것처럼 보이는 DC들이랑 관련 있을 수도 있음