▲ 아카마이코리아 한준형 부장

[인벤게임컨퍼런스(IGC) 발표자 소개] 아카마이 한준형 부장은 아카마이코리아에서 포털, 게임사 등 주요 미디어 고객사를 담당하는 시니어 엔지니어로 재직 중이다.


'CDN'이라는 개념은 사실 그리 대중적인 약어는 아니다. 하지만 그 말이 곧 필요성이 떨어진다는 이야기는 결코 아니다. '아카마이'는 'CDN(Contents Delivery Network: 콘텐츠 전송 네트워크)' 솔루션을 제공하는 기업으로, 1997년, MIT의 '톰 레이튼' 박사와 '대니 르윈'이 함께 창업한 회사다.

이들의 창업은 미래 지향적인 이유에서 시작되었다. '월드와이드웹(WWW)'의 창시자인 '버너스 리' 박사는 인터넷이 언젠가 전 세계에 퍼지게 되고, 이후 이로 인한 네트워크 체증이 생길 것으로 생각했다. 이 도전 과제에 대한 해답이 바로 '아카마이'다. 현재 아카마이는 미국에서 일본까지, 전 세계 각지에 사업장을 둔 채 네트워크 트래픽 서비스를 담당하고 있다.

IGC2016의 둘째 날. 아카마이 코리아의 한준형 부장이 강단에 섰다. 그리고 '글로벌 게임 런칭과 CDN의 활용'이라는 주제로 강연을 시작했다.


■ 강연주제: 글로벌 게임 런칭과 CDN의 활용


⊙ 'CDN'이란 무엇인가?

먼저, 한준형 부장은 미국의 간판과도 같은 도시인 '뉴욕'의 수도 시스템 개통도를 보여주었다. 사실 CDN과 수도 시스템은 일말의 연관성도 없는 주제이지만, 한 가지 공통점이 있었다. 바로 시스템의 구조가 굉장히 유사하다는 것이었다.

뉴욕 또한 상수도를 사용하는 도시이다 보니 당연히 수원지가 존재한다. 하지만 수원에서 바로 뉴욕의 모든 구역에 상수도를 공급하기는 실질적으로 무리가 있다. 그 때문에 중간 거점이 존재한다. 이 중간 거점(보통 물탱크)에는 다량의 상수도 용수가 보관되어 있어 필요에 따라 각 가정, 혹은 건물로 상수도를 배급한다. 한순간 많은 양의 상수도가 필요한 경우, 수원지에서 직접 수도를 끌어오기 힘들어서 이를 대비하는 것이다. 물론 그 외에도 물탱크는 필요하지만 말이다.

CDN의 기본도 이와 같다. 어떤 콘텐츠를 인터넷을 통해 배포할 때, 모든 사용자가 배포자로부터 데이터를 전송받게 된다면 필연적으로 과부하가 일어날 수밖에 없다. 이를 막기 위해 중간 거점을 두고, 필요에 따라서는 이 중간 거점을 여러 단계(Layer)에 걸쳐 배치함으로써 통신량을 분산시키고 과부하를 막는 기능이 CDN의 주요 골자다.


한준형 부장은 현재의 인터넷 서비스를 세 가지로 나누어 설명했다. 데이터 센터, 즉 배포자가 위치하는 '퍼스트 마일', 그리고 이를 사용자에게 전달하는 중간 과정을 중개하는 인터넷 상업자(주로 통신사)가 위치하는 '미들 마일', 그리고 실제 사용자와 그들이 접속하는 서버가 존재하는 '라스트 마일'이다.

20년 전, 인터넷을 통해 이미지를 보려면 버퍼링이 필수적이었다. 한 장의 이미지를 보려 해도 아랫부분부터 천천히 이미지가 만들어지던 모습을 아마 그 시절 인터넷 사용자라면 기억하리라. 하지만 지금은 이미지가 아닌, 영상도 실시간으로 볼 수 있다. 확실히 버너스 리 박사의 말처럼, 인터넷 환경은 과거와 비교하면 훨씬 발전했다.

