티스토리 뷰

카테고리 없음

동접의 의미

래셔널아울 2018. 4. 11. 15:17

동접이 뭐야?


동접은 동시접속(Concurrent Connection)의 약자다. 

일반적으로 동접이라는 용어는 게임에서 게임 인기의 척도로 많이 회자되는데 게임 사용자가 동시에 얼마나 많이 플레이하고 있느냐를 나타낸 수치이다.


게임은 한번 접속하면 서버와 계속 연결을 유지하면서 실시간으로 데이터를 주고 받는 실시간 서비스의 대표적인 예이다. 

즉, 게임, SNS, 채팅 등 실시간 데이터 전달 및 공유가 필요한 실시간 서비스들은 서버와 동접을 유지해야 한다. 



실시간 메시징 서비스에서 동접의 의미


'1대의 메시징 서버로 처리할 수 있는 동접수'의 의미가 무엇일까?



래셔널아울 서비스를 개발하면서 동접을 늘이기 위해 메시징 서버 구조를 바꾸는 대공사(?)를 진행했었다. 


그리고 1대의 메시징 서버로 5% 내외의 CPU소모만으로 213만 동접 테스트를 성공했다. 

테스트 당시 공식적인 세계 최고 기록이 페이스북의 왓쯔앱 메시징 서버의 200만 이어서 200만을 테스트 목표로 진행했었고 약 213만 동접까지만 진행을 했던 상황이다. 


200만 동접 테스트 유튜브 동영상 <=


당시 동접 테스트에 aws 서버 약 60대정도를 사용했었고 인력이나 재원이 충분했다면 그 이상도 충분히 가능한 상태였지만 실제 서비스에서 200만 동접이상은 네트워크 대역폭의 한계 때문에 실제 의미가 없을 것 같아 그 이상은 진행하지 않았다. 


서비스 시장 가격 경쟁력 확보


200만 동접을 처리하기 위해서 1대의 메시징 서버로 10만 동접을 처리한다면 최소 20대의 메시징 서버가 필요하다. 

그러나 1대 메시징 서버로 200만 동접을 처리한다면 1대의 메시징 서버로도 가능하다. 


즉, 메시징 서비스 운영비를 그만큼 낮출 수 있게 되어 저렴한 가격에 서비스를 제공할 수 있다.




해외 대표적인 실시간 메시징 서비스가 약 8만 동접 처리로 알고 있고 다른 서비스들도 비슷한 수준이라 추측한다.


실제로 래셔널아울 서비스는 해외 실시간 메시징 서비스에 비해 평균 1/4 (2018년 5월 기준) 가격으로 서비스를 제공한다.


메시지 품질 일관성 유지


200만 동접을 처리하기 위해서 1대의 메시징 서버로 10만 동접을 처리한다면 하나의 고객 서비스를 처리하기 위해 최소 20대의 메시징 서버가 클러스터링 구조로 연결되어야 한다.


그러나 1대 메시징 서버로 200만 동접을 처리한다면 1대의 메시징 서버로도 가능하다. 


서비스 내 클러스터링 노드수가 증가하게 되면 노드간 데이터 통신이 증가하게 되고 노드간 이동시에도 데이터 및 조건 검사, 연산 등의 작업들이 부가적으로 발생하게 되어 결국 메시지 전송 속도 저하로 이어진다. 즉, 동접 단말수가 증가할수록 속도 저하가 누적된다.


동접처리수가 많으면 메시징 서버 클러스터링 노드간 통신을 최소화할 수 있어 동일 서비스 내 동접 단말 수가 증가하더라도 메시지 품질의 저하를 최소화 할 수 있다.




근대 왤케 비싸?!!


3월말 서비스 런칭 후 서비스 문의를 몇 군데 받으면서 가장 많이 들은 얘기다.  


"해외 서비스에 비해 아주 싼 편이에요..." 라고 이야기해도 와닿지 않은 모양이다. 


"기술이 합리적인 가격을 만듭니다."라고 내건 문구가 무색하다.


뭔가 조치가 필요해 보인다...




댓글