|
SLR클럽에는 하루에도 수많은 콘텐츠가 올라온다. 하루 게시물 수만 해도 많을 때에는 8만 개에 달한다. 사진은 1만 5,000장이나 된다. 초대형 커뮤니티인 만큼 안정성과 보안 등 챙겨야 할 것이 많다. SLR클럽을 운영 중인 (주)인비전커뮤니티 CTO를 맡고 있는 오명오 이사는 이 모든 과정은 모두 공개SW로 해결한다고 말한다.
월 4억뷰 초대형 커뮤니티 ‘심장은 공개SW’
2012년 이후부터는 해외 사용자도 꾸준히 늘어 2012년 전체 방문객 중 4%였던 해외 방문자는 올해 들어선 7∼8%로 거의 2배 가량 높아졌다. 이런 이유에서인지 SLR클럽의 내부 구조는 국내웹과 외국 사용자를 대상으로 한 중계서버 시스템으로 나뉘어져 있다.
시스템 구성은 모두 공개SW. 먼저 공개SW 도메인 서버로는 파워DNS(PowerDNS)를 이용한다. C++로 만든 DNS 서버 시스템으로 무료로 이용할 수 있다. 이를 거치면 공개SW 웹 서버 소프트웨어인 엔진엑스(Nginx)로 연결된다. 엔진엑스는 가볍지만 높은 성능을 내는 웹서버 공개SW로 웹서버와 리버스 프록시, 메일 프록시 같은 기능을 갖추고 있다. 이미 검증된 소프트웨어이기도 하다. 넷크래프트가 지난 2011년 조사한 바에 따르면 엔진엑스는 전체 도메인 중 7.5%, 4번째로 가장 많이 쓰이는 웹서버로 꼽히기도 했다.
이 과정을 거치게 되면 공개SW 로드밸런서인 하프록시(HAProxy)를 이용하게 된다. 하프록시는 공개SW 기반 로드밸런서도 뛰어난 성능을 인정받고 있다. 대규모 트래픽을 소화하는 데에도 유리하다. 국내에 위치한 서버에 접근하는 사용자와 달리 갈수록 늘어나는 해외 사용자를 대상으로는 기본 구조는 같지만 조금 더한 게 있다. 파워DNS에 해외 사용자를 구분하는 동시에 도메인 로드밸런서 역할을 하는 GEO+GSLB를 공개SW를 기반 삼아 자체 개발해 적용했다. 또 북미 서버와 국내 데이터 캐싱 부하 분산을 위해 엔진엑스와 하프록시를 이용한다. 이런 중계서버를 거쳐 국내로 연결하는 애플리케이션을 L7 스위치 대용으로 쓰는 것. 모든 과정을 거치면 하프록시 로드밸런서를 통해 PHP 애플리케이션과 만나게 된다.
데이터베이스는 2000년 처음 SLR클럽을 열 당시만 해도 MySQL를 썼지만 지난 2010년 마리아DB(MariaDB)로 바꿨다. MySQL에서 마리아DB로 바꾼 이유는 몇 가지가 있다. 가장 문제가 됐던 것 가운데 하나는 피드백이나 수정 사항 반영이 너무 늦다는 것. 지난 2005년 버그 관련 이메일을 보냈지만 답변은 황당하게도 4년이 지난 2009년 날라 왔다고 한다. SLR클럽은 이미 몇 년 전 자체적으로 해결해서 쓰는 상황이었다.
기술적 문제도 있었다. 마이SQL은 데이터를 주로 메모리에 올려야 하는 탓에 메모리 요구량이 많을 수밖에 없었다. SLR클럽의 경우 DB 서버에 들어가는 메모리 용량은 700GB. 그런데 마이SQL을 이용해 클러스터링을 구축하려면 대당 메모리가 250GB인 서버 10대는 필요하다.
하지만 마리아DB는 갈레라 클러스터(Galera Cluster)를 지원한다. 오 이사는 “마리아DB의 강세는 서버 자체에 있다”면서 갈레라 클러스터를 이용해 배포를 단순화하고 고가용성이라는 점, 덕분에 대용량 서비스에 훨씬 유리하다고 밝혔다.
SLR클럽은 여기에 샤딩(Sharding) 기능도 함께 진행한다. 마리아DB를 선택하는 이유 가운데 하나로 꼽히는 기술로 소프트웨어적으로 데이터베이스를 분산 처리할 수 있게 해주는 것이다. 한정된 자원에서 대형 서비스를 분산 처리해 퍼포먼스를 높이기 위해 마리아DB로의 전환을 진행했다는 얘기다. SLR클럽은 여기에 작은 크기 데이터를 메모리에 올려놔서 빠른 속도를 제공할 수 있는 Memcached도 함께 이용하고 있다.
▲ SLR클럽 공개SW 서비스 구조도
커뮤니티 14년 노하우 담은 플랫폼 준비중
SLR클럽 내부 개발팀은 공개SW를 즐겨 이용한다. 오 이사는 SLR클럽의 경우 공개SW를 단순하게 사용하는 것 뿐 아니라 GSLB에서 알 수 있듯 공개SW를 기반으로 해 직접 개발하기도 한다. 공개SW를 쓰면서 피드백도 적극적이다. 수정 사항은 적극적으로 반영해 지금까지 SLR클럽이 공개SW 개선사항으로 올린 것만 해도 100∼200회에 달한다는 설명이다.
오 이사는 공개SW의 장점으로 수많은 사용자가 쓰다 보니 안정적이라는 점을 강조한다. 물론 잘 만든 상용 소프트웨어도 있지만 한 업체가 전문 레벨까지 만들면 좋겠지만 생각처럼 그렇지 않은 경우가 많고 어떤 면에선 오히려 불안한 경우도 많다는 것이다. “예를 들어 마이크로소프트 윈도만 봐도 그렇죠. 2003년 정도까지만 해도 결함 덩어리였다고 해도 과언이 아니었으니 말이죠.”
반면 리눅스는 같은 문제가 초기에는 있었더라도 소스 자체가 오픈되어 있다 보니 수많은 사용자가 퍼포먼스 튜닝을 진행해 결국은 해결이 된다. 오 이사는 이렇게 소스가 공개되어 있는 경우가 오히려 더 외부 보안 공격 같은 것에도 더 안전한 경우가 많다고 설명한다. 예를 들어 윈도나 익스플로러 같은 경우에는 소스가 오픈되어 있지 않아 보안 문제가 발생하는 걸 해커가 공개하거나 마이크로소프트가 알려주지 않는 한 알 방법이 없다. 이에 비해 공개SW는 이런 문제점이 더 빨리 외부로 알려지고 해결도 된다는 것이다.
오 이사는 이런 점을 강조하듯 공개SW로 모두 이뤄진 SLR클럽이지만 “지금까지 14년 동안 한 번도 (외부 해커 등에 의해) 해킹당한 적이 없다”고 말한다. 디도스 공세가 심하던 시절에는 좀비PC를 통한 공격이 문제였는데 당시에는 화이트리스트 시스템을 자체 구축해 이전 3주간 방문 IP를 비교 체크하는 등 외부 공격을 방어했다. 그 뿐 아니라 보안 솔루션도 공개SW를 기반 삼아 내부에서 직접 개발했다. 물론 웬만해선 안 뚫리지만 얼마 전에는 중국 해커 2명이 서버에 잠입하기도 했다. 하지만 내부 개발팀은 침입 루트를 확인하기 위해 일부러 내버려둔 것이다. 진원지를 역탐하기 위한 것. 이들은 물론 내부에서 아무 것도 가져가지 못했다.
▲ SLR클럽 웹사이트
이유는 DB 보안 솔루션 때문이다. 오 이사는 지난 2006년에는 DB 보안 솔루션을 자체 개발해 SLR클럽에 적용했다고 설명했다. 당초 개인 정보 사업을 고려한 것이었지만 당시만 해도 지금처럼 보안에 대한 인식이 국내에선 없었다고 한다. 오 이사는 이런 DB 보안 솔루션은 아마 국내에선 처음일 것이라고 덧붙였다.
DB 보안 솔루션은 물리적인 서버 내 자료의 외부 탈취 방지를 위한 것이다. DB 자체를 암호화하는 건 기본. 암호화 표준까지 자체 개량해서 쓰고 있다. 설령 앞서 설명한 것처럼 해커가 침투를 한다고 해도 못 뺀낸다고 한다. 암호화 방식이 복잡할 뿐 아니라 동일 네트워크 상태여야 하고 물리적인 서버 형태 조건까지 까다로운 조건을 모두 만족하지 않으면 빼낼 수 없도록 설계했기 때문이다. 오 이사는 SLR클럽 내에 암호화된 것을 해커가 빼낸다 하더라도 “아마 푸는 데 100년 넘게 걸릴 것”이라고 설명했다.
SLR클럽은 연간 공개SW를 활용한 작품을 1∼2개 정도씩은 꾸준히 만들어오고 있다. 올해도 DB 샤딩 관련 분야를 대상으로 해서 1건을 진행 중으로 10∼11월 정도까지는 완성될 예정이라고 한다. 오 이사는 이런 기술력을 바탕으로 내부적으로는 SLR클럽의 최종 버전을 진행 중이라고 설명했다. 물론 일반 독자가 보기에는 차이가 없겠지만 내부적으론 프로그램을 체계화하고 조직화하는 한편 퍼포먼스를 최적화한 버전이 될 것이라는 것이다. SLR클럽 개발팀은 이 작업에 8개월 가량을 줄곧 매달렸다.
내부에선 ‘인비전 커뮤니티 플랫폼’이라고 부르는 것으로 2가지 특징을 지녔다. 첫째 대형 커뮤니티를 위한 플랫폼으로 첫째 외부 UI나 UX보다는 관리 프레임워크를 강화한다. 둘째 SLR클럽 같은 대용량 DB를 처리할 수 있는 커뮤니티에 최적화한다. 오 이사는 인비전 커뮤니티 플랫폼이 SLR클럽의 커뮤니티 14년 노하우를 담은 게 될 것이라고 설명한다. 여기에도 공개SW가 바탕이 되는 것은 물론이다.
[인터뷰]
“매년 공개SW 1∼2개 개발, 보안 솔루션도 직접 만들었죠”
오명오 인비전커뮤니티 CTO
▲ 오명오 CTO는 공개SW의 장점으로 수많은 사용자가 쓰다 보니 오히려 더 안정적이라는 점을 들었다.
공개SW를 쓰게 된 이유는 뭔가? 공개SW 도입 효과에 대해서 설명한다면.
보통 공개SW를 쓰면 불안하다고 생각하지만 많은 사람이 참여하다 보니 오히려 안정적이다. 물론 상용SW도 장점이 있지만 무작정 안정적이라 얘기할 수 없다. 예를 들어 마이크로소프트 윈도우만 봐도 2003년 정도까지만 해도 결함 덩어리였다고 해도 과언이 아니지 않았나. 반면 공개SW는 소스 자체가 모두 공개되어 있어 취약점도 금세 알려지고 수정된다. 공개SW라고 해서 무조건 다 좋다고만 말할 수는 없지만 내부에선 이를 수정하거나 바탕으로 삼아 더 좋은 솔루션을 직접 제작해 이용하기도 한다. 가장 큰 도입효과라면 보안 솔루션도 자체 개발하는 등 안정적으로 대형 커뮤니티를 유지할 수 있게 된 것이다.
커뮤니티 기반 회사다. 개발 방향성을 설명한다면 어떤 게 있을까.
노하우를 집약하고 가다듬는 것이다. 오는 11월 완성을 목표로 인비전 커뮤니티 플랫폼을 제작 중이다. 커뮤니티 14년 노하우를 담은 게시판 기반 커뮤니티 플랫폼이 될 것으로 기대하고 있다. 기존 커뮤니티 제작 도구와 달리 외부 UI나 UX보다는 관리 프레임워크를 강화하는 한편 SLR클럽처럼 대용량 DB를 처리할 수 있는 커뮤니티에 최적화할 것이다.
- 공개SW 역량프라자
'5. 오픈소스 News' 카테고리의 다른 글
메조미디어 – 공개SW 기반 인메모리 시스템 구축 (0) | 2014.09.29 |
---|