역자주: 약간의 오역이 있을……겁니다. 아마. - Ardie Fox
만약 여기가 디스크월드(Discworld)였다면, Tranquility 서버(이하 T 서버)는 '위대한 아투인*'이라고 할 수 있을 겁니다. 하지만 여기는 EVE Online입니다. 이 게임 산업 역사상 가장 거대한 슈퍼컴퓨터는 그 안에 무법 천지의 단일 우주인 뉴 에덴(New Eden)을 품고 있습니다. T 서버의 창조자인 CCP에 의하면 T 서버는 런던에 위치한 서버 클러스터로 이루어져 있으며, 총 3,935GB의 RAM과 2,574GHz에 달하는, 그야말로 경천동지할 만한 처리 능력을 보유한답니다. 아, 추가로 하드웨어는 군용 등급의 제품으로 이루어졌다는군요.
사실 T 서버가 맨 처음부터 이런 것은 아니었습니다. 지난 십 년의 세월 동안 '한 쌍의 컴퓨터'에서 시작해 '교실 크기의 괴수'로 변하기까지, 지속적인 혁신에 따른 기술을 집어삼키며 계속 진화해왔죠. 이 결과, EVE의 세계를 여행하는 반 백만 명의 플레이어를 수용하기까지에 다다랐습니다. CCP의 최고 기술 책임자인 Halldor Fannar는 게임 역사상 가장 거대한 슈퍼컴퓨터가 어떻게 여기까지 이르렀는지 설명했습니다.
"우리는 2000년에 처음으로 EVE Online을 설계하기 시작했습니다. 그 때만 해도 네트워크 지연 시간이 인터넷의 가장 큰 단점이었습니다. 우리는 이 지연 시간을 상쇄하기 위해 전 세계의 주요 지점에 심어놓을 프록시 서버를 설계했죠. 이 서버의 목표는 장터(in-game market)의 가격 같은 정보 질의를 캐시에 저장해서 최종적으로는 지연 시간을 줄이는 것이었어요."
이 생각은 당시엔 묘안으로 여겨졌지만, 결국 필요 없다는 것이 밝혀졌죠. 2003년 들어 CCP가 마침내 EVE Online을 출시할 당시에 이미 지연 시간은 그리 심각하진 않은 골칫덩이 수준으로 전락했기 때문입니다. "우리는 그래서 그냥 이 프록시 서버를 실 서버와 같은 데이터 센터 내에 두기로 했습니다. 사실 우리가 계속 일을 진행해가면서 상황이 어떻게 바뀌었는지는 참 흥미로웠어요. 생각해보세요, 전 세계에 퍼트리기로 했던 서버 노드를 한 군데 몰아넣었다니까요."
일은 계속 커져만 갔습니다. 초창기에는 CCP의 목표가 최대 백만 명의 가입자를 유치하는 것이었습니다. 대충 이만 명의 동시 접속자 정도를 예상할 수 있는 수치였죠. 말할 필요도 없이, 초기의 목표는 산산히 부서졌습니다. 어떻게? 이 초창기 예상치를 가볍게 웃도는 수의 플레이어가 유입됐거든요.
"우리는 진짜 많은 것을 바꿔야 했습니다." Halldor가 추억을 떠올리며 말했습니다. "우리는 먼저 하나의 서버 노드 내에서 뒤엉켜 돌던 서비스를 하나하나 분리해서 따로 돌게 만들었어요. 그리고 필요하다면 딱 하나의 서비스만을 떼어내 전담할 하드웨어 위에서 돌게 만들기도 했고요."
장터 노드와 캐릭터 노드("사실 맨 처음부터 캐릭터 노드를 따로 둔 것은 아니었지만, 음, 한 번 생각해봐요. 엄청나게 많은 캐릭터가 존재하는 것뿐만 아니라 그들이 모두 자기 스킬 정보에 접근하려 한다면…….")를 예로 들면서, Halldor는 이제 주로 사용하는 방식이 사용률이 높은 서비스를 탐지하고 분리시키는 것이라고 설명했습니다. 물론 이 작업이 듣는 것만큼 쉽지는 않다고 덧붙였죠.
"여전히 다른 서비스와의 연계에 크게 의존하는 서비스는 분리할 수 없어요. 사실 원한다면 그렇게 할 수도 있겠지만, 그러면 두 서비스 사이의 통신에 병목 현상이 생기거든요."
팀이 '높은 지역성'을 가진 서비스(다른 서비스와의 주기적인 통신이 필요 없는 서비스를 말합니다.)를 분리하고 Facebook이 사용하는 것과 비슷한 웹 기술을 적용하면서, 서버 클러스터는 끝없이 발전해나갔습니다. 마치 살아있는 것마냥, T 서버는 새로운 기술을 끝없이 집어삼키며 이제는 필요없어진 부분을 제거해나갔습니다. 아, 물론 사람의 손으로 이뤄진 것이죠.
"기술이 더 발전하면, 서버 하드웨어 역시 발전합니다. 가끔씩은 이 기술의 발전으로 하드웨어의 부분부분을 간소화할 수 있게 됐고, 몇 대의 컴퓨터를 단 하나로 교체할 수도 있었죠. 이 하나에 프로세서 소켓이 여러 개 달렸기에 코어 여러 개를 한 번에 돌릴 수 있거든요."
이 작업의 가장 큰 문제는, 이 '개혁'이 진행 도중에 다른 문제를 양산하지 않도록 하는 것이었다고 Halldor는 말합니다. "이 작업은 정말로 조심스럽게 진행해야 합니다. 뭐, 여러분이 우리 문제를 딱 보고선 '아놔, 여기 이렇게 쉬운 해결책이 있는데 안 쓰고 뭐하나요?'라고 할 수도 있겠지만, 가끔씩 그런 '해결책'이라는 게 기술적으로 더 복잡하거나 유지 보수에는 쥐약일 수 있거든요. 우리가 작성한 소스 코드 기반은 계속 진화 중이기에 유지 보수는 그야말로 우리의 생명줄이나 다름없습니다. 일단 어떤 해결 방안이 유지 보수에 힘들다는 결론이 나오면, 우리는 그 방식은 버리고 다른 방안을 강구합니다. 예를 들자면, 80%밖에 효율이 안 나온다고 해도, 유지 보수가 쉬운 그런 방법이요."
T 서버의 핵심 컴포넌트 중 하나는 바로 지속성 레이어입니다. 뉴 에덴에서 매일 이루어지는 활동을 지탱하는 근간이 되는 부분이죠. 한때는, 이 부분이 Texas Memory System이 2009년에 제공한 SSD 위에서 돌기도 했습니다.
"웃기는 사실은, 그 때만 해도 이 SSD 기술이 군용 기술이었다는 겁니다. 그래서 우리는 이 하드웨어를 시험하려고 텍사스에 위치한 벙커에 들어가기 위한 군사 접근 허가를 얻어야 했습니다. 이 때가 바로 TMS가 슬슬 미군 뿐만 아닌 상용 시장에도 이 기술을 내놓으려고 하던 때였거든요. 우리는 TMS의 가장 초기 고객 중 하나이고, 그들은 군용으로 제조한 것을 덜 강압적인 무언가를 위해 사용한다는 것을 매우 재밌다고 여겼습니다."
씩 웃고는, Halldor가 덧붙였습니다. "물론 우리는 인터넷으로 우주선을 모는 것이 상당히 진지한 사업이라고 말했죠."
자 이제는 T 서버를 탐탁찮게 쳐다볼 사람은 없을 겁니다. Halldor는 하드웨어 파트너사가 하나같이 CCP Games와 일하는 것을 매우 즐거워했다고 얘기합니다. 왜냐면 당시로썬 슈퍼컴퓨터는 오로지 복잡한 연산을 수행하기 위한(다른 말로는 '작업 중심적인'.) 용도로만 사용됐기에 이건 간단히 말해 '굉장히 독특한' 협업이었기 때문이죠. 들리는 것만큼이나 복잡하지만, 이 모든 최적화 노력은 EVE Online이 매끄러운 운영을 계속할 수 있도록 큰 도움이 됐습니다.
아마 다른 개발사 같았으면 Burn Jita 사건이 일어났을 때 큰 중압감을 느꼈을 겁니다. 그렇지만 CCP Games는 해당 사건이 일어난 항성계를 통채로 하나의 노드(Halldor는 진지한 얼굴로 "우리는 이걸 '특별한 눈송이 노드'라고 부릅니다."라고 말했습니다.)에 이식하는 것으로 해결했습니다. 그리고 상한치를 설정한 다음, 해당 노드 안에 들어있는 플레이어의 수에 맞춰 게임 내 시간 진행을 느리게 낮췄습니다. 이 방법은 그야말로 대성공이었죠. 플레이어 모두는 그들이 원했던 전쟁 방식을 마음껏 누렸고, CCP Games는 나중에 Battle of Asakai에서 다시 한 번 써먹을 기술 지식을 얻었습니다.
"그건 우리가 이끌어낸 혁신 중 하나입니다. Battle of Asakai는 아마 시간 지연(time dilation)이 없었다면 진행조차 불가능했을 겁니다."
하지만 아직 CCP Games는 만족하지 못했습니다. 비록 지금까지 EVE Online이라는 경마장을 잘 운영해왔지만, CCP Games의 목표는 단순히 경마 경기 그 이상입니다. "우리가 지금 진행하는 건 게임 내에서 무슨 일이 벌어지는지 분석 가능한 예측 알고리즘입니다. 만약 우리가 어떤 일이 일어나기 10분 전에 그 일이 발생할 것을 알아차릴 수 있다면, 먼저 시뮬레이션을 돌려본 후에 그 일이 아예 별도의 전담 하드웨어 위에서 돌도록 처리할 수 있을 것이거든요."
자, 이제 스카이넷(Skynet)이 현실에서 출현한다면, 우리 모두 CCP Games를 탓하면 될 겁니다. :3
* 위대한 아투인: The Great A'Tuin. 디스크월드 내의 세계를 떠받치고 있는 거대한 거북이를 지칭합니다. 대충 이렇게 생겼습니다:
하나의 서버군으로 돌아가다니 덜덜덜
스카이넷의 시작이 더욱 가까와진듯 합니다. ^^;;