시작하기 전에 먼저, 여러분들 중 IT 현업에 일하는 사람 몇 있는 거 같던데, 저는 게임 개발자가 아니며 심지어 프로그래머도 아닙니다.  정확히 말하자면, 시스템 어드민(Systems Administrator)이며 주로 OpenStack, LDAP, Bacula, object/block storage, 방화벽(pfSense), 네트워크 등을 다룹니다.  컴공 출신이니 프로그래밍도 할 줄 알고 서버 모니터링하는 프로그램도 직접 만들어서 쓰고, 개발 관련 이야기는 어느정도 알아먹지만, 그렇다고 제가 아예 프로그래머로 이직할 수 있는 수준은 못되며, 실제 게임개발이 어떻게 이루어지는지는 모르기 때문에 컴알못도 알고있는 걸 제가 모르고 있을 수도 있음을 염두에 두시기 바랍니다.

이번 이야기는 러시아 및 채팅 서버가 분리된 것에 관련된 이야기임.

러시아 사태

1. 올 4월 (2018년)부터 러시아 애들이 이브하기가 힘든거 다들 알지.  러시아 정부가 무려 180만개나 되는 아마존이랑 구글의 IP 주소를 차단했기 때문.

2. 그 많은 IP주소를 차단한 이유가 바로, 보안 메신저로 유명한 텔레그램을 막기 위해 벌인 일

3. 근데 왜 아무 상관없는 이브온라인 접속에 문제가 생기냐면, 다들 알다시피 이브의 텍3TQ 서버는 영국에 있지만, 얼마 전 분리된 채팅 서버가 아마존 웹 서비스 (AWS)라고 하는 클라우드 컴퓨팅을 이용하기 때문.  즉, 텔레그램도 구글 클라우드와 AWS에서 운영된다는 소리.

4. 그렇담 채팅 안하고 게임하면 되지않냐고 생각할 수 있겠지만, 기능 하나 꺼졌다고 그게 꺼진 상태로 게임이 실행되고 그러는게 아님.

컴잘알용 – 클라우드

5. 말이 나와서 알려주자면, 시스템 엔지니어링 쪽에서는 관련되는 소프트웨어들이 죽더라도 각자의 기능은 살아서 잘 돌아가게끔 하는 High Availability라고 하는 개념이 유행이고 필수임.

6. 채팅 서버만 AWS (Amazon Web Services)에서 운영되는게 아니라, 클라이언트랑 이브 런쳐 다운로드 같은 것도 거기서 운영됨.

7. 말이 나와서 설명하자면, 요즘 대기업들이 AWS로 옮겨가는 추세임. 가장 대표적인 예가 바로 넷플릭스인데, 넷플릭스가 몇 년 전에 자기네 데이터센터 샤따문 내리고 전부 다 AWS로 이사 갔었음.  인력 엄청나게 줄이고 데이터센터 유지비용도 없어지고해서 비용적으로 굉장히 절감한다고 하는데, AWS가 전세계적으로 많이 구축되어있으니까 어느 나라든 랙 없이 이용가능함.  그런 점에서 봤을 때, 아마존은 정말 무서운 회사임.

8. 또 말이 나와서 하는 말인데, AWS라는게 위에 설명했듯 클라우드 컴퓨팅이라는 소프트웨어인데, 여러분들이 알고있는 네이버 클라우드 마냥 웹하드 같은게 아니고, 컴퓨터 수백대를 하나로 묶어서 그 안에서 지들끼리 지지고 볶고 하는데, 이게 구름 속에서 일어나는 것 마냥 잘 보이지도 않고 두루뭉실해서 클라우드 라는 이름이 붙여짐.  진짜임.  그래서 유지보수하기가 매우 어렵고, 시스템 엔지니어링의 꽃이라고 불리우는 분야.

