웹서버구성에 대한 질문드립니다.

ToTb Story/ToTb 네이버지식 Story 2013. 1. 24.
웹서버구성에 대한 질문드립니다.

[질문]

 

가정)

A 라는 웹서비스가 있다고 합시다. (ex 네이버 등등)

이 웹서비스에는 하위의 서비스가 3개 존재합니다.

 

그런데 이 세개의 서비스(하위)의 트래픽이 굉장히 많이 일어납니다.

즉 사용자가 많이 몰린다는 거죠.

----------------------------------------------------------

 

이럴때 실무에서는 하나의 웹서버로 이 세개의 웹서비스를 전부다 관리하나요?

서버로 사용하고 있는 시스템의 램이나 용량만 늘려주면 되나요?

 

아니면 각각의 서비스마다 다른 서버를 사용하나요?

아파치 톰캣을 3개 깔아서 각기 다른 서비스를 구동토록해서 연동되도록..

여기서 연동이란.. 한아이디로 로그인을하면 로그인 정보가 유지됨을 말합니다.

 

-----------------------------------------------------------

 

그리고 웹호스팅을 받을때 위의 경우 어떻게 하는게 좋나요?

질문이 이상하더라도.. 너그러이 이해해주시길 바라며 답변 기다리겠습니다. ^^

 

  

[답변]

 

안녕하세요.  IT전문  컨설턴트입니다

 

웹서비스의 규모에 따라서 네트워크 및 호스팅 환경의 구성은 달라지게 됩니다.

정확한 답을 위해서는 실제 서비스의 트레픽에 대한 측정 및 분석이 선행되어야 하겠지만, 현재 공개하신 내용을 토대로 생각해 본다면 1개의 호스팅을 신청하고, 그 호스팅을 통해서 3개의 하위 서비스가 진행되는 것으로 보여집니다.

 

트레픽이 몰렸을때 나타나는 증상과 원인을 우선적으로 분석해 봐야 할듯합니다.

일반적으로 이 경우 서버 증설로 해결하시려는 분들이 많지만, 서버운영비용은 지속적으로 투입되어야 하는 비용이기 때문에 충분한 검토가 필수적입니다.

 

일단, 가장 손쉬운 방법으로

1. 호스팅을 서버호스팅으로 전환

: 현재 1대의 서버에 분할기법을 사용하는 일반적인 호스팅을 사용중이시라면, 단독서버를 운영해 보실것을 추천드립니다.

2. 프로그램 소스 분석을 통하여 소스코드 및 알고리즘 최적화

: 거의 많은 위험이 소스코드의 비최적화로 인해서 나타납니다. 이런 점에서 소스코드에 대한 개선은 필수적입니다.

3. DB부하도 테스트 및 마이닝작업

: DB연결이 많거나, 과도한 Join 및 정규화의 정책실패로 인하여 DB에 무리한 작업을 요청하는 경우에도 위와 같은 현상이 나타날수 있습니다. 이때는 DB구조를 최적화 하는 마이닝을 추천드립니다.

4. Sub Domain을 통한 WebServer분리

: 각 서비스 별로 SubDomain을 운영하는 방법이 가능합니다. blog.naver.com / cafe,naver,com / kin.naver.com처럼 앞부분에 blog/cafe/kin 등의 서비스별 서브도메인을 운영한다면, 추후 각 서비스별로 호스팅 및 서버를 분리시킬수가 있습니다. 하지만, SSO(Single sign on)는 어려워지기 때문에 고민을 해보셔야 할듯합니다.

5. 서버증설

: 자금의 여유가 있으시다면 서버증설을 통해서 손쉽게 해결하실수가 있습니다. 근본적인 해결은 될수가 없고, 비용이 비효율적으로 투입되기 때문에 타 방법을 우선적으로 검토해 보실것을 추천드립니다.

6. 로드벨런싱 등의 분산네트워크 구성

: 여러대의 서버를 L4급 이상의 스위치를 사용하여 사용이 적은 서버로 트레픽을 분산시키는 기술입니다. 비용적인 부분에서 많은 비용이 투입되지만, 서버의 확장이 용의하고, 신속한 서버문제에 대한 대응이 가능하다는 점에서 많은 기업들이 사용하는 방법입니다. 대형 포털에서도 이 기술을 사용하고 있습니다.

7. 이미지 서버 분리

위의 Sub Domain의 방법을 응용하여 등록된 이미지를 img.naver.com 등 처럼 별도의 SubDomain을 사용하여 운영한다면 이미지 서버를 분리시킬수 있습니다. 이미지 데이터가 많은 사이트의 경우 이로인한 속도저하 현상이 종종 나타납니다. 알고리즘 최적화 기법과 병행하거나 이미지를 사이즈에 맞게 리사이징 해서 사용한다면 도움이 될것입니다.

 

등의 방법중 일부를 도입할 것을 추천드립니다.

 

톰캣이나 IIS를 3개 설치하는것이 아니라 Webserver상에서 사이트를 등록하여 관리할수 있습니다.

문제는 로그인을 했을때, 로그인 정보를 유지하기 위해서 SSO라는 기법이 프로그램적으로 사용하거나,

Webserver상의 특정 셋팅값을 SSO를 지원하기 위해서 구성해야 한다는 점입니다.

연동 부분은 개발소스 및 개발환경을 분석해야 정확한 답을 찾을수 있습니다.

 

일반웹호스팅이 300~500여개의 웹사이트를 1~2대의 서버에 탑재하는 서비스라는것을 생각해 본다면, 현재 서비스의 종류 및 유저들의 패턴분석을 통해서 결과를 도출해 보실것을 추천드립니다. 서버상에 접속자를 유지하는 기술인 Session은 서버1대당 숫자가 제한이 될수 밖에 없습니다. 아무리 고사양 서버라 하더라도 Session문제로 인하여 접속자를 수용할수 없다면, Session값을 받기위해서 서버의 요청을 대기해야 하는 상황이 됩니다. 이런 문제라면 단순한 서버 증설이 아닌 로드벨런싱 및 네트워크 최적화에 대한 심도깊은 기술분석이 필요합니다.

 

추가적인 속도저하현상 및 최적화 관련된 부분은

http://totb.tistory.com/669

링크를 참조하시면 도움이 될것으로 생각이 됩니다.


웹서버구성에 대한 질문드립니다. - IT감리, IT컨설팅, 웹컨설팅, 웹에이전시, 웹솔루션개발, ERP, SCM, CRM, ToTb, 홈페이지제작, 웹사이트 제작, 온라인 마케팅, 시스템구축, 유지보수, 운영대행 등
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기