시절이 하수상하여,
거대 온라인 커뮤니티 사이트가 하루 아침에 만들어져 버리는 어이없는 현상이 발생해 버리기도 한다.
요즘 신규 커뮤니티 사이트로 이슈가 되고 있는 일간워스트(일워) 사이트 이야기다.
http://ilwar.com/
이 글에서는, 일워 사이트의 커뮤니티적 측면에서가 아닌, 서버 환경 기술적인 측면에서 정리 기술해 보고자 한다.
우선, 일워 사이트 개발자가 올려 놓은 개장기 이다.
http://blog.rainygirl.com/?p=1266
서버 환경 기술적으로 트래픽을 어떻게 대처해 나가는 지에 대해서 따라가 보았다.
1. 호스팅어 무료호스팅 + 제로보드XE
- 2013-12-28, 호스팅 업체는 추정
- 접속자가 몰려 15분만에 호스팅 업체의 CPU 제한이 초과되어 사이트가 중단됨.
2. 유료호스팅 + PHP 기반의 제로보드XE
- 2013-12-28 오후 오픈, 30일 아침에 파이낸셜뉴스에 첫기사 나감.
- 이후 실시간검색어와 기사로 인해, 순방문자 백만명 돌파.
- 동시접속자까지도 폭발하면서 유료호스팅 트래픽 초과로 사이트 다운.
3. 자체서버 + nginx + php-fpm + XE
- 서버 사양은 확인이 안됨.
- 2013-12-29 첫날, 생전 보도 못한 트래픽 발생했다고 함.
- 2013-12-30 둘쨋날, 전날의 3배 트래픽
- 서버 로드율이 70 ~ 80 까지 올라감
- 이후 서버 로드율이 100 을 넘어 갔고, XE 가 500 에러를 발생시키기 시작함.
4. 자체서버 + python 기반의 자체 게시판 소스 + minify + expires 설정 + media query 로 모바일/PC 분귀
- DoS 공격은 방화벽으로 차단
- apache2 + mod-wsgi + django
5. 아파치 설정
- maxclient, minspareserver, process, thread 등의 값 늘리기.
- process x thread < maxclient 이어야 함.
- 이렇게 하여, 동시접속 수만여건 처리 가능해짐
6. MySQL 설정
- my.cnf 의 max_connection 값 늘리기
결론..
이렇게 기술적으로 적용을 해 가면서 수십만 동시접속을 처리할 수 있게 되었다는 내용이다.
요즘 apache 의 대안으로 nginx 가 많이 대두가 되고 있는데,
일워 사이트도 초창기에 nginx 서버 사용을 시도하기도 했다.
nginx 에서는 php 가 동작하지 않기 때문에, php-fpm 으로 제로보드XE 를 운영하였다.
그러다, 나중에는 apache 로 웹서버를 변환하였다.
아파치에 django 가 돌아갈 수 있게 해 주는 mod-wsgi 를 이용하고, django 가 python 으로 작성되었기 때문에,
python 으로 사이트를 제작하였다.
웹소스도 python 언어로 자체적인 게시판을 만들어 버렸기 때문에, 자동글도배 프로그램에도 잘 방어가 될 수 있어 보인다.
신생 커뮤니티로서 이 사이트가 현재의 규모를 계속 이어갈 수 있을 지..
앞으로 기술적으로 어떻게 변화가 있을지..
지켜볼 일이다.