9. 또 또 말이 나와서 하는 말인데, 전세계 클라우드 업계는 사람이 없어서 난리임. 현재 AWS와 오픈소스 클라우드인 OpenStack 클라우드가 양분하고 있고, 의외로 울나라의 다음카카오가 오픈스택 클라우드에서 세계적으로 굉장한 기술력을 갖고있음 (L2단까지 뜯어고침).  내가 다음카카오 클라우드 수석개발자랑 아는 사이여서 그러는게 아니고 진짜로 세계적인 수준임.  엔지니어 2명이 가상머신 12,000 여대를 관리하는데 전세계 OpenStack 운영하는 회사에서 이 정도 사례 찾기 힘듬. 우분투 리눅스 만드는 회사(캐노니컬)의 현 프로덕트 매니지먼트 디렉터인 Stephan Fabel이랑 개인적으로 아주 아주 잘 아는 사이(내 사수였음)인데, 그 양반 왈 사람 없어서 난리라 함.  다음카카오 클라우드 수석이 나한테 한 얘기가, 클라우드 조금만 만져봤다카면 자기가 뽑아준다카더라. 다음카카오 중소기업? ㅋ

그외

10. 어떤 유저는 러시아인들 없는 이브는 굉장히 이상할 것 같다고 함. 러시아 애들 대신 중국애들을 더 보게될 거라면서 중국애들 보기싫다고 돌려깜.

11. 초기에는 VPN을 쓰면 되느니, 러시아 내 인터넷 회선업체 (ISP) 등에 우회하는걸 요청하면 되지않냐, 걍 DNS resolving을 건드려보라는 등으로 시작하다가, 토론이 점점 산으로 올라가서 백도어 얘기 나오고 소프트웨어 변조에 대응하는 CPU 내부 에러검출 얘기까지 나옴.

12. 사실 이브만 문제가 아니라 월오탱이나 와우, 길드워2 같은 게임들도 영향을 받고있다함.

채팅서버 분리

13. CCP가 채팅서버를 분리하게된 이유는 4가지가 있는데, 1) 거대한 서버를 여러개로 쪼개서 관리를 쉽게하기 위함, 2) 챗질하는게 서버의 CPU 사용률에 큰 영향을 주며, 3) 아래 설명할 업계에서 표준으로 쓰고 있는 채팅 프로토콜인 XMPP (eJabberd)를 사용하는 것이 앞으로 뭔가 새로운  기능을 추가하기에도 좋고, 4) GM들이 고객지원 할 때 채팅 기록을 보기가 쉽기 때문이라고 함.

14. 모든 유저들이 채팅 서버 분리한 건 정말 잘한 일이라고 칭찬함.

15. 다만 채팅 서버 분리 이후 초기에 불안정했던 건, CCP 내부 인력만으로는 대규모 채팅 테스트를 해볼 수 없었기 때문임.  끽해봐야 직원들 50-100명 정도가 모여서 한 채널에서 떠들고 하는 정도 수준이라 테스팅이 어려웠다 함.  이제는 괜찮은 듯?

16. 다들 알다시피 이브는 우주 스킨을 입힌 채팅 프로그램 (진짜 믿는건 아니겠지?) 웃기는건 여러분들만 이브는 채팅게임이다 라고 말하는 게 아니라 외국애들도 “Eve Online is a chat room with spaceships”라고 함.

17. 위에꺼에 덧붙이자면, 외국애들도 “게임 삭제”하라 그러고, 채팅서버가 분리됐으니 “오 나중에 채팅 채널용 스킨 나올테니 플렉스 사야겠네” 라고 비꼬고 그럼.

컴잘알용 – IRC

18. 컴잘알은 딱 보면 알겠지만, 이브 채팅 시스템은 IRC와 굉장히 유사해서, 나도 이브 처음 시작했을 때 “아 이거 IRC 뜯어고쳤구나” 라고 생각했음.

19. 컴알못을 위해 설명하자면, IRC는 1980년대에 나온 역사적으로 오래된 인터넷 기반 채팅 프로그램인데, 만들어진지 오래됐지만 굉장히 가볍고 잘 만들어져있기 때문에 지금까지도 여전히 쓰이고 이걸로 만들어진 웹사이트가 상당히 많음.  트위치 채널 채팅방도 IRC 붙여서 만든거고.  지금도 있나 모르겠는데, 세이클럽이라는 웹사이트는 당시 카이스트 출신 프로그래머가 PHP+자바스크립트에 IRC 뚝딱 붙여서 만들었음.

20. IRC 얘기 나온 김에 하나 더 얘기하자면, Coldfront.net에 CCP가 공식적으로 운영하는 이브 헬프 채널이 하나 있음: #eve-chaos 다만, GM이 도와주는 곳이 아니라 걍 유저들이 자발적으로 도와주는 곳이므로, 아마 게임 내 문제 해결보다는 질문에 답해주는 형식으로 운영될 거라 추측해봄.  귀찮아서 접속은 안해봄.

