본문 바로가기

지나간... 의미가.../IT 솔루션 이야기

[NetFUNNEL]1-2. 폭주 트래픽 제어 : 기존 서비스 방식에 대해

잠시, 대략의 서비스 시스템 구성에 대해 말씀드리고 내용을 이어가죠.

대부분 3가지 단계로 구성되어 있습니다. web 서버는 말 그대로 네트웍을 통해 들어온 사용자들이

모니터를 통해 바라보는 화면을 제공한다고 볼 수 있고, WAS 서버는 특정 버튼을 눌렀을 때 처리하는 액션,

응용 프로그램이라고 보시면 됩니다. DB서버는 서비스 구현을 위해 필요한 데이터가 보관되어 있는 장소이고요.

 



 

 

네트웍 대역폭이 너무 작거나, 웹 서버 용량이 너무 작아서 서비스 오류가 발생하는 경우도 많이 있습니다.

하지만 이는 시스템 증설을 통해 쉽게 개선될 수 있습니다. 정작 해결이 어려운 문제는 WAS DB 쪽 액션을 수행할 때

몰리는 트래픽을 처리하는 것 입니다.

 

WAS DB서버도 하드웨어 증설을 통해 시스템 처리량을 늘리는 것이 가장 근본적인 해결방법입니다.

그러나 시스템을 늘리고자 하면 데이터 이전, 동기화 관련해 증설이 복잡하고 각종 라이센스를 비롯해

비용도 많이 들 뿐만 아니라, 사용자가 몰리는 특정 이벤트 기간이 종료되는 시점에서부터 서버는 계속 놀게되어

효율적 운영이 어렵습니다.

 



 

수강신청의 경우는 요즘 주로 학년별로 나눠서 부하를 분산하고 있지만, 이는 업무를 늘려놓았을 뿐만 아니라,

공정한 기회를 박탈하는 결과가 아닐까요? 4학년이라도 교양과목 하나쯤 듣고싶은 게 있을텐데...

 

현재까지 가장 유행하던 방법이 바로 세션제어 방법입니다. 이는 웹 서버 앞단에서 서비스 사용 가능한 인원을 제한하고,

이를 초과하는 사용자들은 다시 접속을 유도하거나, 다른 페이지로 보내는 방식이죠. 사용자를 제한하는 방법으로 시스템을

보호할 수 있겠지만, 단순 웹 서버 앞단에서 서비스 하는 방안이기에 개별 버튼마다의 시스템을 효율적으로 사용할 수 없고,

서비스에 진입하지 못한 사용자들은 언제될 지 모르는 접속을 위해서 계속 버튼을 클릭할테고, 이런 재접속 시도가

실제 인원보다 더 많은 부하를 발생하게 됩니다.

 



 

사용자들이 보기에는 단순히 접속이 느리다, 페이지 로딩이 느리다정도로 볼 수 있습니다. 하지만 그 안에는 여러 복잡한

문제들이 서로 얽혀서 사용자들을 만족시키는 서비스를 제공하기가, 사용자들은 만족할만한 서비스를 제공받기가 힘든

상황입니다. 이러한 상황에서 어떤 기능을 구현하여 서비스를 좀 더 안정적으로 제공할 수 있는지,

앞으로 어떤 서비스를 받을 수 있는지에 대해 차근히 말씀드리도록 하겠습니다.