갓 출시한 게임에 접속할 때나 티켓팅을 할 때나 수강신청을 할 때 등 순간적으로 이용자들이 많이 몰리는 상황에서 게임이나 사이트에 접속이 불가능할 때가 종종 있습니다. 이때 사람들은 ‘서버가 터졌다’고 이야기하는데, 왜 이런 일이 발생하는 걸까요? 서버가 터지지 않게 미리 대비하는 것은 불가능한 걸까요?
의문을 해결하기 위해서는 컴퓨터의 내부 부품인 하드웨어에 관해서 이해해야 합니다. 컴퓨터는 CPU와 보조기억장치(하드디스크·SSD 등), 메모리(램) 등의 하드웨어를 가지고 있습니다. 구체적으로 어떤 기능을 하는지는 잘 몰라도 이름은 들어봤을 겁니다.
기능을 간략히 살펴보면 CPU는 인간의 뇌에 해당합니다. 프로그램을 사용하기 위해서는 CPU가 일해야 하는데, CPU는 데이터 처리를 하고, 저장은 보조기억장치가 합니다.
보조기억장치에는 파일과 데이터가 저장되어 있습니다. 사용자가 특정 프로그램을 실행시키면 CPU는 데이터를 처리하기 위해 보조기억장치에서 필요한 데이터를 요청합니다. 보조기억장치는 필요한 데이터를 찾아서 CPU에 전달하는데, 이 속도가 CPU의 데이터 처리 속도와 비교했을 때 상대적으로 느린 편입니다.
CPU는 보조기억장치가 데이터를 찾아서 줄 때까지 기다려야 합니다. 그러면 CPU의 능력이 아무리 뛰어나도 보조기억장치의 처리 속도에 맞춰야 하므로 속도는 하향 평준화가 됩니다.
이 문제를 해결하기 위한 하드웨어가 메모리(램)입니다. 메모리는 CPU의 작업 공간이라고 이해하면 되고, CPU가 보조기억장치에 데이터를 요청하면 보조기억장치는 필요한 데이터 뭉치를 메모리에 전달합니다. CPU는 보조기억장치와 함께 작업할 필요 없이 메모리 위에서 작업하면 되므로 데이터 처리 속도를 빠르게 할 수 있습니다.
프로그램을 실행시켰을 때 어떤 과정에 따라 작업이 처리되는지 간략히 이해했을 텐데, 여러 개의 프로그램을 동시에 실행시키거나 컴퓨터의 한계를 넘어서는 요청을 하게 되면 CPU와 메모리가 감당할 수 없는 순간이 발생합니다. 이때 컴퓨터는 멈춰버리거나 ‘응답 없음’이라는 메시지를 띄우면서 다운됩니다. 이 상황은 우리가 이야기하고자 하는 주제의 상황과도 같습니다.
서버는 우리가 사용하는 컴퓨터와 같습니다. 차이점이 있다면 데이터 처리를 분산하기 위해 컴퓨터 여러 대가 모여있다는 겁니다. 이용자(클라이언트 컴퓨터)가 필요한 데이터를 요청하면 서버 컴퓨터는 작업을 수행합니다. 하지만 처리 능력이 무한대인 것은 아닙니다.
순간적으로 많은 데이터를 처리하려고 하면 서버 컴퓨터도 감당할 수 없는 상황에 직면하고, 컴퓨터가 멈춰버리는 것처럼 서버 컴퓨터도 다운됩니다. 많은 사람이 이때를 ‘서버가 터졌다’고 표현합니다. 그렇다면 문제 해결을 위해서 서버 컴퓨터를 확충하면 될 텐데, 왜 안 하는 걸까요?
이용자 입장에서는 매우 불편한 상황이나 공급자 입장에서는 순간적인 수요일 뿐이고, 이 순간만 지나면 수요가 줄어들 것이 확실하므로 장기적인 차원에서 비용 부담이 됩니다. 이외에도 다양한 이유가 있는데, 경우에 따라 수요 예측에 실패하고, 수요 예측을 잘 했어도 서버 구성에 실패하기도 합니다.
따라서 감당할 수 있으면서 합리적인 수준에서 서버 컴퓨터를 운용하는 합리적인 선택을 내린 겁니다. 이와 관련해 세계 최대 전자 상거래 기업인 ‘아마존(Amazon)’에서 제공하는 아마존 웹 서비스(AWS)라는 클라우드 서비스가 존재합니다. (*클라우드 서비스 : 여러 가지 소프트웨어나 자료를 서비스 사업자의 서버에 두고 어떤 장치로도 활용할 수 있게 한 서비스)
어마어마한 서버 컴퓨터를 운용 중이고, 서버의 공간을 사람들에게 돈을 받고 빌려주어 수익을 얻습니다. 이렇게하면 이용자는 필요할 때 서버 컴퓨터를 구매하고, 별다른 관리 없이 이용할 수 있어서 편리합니다. 서버가 어떤 개념이고, 왜 서버가 터지는지 충분히 이해했을 겁니다. 궁금증이 해결되셨나요?
* 원고 투고 : ‘비전공자를 위한 이해할 수 있는 IT지식’의 저자 최원영
Copyright. 사물궁이 잡학지식. All rights reserved