채팅 외부 연동

21. 이번에 채팅 서버가 분리되면서 바뀐 가장 큰 부분은, 이브 내 채팅시스템이 XMPP라는 프로토콜을 내장하게 됐다는 건데, 복잡한 얘기 다 걷어치우고 쉬운 얘기만 해주면, 페이스북 채팅, 아이폰 iMessage, 구글톡 등 상당히 유명한 채팅 프로그램들이 XMPP를 사용해서 만들어짐.

22. 이 말인 즉슨, 이브 게임 내 채팅이 외부 프로그램과 연동이 될 가능성이 충분히 있다는 뜻이며, CCP 개발자는 지금은 아니라고 대답했지만 차후 계획은 이브 게임 내 채팅을 외부랑 연동시키는 것이라고 함.

23. 외부 연동의 형태는 아직 고민 중인데, 모바일용 앱이 될 수도 있고, 아니면 CCP 웹사이트를 통해서만 되게하거나 등등 아직 정해지지 않았다고 함.

24. 다만 여러 유저들이 ChatBot을 우려하는데, IRC 해본 사람은 알겠지만, 채팅 프로그램에는 Bot이라고 하는 소프트웨어가 있음 (디스코드에 있는 봇이랑 같은 개념).  이게 뭐냐면, 일반 사용자처럼 로그인해서 특정 문구를 입력하면 자동으로 명령을 수행함.  예를 들어서 /환율 미국 이라고 치면 구글에서 미국 달러 환율을 검색해서 보여준다거나 하는 식으로, 무궁무진하게 활용할 수 있음.

25. 어쩌면 누군가는 인텔 캐기 위해서 새로 분리된 채팅서버에 어떤 방법으로든 접속을 시도하고 있을지도 모름.

이브온라인 서버

26. 저번 글에서 어떤 분이, “이브상황상 벡터연산이 많아서 GPGPU를 적절하게 많이 쓴다는 말도 있다”라고 말했길래 알아보니, CCP의 T3 TQ 데이터센터에는 GPU가 달린 서버가 아예 없음.  저저번 글에 적었지만, 이브온라인에서 파이썬 제외하고 랙을 유발하는 최대의 요소는 데이터베이스 입출력 성능임.  이거 때문에 ESI라는 새로운 API 시스템이 생긴 거고.

27. 다만 TQ 데이터센터에는 Everest라고 불리우는 6대의 서버가 있는데, 대규모 계산이 필요한 상황, 특히 대규모 교전만 별도로 담당하며, 이 서버들은 NDA 즉 기밀사항이라 공개가 안되어있어서 사실 여기에 GPU가 있을지도 모르겠지만, 어찌됐든 Everest 제외한 모든 CCP 서버에는 GPU가 없음.  만약 GPU 얘기가 게임 클라이언트 얘기였다면 이브 클라이언트는 당연히도 CPU보단 GPU를 더 많이 쓰는 게임임.  앞서 언급했듯 게임 프로그래밍은 전혀 아는 바가 없어서 여기서 끝냄.

28. 서버 얘기가 나와서 몇 가지 덧붙이자면, Dust 514로 쓰던 서버는 현재는 EVE에서 굴림.

29. TQ 데이터센터의 서버들은 BGP로 라우팅하는데, 이런 네트워크 이야기는 여기에서 얘기하기 너무 어려운 주제이므로 하지않겠음

30. 2014년에서 2016년 사이, CCP는 데이터센터를 한 번 이전하고난 뒤 서버들을 전부 업그레이드를 해서 텍3라고 부르며 (저저번 글에서 다뤘음), 텍2 서버들은 아이슬란드로 옮겨서 테스팅 서버 (Singularity)로 활용 중.

여담:써드파티 웹사이트 중에서 가장 인상깊었던 곳: https://eve-prism.com/PvP에 대한 정보를 실시간으로 보여주는데, 정말 잘만들었다 생각함.  내가 말한 데브 포럼에 댓글 주고받는 굇수들이 이런 애들이라고 생각하면 CCP 개발자들도 참 피곤하겠네…