"야, 이거 예약 144시간 기다리라는데?"
출근 준비로 바쁜 내게 엄마가 스마트폰을 들고 다가왔다. 엄마는 백신 예약을 하려고 홈페이지에 들어갔다가 어이없다는 듯이 말씀하셨다. 당연히 접속자가 몰릴 거라고 생각했다. 하지만 몇 만 명의 대기자와 100시간 넘게 기다리라는 안내는 터무니없지 않나.
왜 먹통이 되었을까?
사전예약 홈페이지가 속수무책으로 먹통이 된 데에는 여러 이유가 있다. 일단 시스템 자체가 불안정했다. 원래 시스템 구축에 10개월이 필요한 일정을 4개월 만에 진행해야 했다고. 백신 종류와 대상자 정보가 계속해서 바뀌는 실제 상황을 반영해 미리 테스트할 시간은 당연히 없었을 터. 사전예약 홈페이지를 구축한 업체는 사실상 다운을 이미 예감하고 있었던 듯하다.
하지만 홈페이지가 먹통이 된 가장 큰 이유는 따로 있다. 바로 사전예약 홈페이지의 서버는 클라우드 서버가 아니었다는 점이다. 그래서 정부도 다음 사전예약이 열리기 전에 클라우드 기술을 도입하기로 결정했다고. 그렇다면 클라우드 서버가 아니었다는 말은 어떤 의미일까?
먼저 서버에 대해 알아야 한다.
인터넷에서 어떤 홈페이지에 접속한다는 것은 어딘가에 있는 '또 다른 컴퓨터'에 접속한다는 뜻이다. 인터넷 창에 www.로 시작하는 주소를 입력하고 엔터를 누르면, 직접 느낄 수는 없지만 우리는 인터넷을 통해 특정 컴퓨터에 접속하게 된다. 이 컴퓨터를 '서버'라고 한다. 서버 컴퓨터에는 접속하려는 그 홈페이지에 대한 정보가 저장되어 있기 때문에 우리는 홈페이지 화면을 볼 수 있다.
우리가 사전예약 홈페이지에 접속한다는 것은 사전예약 홈페이지에 대한 정보가 저장되어 있는 서버 컴퓨터에 접속한다는 뜻이다. 그런데 같은 시간에 너무 많은 사람들이 접속하려고 하면 서버는 어떻게 될까? 당연히 과부하가 걸린다. 여기 저기에서 '저 지금 접속하고 싶어요!'라는 요청이 쏟아지는 것과 같다.
사전예약 홈페이지 서버에 접속 요청이 쏟아진다. 방법은?
서버는 기본적으로 요청을 순서대로 하나씩 처리한다. 쏟아지는 수많은 요청을 더 빠르게 처리하려면 무엇이 필요할까? 1) 서버 성능이 엄청나게 좋아서 처리하는 속도가 애초에 무지 빠르거나 2) 요청을 처리해줄 서버를 더 늘리면 된다. 사전예약 홈페이지 서버는 2000년대 초반에 구축된 서버를 활용했다고 한다. 그러니까 1)번은 시작부터 틀렸다.
2)번 방법은 식당 종업원에 비유하면 이해하기 쉽다. 식당 종업원 1명이 모든 주문을 다 처리하는 것보다 종업원 여러 명이 나누어서 주문을 처리하는 것이 훨씬 더 빠른 것과 비슷하다. 정부는 부랴부랴 2)번 방법을 선택했다. 하지만 서버 용량을 당장 늘리기가 어려웠다. 왜 어려웠을까?
서버를 빠르게 늘리기 어려웠다. 클라우드 서버가 아니어서.
클라우드 서버는 일반 서버와 다르다. 클라우드 서버는 '일반 서버에 가상화 기술을 적용한 것'이다. 서버가 가상화되었다는 말은 물리적인 제약이 줄어들어 서버를 더욱 자유롭게 활용할 수 있다는 뜻이다. 클라우드 서버의 가장 큰 특징 또한 필요할 때 바로바로 서버 용량을 늘리고 줄이기 쉽다는 점이다.
하지만 사전예약 홈페이지 서버는 클라우드 서버가 아니었고 따라서 곧바로 서버 용량을 늘릴 수 없었다. 주문은 계속해서 쏟아지는데 종업원 혼자서 모든 주문을 처리하니 당연히 느릴 수밖에 없었던 것이다.
이제라도 정부는 클라우드 기술을 적용하기로 했다.
이번 사전예약 대상자는 55세~59세였다. 그리고 1,000만 건이 동시 접속했다. 오는 8월 중순 사전예약 대상자는 18세~49세로 최대 2,000만 명에 이른다. 이에 정부는 지난 7월 22일과 23일 민관 전문가 회의를 열고 서버 확장이 용이한 클라우드 기술을 적용하기로 했다. 네이버, LG CNS, 글로벌베스핀 등 민간 클라우드 기술 업체가 참여하기로 했다.
8월 중순까지 얼마 남지 않은 상황에서 클라우드 기술 적용은 괜찮은 걸까? 한 업계 관계자는 "개발에 2주, 테스트 작업까지 포함해 3주 정도면 충분할 것 같다"고 말했다. 다행히 사전예약 홈페이지는 구조나 기능이 단순한 편이기 때문이라고.
사전예약 홈페이지에 클라우드 기술이 어떻게 적용될까?
일단 정확한 내용은 클라우드 기술자가 아니므로 알 수 없다. 하지만 사전예약처럼 한꺼번에 접속자가 엄청나게 몰릴 거라고 예상될 때 적용하는 기술이 몇 가지 있다.
1. 오토 스케일링
오토 스케일링은 서버를 알아서 늘리고 줄이는 클라우드의 핵심 기술 중 하나다. 사용자는 미리 규칙을 만들어 둔다. 예를 들어 '서버가 70% 이상 사용되는 시간이 5분을 넘으면 서버를 3대 늘린다'라는 규칙을 만들어 두면 그대로 적용된다. 서버를 줄이는 것도 마찬가지이다. 덕분에 사용자가 서버가 얼마나 사용되는지 실시간으로 지키고 있지 않아도 된다.
2. 로드 밸런싱
로드 밸런싱은 서버에 들어오는 요청을 여러 서버에 적절히 나누어주는 기술이다. 오토 스케일링으로 서버를 여러 대 만들었다고 해도 요청이 하나의 서버에만 몰리면 아무 소용이 없다. 사전예약처럼 수천-수백만 명의 접속자를 감당하려면 필수적이다.
3. 매크로와 다중접속, 백도어 등 부정 행위를 막기 위한 기술적 조치
사전예약처럼 접속자가 몰리는 경우에 매크로 프로그램을 방지하는 것도 필요하다. 매크로는 특정 작업(가령 사전예약 신청 버튼 누르기 등)을 컴퓨터 프로그램을 사용해서 빠르게 반복 실행하는 것이다. 이때 접속자 대기열에 다중 접속을 막는 조치가 되어 있지 않다면 동일한 사람이 대기열에 여러 명 등록될 수 있다. 다른 사람들이 불필요하게 뒤로 밀려 오래 대기해야 할 수 있다.
백도어 채널이 유출되지 않도록 관리하는 것도 중요하다. 백도어는 뒷문이라는 뜻으로 원래는 개발자나 관리자만 접속할 수 있는 비밀(?) 접속 경로이다. 주로 시스템에 오류가 났을 때 급하게 수정하기 위한 목적으로 만들어진다. 그런데 이 주소가 유출되면 정상적인 방법으로 기다렸다가 사전예약을 하는 사람들이 피해를 보게 된다. 유출을 막거나 제한된 IP만 백도어 주소로 접근할 수 있게 하는 등 조치가 필요하다.
몇 백만 명의 요청, 쉬운 일은 아니지만 풀어야 한다.
아무리 클라우드 서버를 도입한다고 해도 동시에 몇 백만 명을 처리하는 건 어려운 일이다. 어쩔 수 없이 수분~한 시간의 접속 지연이 생길 수밖에 없다. 그러나 정부나 공공기관에서 운영하는 시스템의 경우 특히나 안정성이 중요하다. 국민 누구나 동등한 기회를 가질 수 있어야 하기 때문이다.
이번처럼 기술적 조치가 미흡하여 생기는 문제의 경우, 공공기관 내부의 IT 전문성을 보다 강화해야 하지 않을까 하는 생각이 들었다. 물론 공공기관이라는 특성상 보안 이슈에 민감하여 외부 전문 인력을 고용하거나 외부 시스템을 도입하는 일이 조심스러울 수 있다. 보안도 지키면서 전문성을 높이는 일은 쉽지 않겠다. 하지만 이미 비대면 시대가 도래했기 때문에 이 어려운 숙제를 피할 수는 없을 것이다.
'IT와 글쓰기' 카테고리의 다른 글
엄지를 못쓰는 사람은 스마트폰을 어떻게 사용할까 (0) | 2024.04.26 |
---|---|
이용 규칙 쉽게 쓰기 - 범계 커피랑도서관 (0) | 2022.07.10 |