하지만 모든 부분이 고루 발전한 것은 아니다. 지난 10년간 '퍼스트 마일'에 해당하는 트래픽은 20배가 증설되었다. 또한, 소비자 그룹이 속해 있는 '라스트 마일'은 50배가 늘어났다. 하지만 그 중간 기점 역할을 하는 '미들 마일'은 그저 6배가 성장했을 뿐이다. 서버가 늘어났다고 해도 그 증가치만큼 인터넷의 속도가 빨라지진 않았다. 오히려 그 와중에 일어나는 패킷 로스나 데이터 병목 현상이 일어날 수밖에 없다.

CDN은 이 과정을 줄이기 위해 ISP(인터넷 서비스 제공자: 인터넷 사업체) 중간에 임시 데이터 센터를 설치한다. 미들 마일을 거치지 않아도 라스트 마일의 이용자들이 원활히 데이터를 공급받을 수 있는 일종의 보급 거점을 만드는 셈이다. 흡사 개개인이 컴퓨터에 '캐시 파일'을 만들어 사이트 로딩을 줄이는 것과 비슷한 원리라고 할 수 있다.



⊙ '게임', 그리고 CDN

이어 한준형 부장은 이를 '게임'에 대입시켰다. 그는 글로벌 온라인 게임의 성공 요인을 직접 외국 게이머들에게 물은 결과를 보여주었다. 그래픽, 가용성, 커뮤니티, PVP, 레이턴시(지연 시간), 빠른 다운로드 등등 다양한 대답이 나왔다. 한국 게이머는 약간 다르다. 흥미로운 건 한국 게이머들은 아무도 온라인 게임의 성공 요인으로 빠른 다운로드나 지연 시간을 꼽지 않는다. 이미 한국인들에게 빠른 인터넷은 생활 일부가 되어버렸기 때문이다.


하지만 글로벌 단위에서 생각해보면 지연 시간과 다운로드 속도는 아직 해결되지 않은 문제점이다. IT 강국으로 꼽히는 '인도'만 해도 종종 인터넷 연결이 아예 끊어져 버린다. 미들 마일에서 일어나는 데이터 부하가 해결되지 않았기 때문이다.

온라인 게임에서 네트워크의 관리와 사후 대책, 그리고 성능 개선의 문제는 비교적 개발 후반부에 수립된다. 기획/개발의 단계를 거쳐 출시/배포 이후, 실제로 게임이 라이브 되는 시점에서 터져 나오는 문제점들이고, 해결책 또한 이 시점에 만들어지기 마련이다. 한준형 부장은 다른 제안을 했다. 이 문제를 미리 해결하면 어떨까? 기획/개발의 단계에서 미리 예방책을 세운 후, 비교적 원만한 서비스를 이뤄내는 것이다.

대표적인 문제가 '패치'다. 온라인 게임은 끊임없는 개선이 라이브 운영의 핵심 골자다. 그래서 업데이트 또한 잦은 빈도로 이뤄진다. 하지만 CDN을 거치지 않고, 스토리지 서버(개발사의 서버)와 이용자의 서버를 직접 연결하게 되면, 개발사 서버는 과부하에 시달릴 수밖에 없다. 미리 CDN을 잘 짜두게 되면, 적어도 이런 문제는 예방할 수 있다.



⊙ TTL과 퍼징, 그리고 URL

하지만 실제 사례에서, 문제는 CDN 설계 이후에도 일어난다. 한준형 부장은 본격적으로 실제 게임 서비스 중 데이터 불일치(메인 서버의 데이터와 개인 이용자의 데이터가 맞지 않아 게임을 할 수 없는 상황)가 일어나는 경우, 그리고 이를 해결하는 방법을 말하기 시작했다.

보통 CDN을 사용하게 되면 퍼스트 마일의 서버와 라스트 마일의 서버 간에는 몇 단계의 보급 지점(Layer)이 만들어진다. 마치 봉건 시대의 지배 구도를 보듯이, 하나의 스토리지 서버에는 몇 개의 '페런츠 서버'에 데이터를 보내고, 이 페런츠 서버는 또 각각 몇 개의 '차일드 서버'에 데이터를 보낸다. 그리고 이 '차일드 서버'가 근처의 개인 이용자들에게 데이터를 제공하는 방식이다.

