체스닷컴 서버 관련 업데이트
체스닷컴 회원들께,
지난 1월 23일 게시한 기사에서 우리는 최근 체스가 얼마나 빨리 성장했고 그로 인해 체스닷컴이 겪고 있는 문제, 특히 경기가 진행되는 '라이브 서버'에 대한 상황을 공유했습니다. 성장은 그 이후로 더 빨라졌습니다.
2월 3일 금요일 하루 동안 체스닷컴의 신규 회원은 403,000명이었습니다. 놀랍고도 흥미진진한 일입니다. 하지만 고통스러운 일이기도 합니다. 전 세계적인 체스 붐을 축하하고 싶지만, 솔직히 말해 사용자가 몰리는 시간대에 체스닷컴 서버가 트래픽 관리에 어려움을 겪으면서 기쁨보다 고통을 더 많이 느꼈습니다. 최근 몇 주 동안 많은 회원들이 경험한 문제에 대해 매우 죄송하게 생각합니다.
다행스럽게도, 우리는 이 터널의 끝을 향하고 있으며 최근 2주 동안 수행한 작업과 달성한 것들에 대한 업데이트를 공유하고자 합니다. 아직 완전한 안정성 수준에 도달하지는 못했지만 현재도 작업이 진행되고 있습니다.
무슨 일이 벌어지고 있나요?
- 체스닷컴의 트래픽은 지난 몇 달 동안 두 배 이상 증가했습니다. 1월에만 트래픽이 일일 사용자 700만 명에서 1,100만 명 이상으로 증가했습니다.
- 이러한 가파른 성장에는 체스닷컴이 앱 스토어에서 높은 순위(몇 국가에서는 1위)에 오르고, 멋진 대회가 열리고, SNS에서 체스에 대한 열정을 공유하는 사람들이 있고, 체스 콘텐츠 제작자들이 훌륭한 영상을 올리는 등 여러 가지 요인이 복잡하게 작용했습니다.
- 트래픽으로 인해 서버와 인프라 장비가 큰 어려움을 겪었습니다. 가장 큰 문제는 데이터베이스에 과부하가 걸렸을 때 발생하는 502 오류와 서버에 과부하가 걸렸을 때 발생하는 접속 끊김 현상입니다.
어떤 작업을 하고 있나요?
이 정도 수준의 트래픽 증가를 해결하는 것은 하나의 병목 현상을 확인하고 제거하는 것 정도로 간단하지 않습니다. 하드웨어 및 클라우드 인프라 장치의 확장뿐만 아니라 많은 부문에서 최적화 작업이 필요합니다. 아래는 지난 2주 동안 체스닷컴에서 수행한 작업 중 일부입니다.
- 200만 달러(약 25억 원) 상당의 하드웨어(웹 서버, 데이터베이스 서버, 새로운 라이브 체스 서버, 로드 밸런서 및 추가 서비스 시스템)를 구매했습니다. 주요 하드웨어가 우선적으로 설치되었고 더 많은 장비들이 설치될 예정입니다. 200만 달러가 큰 금액처럼 들리지만, 만약 체스닷컴이 완전히 클라우드 서버만을 이용했다면 더 큰 비용이 들었을 것입니다.
- 가능한 한 빠르게 데이터베이스 인프라를 샤딩(병렬 분할)하고 분리했습니다. 많은 MySQL 테이블이 분리되고 코드가 새 테이블을 가리키도록 재구성되는 등 많은 진전이 있었습니다.
- 이 정도 규모가 되기 이전까지 분명하게 드러나지 않았던 소프트웨어 병목 현상을 찾아내고 수정했습니다.
- 체스닷컴 데이터 센터와 클라우드 공급자 중 하나(일부 필요한 요소에는 클라우드를 사용합니다) 사이의 업링크 중 하나가 한도에 도달했고 트래픽이 가장 많은 때 패킷을 낮추는 것을 확인했습니다.
- 샤용량이 가장 많은 시간대에 서버에 접속할 수 있는 일반 회원 수의 상한선을 적용했습니다. 상황이 개선됨에 따라 상한선을 없애왔고 곧 완전히 해제될 것으로 예상합니다.
- 체스닷컴의 가용 엔지니어가 모두 위 문제를 해결하기 위해 몰두하여 작업하고 있습니다.
얻은 것은 무엇인가요?
아직 '임무 완수'의 단계가 아닙니다. 체스닷컴에서는 이상적인 성능 수준을 달성하기 위해 여전히 많은 노력을 기울이고 싶습니다. 지금까지 개선한 사항에 대해 측정 가능한 지표는 다음과 같습니다.
- '데이터 베이스 과부하' 502 오류를 90% 이상 줄였습니다.
- 라이브 서버와의 연결 끊김 빈도를 90% 이상 줄였고, 연결 해제 시 재접속을 더 쉽게 만들었습니다.
어떤 작업이 남아있나요?
앞으로 몇 달 동안 우리는 회원들이 긍정적인 경험을 할 수 있도록 서버에 크고 작은 개선 사항을 추가할 계획입니다. 공유할 수 있는 몇 가지 변경 사항은 다음과 같습니다.
- 용량을 확장하기 위해 아직 배송 중인 모든 하드웨어를 설치할 것입니다.
- 체스닷컴의 모든 엔지니어 팀은 추가 데이터베이스 작업, 쿼리 최적화, 모놀리식 플리케이션 분리를 포함하여 남은 문제를 해결하는 것에 전적으로 집중하고 있습니다.
- 데이터 센터 및 클라우드 공급자와 협력하여 문제점들을 해결할 것입니다.
- 단일 서버에서 여러 서버에 걸쳐 수평적으로 확장할 수 있는 분산 서비스로 라이브 서버를 다시 작성하는 중입니다. 지금까지는 이 기능을 시험, 조정, 개발하기 위해 소량의 경기(게스트 경기 또는 레이팅이 반영되지 않는 경기)에만 적용했습니다. 그러나 이번 주부터 체스닷컴에서 열리는 레이팅 반영 경기에도 테스트를 시작했습니다. 체스닷컴에서 열리는 대부분의 경기를 분산되고 확장 가능한 서비스로 호스팅 할 수 있기를 기대합니다.
문제를 바로잡기 위해 어떤 일들은 할 것인가요?
프리미엄 회원을 포함하여 많은 사람들이 연결 끊김으로 인해 경기에서 패배했거나 결제한 서비스를 사용하지 못한다는 사실을 알고 있습니다. 우리는 이를 바로잡을 것입니다.
- 이번주에 서버 불안정으로 인해 패배한 경기에서 잃은 레이팅을 자동으로 돌려줄 예정입니다. 이는 핵심 문제를 해결하는 동안 피해를 입은 회원들에게 제공하는 단기적 보상이 될 것입니다.
- 남은 2월 동안 모든 회원에게 퍼즐 배틀 기능을 무료로 제공합니다.
- 프리미엄 회원을 위해 Chess24 콘텐츠 라이브러리에 있는 GM 매그너스 칼슨, GM 피터 스비들러, GM 허우 이퐌의 프리미엄 코스를 체스닷컴 레슨에 추가할 계획입니다.
체스닷컴 CEO 에릭 알레베스트는 다음과 같이 말합니다. "매일 믿을 수 없을 만큼 다음 3가지를 깊게 느낍니다. 1) 서버 불안정으로 회원들이 답답해 할 때마다 마음이 아픕니다. 2) 예측할 수 없는 상황에서 짧은 시간 동안 우리 팀이 해낸 모든 일을 자랑스럽게 생각합니다. 3) 머지않아 더 나은 환경이 될 것이라는 희망과 확신이 있습니다."