학문
쌈박한오릭스46
사람들이 많이 사용하는 웹사이트는 동시에 수많은 접속자가 들어와도 서비스를 유지하는데, 여러 대의 서버가 이용자의 요청을 나누어 처리하기 때문일까요?
사람들이 많이 사용하는 웹사이트는 동시에 수많은 접속자가 들어와도 서비스를 유지하는데, 여러 대의 서버가 이용자의 요청을 나누어 처리하기 때문일까요?
5개의 답변이 있어요!
안녕하세요. 최정훈 전문가입니다.
수 많은 사용자가 동시에 접속을 해도 웹사이트가 다운되지 않는 이유는 로드 밸런서를 통해서 트래픽의 여러 대의 서버로 분산 처리하기 때문입니다. 단일 서버의 처리 능력에는 물리적인 한계가 있습니다. 그러니 사용자의 요청이 들어오면 입구에 위치한 로드밸런스가 각 서버의 상태와 부하 정도를 판단해서 균등하게 나누어 주죠. 그래서 특정 서브에 병목 현상이 발생하는 걸 막아줍니다.
그리고 좀 더 더불어서 최근 대규모 웹사이트는 수평장의 확장 구조와 캐싱 시스템 기술을 함께 적용합니다. 그래서 접속자수의 증가에 따라서 자동으로 서버 대수를 늘리는 포토스케일링을 실행하죠. 그래서 수만 명 이상의 동시 접속을 안정적으로 처리하는 겁니다.
채택 보상으로 480베리 받았어요.
채택된 답변안녕하세요. 박형진 전문가입니다.
여러 대의 서버가 사실상 동시에 많은 이용자의 요청을 처리할 수 있기 때문에 과부하가 걸리지 않고 로드 밸런싱을 유지합니다. 골고루 나눠 분산함으로써 트래픽이 한 곳으로 몰리는 것을 방지합니다.
참고 부탁드려요~
안녕하세요. 설재훈 전문가입니다. 사람들이 많이 사용하는 웹사이트가 동시에 수많은 접속을 처리할 수 있는 가장 기본적인 이유 중 하나가 여러 대의 서버를 이용하기 때문입니다.
하지만 단순히 서버 여러 대를 연결해 놓는 것만으로는 부족합니다. 사용자가 접속하면 앞단에서 들어오는 요청을 여러 서버에 적절히 나눠줍니다. 한 서버에 요청이 몰리는 것을 막고 서버마다 작업량을 분산시키는 방식입니다.
예를 들어 10만 명이 동시에 접속한다고 하면 한 대의 서버가 10만 명을 모두 처리하는 것이 아니라 여러 대의 서버가 각각 일정량의 요청을 나눠 처리합니다. 여기에 서버를 더 추가해서 처리 능력을 높이는 수평 확장도 가능합니다.
안녕하세요. 김재훈 전문가입니다.
수많은 접속자를 안정적으로 감당하는 핵심 비결은 로드 밸런서라는 장치가 입구에서 여러 대의 서버로 트래픽을 효율적으로 분산해 주기 때문입니다 서버 한 대만으로는 처리 한계에 다다라 다운될 수 있지만 여러 대를 평행하게 늘려 요청을 나누면 부하가 분산되어 끊김 없는 서비스가 가능해집니다 여기에 클라우드 환경의 오토 스케일링기술까지 더해져 접속량이 급증하면 자동으로 서버 대수를 늘리고 줄어들면 다시 축소하는 방식으로 유연하게 대응합니다. 추가로 자주 요청되는 데이터를 저장해 두는 캐싱이나 글로벌 단위 분산망인 CDN 등을 함께 활용해 서버 단독 부담을 크게 줄여주는 고도의 분산 구조를 갖추고 있습니다
안녕하세요. 이수민 전문가입니다.
맞아요, 요청을 여러 서버가 나눠 처리하는 게 기본이에요. 그 앞단에서 일을 배분하는 장치를 로드밸런서라고 불러요. 사용자가 주소를 입력하면 로드밸런서가 먼저 받아서, 지금 가장 여유 있는 서버로 요청을 넘겨줘요. 서버 한 대가 고장 나면 그 서버로는 요청을 안 보내니 사용자는 장애를 눈치채지 못해요. 접속자가 늘면 서버를 추가로 띄우고 줄면 없애는 것도 자동으로 되는데, 클라우드가 이걸 쉽게 만들어줘서 트래픽에 맞춰 서버 수가 실시간으로 변해요.
그런데 서버 분산만으로는 부족해요. 몇 가지 장치가 함께 작동해요. 하나는 캐시예요. 같은 내용을 매번 새로 만들지 않고 완성된 결과를 저장해두고 그대로 내보내요. 이미지나 영상처럼 무거운 파일은 CDN이라는 방식으로 전 세계 곳곳의 서버에 미리 복사해두고 사용자와 가장 가까운 곳에서 전달해요. 서울 사용자가 미국 본사 서버까지 다녀오지 않아도 되는 거예요. 다른 하나는 데이터베이스 분산이에요. 서버를 늘려도 데이터베이스가 하나면 거기서 막히니, 읽기용 복제본을 여러 개 두거나 데이터를 조건별로 쪼개 여러 대에 나눠 담아요.
그래도 한계를 넘는 순간은 있어요. 콘서트 티켓 예매처럼 정해진 시각에 수십만 명이 동시에 몰리는 경우인데, 이때는 대기열을 만들어 순서대로 입장시키는 방식을 써요. 다 받아서 전부 느려지는 것보다 일부를 기다리게 하고 나머지가 정상 작동하는 게 낫기 때문이에요. 티켓 사이트에서 순번 대기 화면을 보게 되는 게 이 설계의 결과예요 :)