우연히 리눅스 공부하다가 라운드 로빈 식 웹사이트 운영을 봤는데

 

웹서버 3대 db 서버  2대 해서 웹서버 3대가   db서버 (읽기전용)  db서버 (쓰기전용)  번갈아 가면서

 

이런식으로 운영하시는 분 계신가요 !!!  이런식의 웹서버 운영하면 서버부하나 렉 기타 보안 쪽에서도 

 

괜찮타고 하던데 .. 

  • profile

    DB를 마스터/슬레이브로 나눠서 쓰는 건 이미 XE도 지원합니다. db.config.php를 수정하면 돼요. 단, 완벽하게 세팅하기가 쉽지 않으므로 둘 중 하나만 다운되거나 렉이 걸려도 둘 다 못쓰게 되는 경우가 비일비재합니다.

     

    문제는 웹서버예요. 여러 대의 서버를 쓰려면 서로 파일이 동기화되도록 하는 것이 중요한데요... (한쪽에 파일을 업로드하면 다음에 다른 서버에 접속하더라도 그 파일을 다운받을 수 있어야 하지요) XE는 캐시파일이 실시간으로 업데이트되어야 하기 때문에 흔히 사용하는 5분 간격 동기화 같은 건 안 통합니다. 그렇다고 NFS로 공유하면 성능이 심각하게 떨어지고요. DRBD는 좀 나으려나... 아무튼 여러 대의 서버를 효율적으로 사용하려면 프로그램 자체를 거기에 맞게 설계해야 합니다. 평소 쓰던 프로그램을 그냥 얹어놓으면 포인트가 꼬이는 등 여러가지 문제가 생겨요.

     

    아무튼 이래저래 귀찮습니다. 서버 한 대로 감당이 안 될 만큼 사이트 규모가 크고, 여러 대의 서버를 꾸준히 관리해줄 전문인력이 없다면 절대 권장하지 않습니다. 그렇지 않으면 해킹당할 위험도 서버수에 비례해서 늘어나기만 하지, 절대 더 안전해지지 않아요.

     

    게다가 요즘은 서버 사양이 워낙 좋아져서 동접수 1만 명도 웹서버 한 대, DB서버 한 대로 충분히 감당이 됩니다 ㅎㅎ 32코어짜리 서버 써보셨나요? 64코어는 어떠세요?

  • profile profile
    으 32코어 돈이 ㄷㄷㄷㄷㄷ ㅎㅎㅎ 그런 서버를 운영하게 꿈입니다....
  • ?
    라운드 로빈이라고 해도 2가지 방식이 있는데요.. 흔한건 네임 서버에 같은 이름에 여러개의 IP를 등록해서 하는겁니다. 이렇게 하면 네임 서버에 IP를 물어볼때 분산이 되는데 이건 라운드 로빈이라고 해도 한명의 사용자 입장에서 본다면 항상 고정된 한대의 서버에 연결하는 것이기 때문에 기존 운영과 별 차이가 없습니다.
    말씀하시는건 로드 밸런서를 두고 로드 밸런서 설정을 라운드 로빈으로 하는 경우인데요...
    이 경우 문제가 되는건 세션입니다. 세션이 서버쪽에 저장이 되면 안되죠.. 이경우 해결 방법은 2가지인데 세션 정보를 모조리 쿠키에 때려박거나 (암호화해서 저장) 아니면 별도의 세션 서버를 마련하는겁니다. 아마 XE도 세션을 DB에 저장할 수 있는걸로 아는데 그걸 쓰면 라운드 로빈이 되지 않을까 싶습니다. 아니면 별도의 memcache 서버에 세션을 저장하는게 가장 좋겠지요.