문제는 개발사가 CDN의 메커니즘을 정확히 파악하지 못한 채 운영하는 과정에서 일어난다. 예를 들어 새로운 패치의 이름을 단순히 'Patch'로 지어 배포했고, 이후 다음 업데이트 또한 'Patch'라는 이름으로 지어 배포하게 된다면 문제가 생긴다. 파일 이름(URL도 해당)이 같을 경우, 하위 서버는 스토리지 서버의 정보를 받아들이지 않게 된다.


이는 'TTL'이라는 개념에서 비롯된다. 'TTL(Time To Leave)'은 데이터가 서버에 머무르는 기간을 말한다. 만약 TTL이 2주라면, 2주가 지난 후 하위 서버에서는 데이터를 삭제한 후, 새로운 데이터를 상위 서버에서 내려받는다. 물론 새로운 이름의 파일이 상위 서버에 등록될 경우, 하위 서버는 업데이트를 인식하고 TTL과 무관하게 데이터를 받지만, 이름이 같은 경우는 이미 기존에 존재하는 데이터와 같은 것으로 취급, 데이터를 내려받지 않는다. 이렇게 되면 게임을 플레이하는 각 개인 이용자 간의 버전이 달라지고, 곧 데이터 불일치가 일어나게 된다.

이를 해결하기 위한 명령어가 바로 '퍼징(Purging)'이다. 퍼징의 경우 한 번에 모든 하위 서버의 데이터를 삭제하는 과정이다. 물론 퍼징을 실행하기 위해서는 그 기간 동안 플레이어의 서버 접속을 차단해야 하고, 새로운 데이터를 서버에 안착시키기 위한 시간이 필요하다. 게임상에서 문제가 터진 이후 정상화까지 한동안 시간이 걸리는 이유는 여러 가지가 있지만, 이 '퍼징'또한 그 과정 중 하나일 수 있다.

물론 가장 좋은 방법은 새로운 업데이트를 할 때마다 새로운 URL과 파일명을 정하는 것이다. 이 과정을 거치면 접속 차단이나 퍼징 없이 개별 이용자의 파일 불일치를 막을 수 있다.

⊙ 지리적 거리, 그리고 지연 시간

마지막으로 한준형 부장은 서버의 위치와 개인 사용자의 위치, 즉 거리에서 비롯되는 지연 시간의 발생에 대해 이야기하기 시작했다. 짧은 지연 시간은 모든 온라인 게임에 필수적으로 요구되는 사안이다. 지연 시간의 발생에는 회선의 상태나 품질 등 다양한 이유가 있고, 이 때문에 가끔은 같은 지역에서 이용하는 플레이어 간에도 극심한 지연 시간 차이가 생기곤 한다. 하지만 절대적인 법칙이 하나 있다면, 지리적 거리가 지연 시간에 끼치는 영향이다.

아카마이는 이 때문에 빚어지는 지연 시간의 문제를 해결해 왔다. 데이터 센터를 중앙으로 잡고 비슷한 지연 시간을 그리는 영역들을 표시하다 보면, 데이터 센터를 중심으로 삼는 동심원들이 그려진다. 이 동심원의 이상적인 영역에 최대한 많은 이용자가 들어올 수 있게끔 데이터 센터를 배정하고, 관리하는 것이 아카마이의 역할이다.


물론 그 과정에서 여러 솔루션이 함께 도입된다. 라우트 최적화를 통해 더 나은 회선을 찾고, TCP 패킷 가속이나 REST API를 사용하는 등 말이다. CDN의 사용 이유는 최소의 비용을 들여 최고의 효율을 끌어내기 위함이다. 한준형 부장은 아카마이의 솔루션을 간단히 더 설명한 이후, 강연을 마무리 지었다.

▲ 아카마이의 성공 사례

▲ 상황에 맞는 다양한 솔루션이 제공된다.


※ 강연의 전체 내용은 추후 강연 영상을 통해 공개할 예정입니다.