소프트웨어(SW) 업계에선 이번 문제 해결에 클라우드 업체들의 기술력뿐만 아니라 대규모 시스템을 설계·운영하며 얻은 노하우와 아이디어가 큰 역할을 했다는 평가가 나온다.
11일 SW 업계에 따르면 지난 9일부터 만 18~49세 국민(약 1621만명)을 대상으로 예방접종 예약을 시작했음에도 백신예약 시스템이 별다른 장애 없이 정상 운영되고 있다.
백신예약 시스템은 55~59세 예약을 받은 지난달 12일과 14일에 접속 지연 문제가 생기며 이상을 알렸다. 53~54세 예약을 받은 19일에도 홈페이지가 멈췄다. 50~52세를 대상으로 예약을 받은 지난 20일 오후 8시에도 어김없이 예약 홈페이지는 마비됐다. 이에 SW 업계에선 41억800만원의 예산으로 급조한 공공 IT 서비스가 한계를 드러냈다는 평가가 나왔다.
결국 지난달 22일 질병청과 과기정통부는 지난해 온라인 개학 당시 EBS '온라인클래스'와 한국교육학술정보원 'e학습터'를 빠르게 개선한 경험이 있는 LG CNS, 네이버클라우드, 베스핀글로벌 등에 도움을 요청했다. 다시 모인 IT 업체들은 TF를 구성해 한국인터넷진흥원과 한국지능정보사회진흥원 등 유관기관과 머리를 맞대며 시스템 개선 부분을 찾고, 관련 작업에 들어갔다.
업계에 따르면 TF는 홈페이지의 IT 시스템·구조(백엔드)와 사용자 환경(프론트 엔드) 모두 문제가 있다는 결론을 내렸다.
당시 백신예약 시스템은 서버 용량이 매우 부족한 상태였다. 네이버클라우드에 요청해 서버를 4대에서 10대로 증설했다.
하지만 백신 예약 정보를 서버에 기록하는 최종 단계 바로 전에 본인 인증 과정이 배치된 것이 문제였다. 수많은 이용자가 몰리는 데 본인 인증이라는 문은 좁았다. 결국 본인 인증 시스템이 과부하로 인해 오류를 일으켰다.
이용자가 오랜 시간을 기다려 자기 차례에 정보를 입력하고 본인 인증을 해도 오류로 인해 튕겨나고 다시 처음부터 기다려야만 했다. 문(본인 인증) 뒤에 넓은 운동장(클라우드 서버)이 펼쳐져 있는데 문이 좁아서 사람들이 발만 동동 구르는 상황이었다. 대형 시스템을 구축·운영한 적 없는 곳에서 흔히 하는 실수다.
TF는 본인 인증을 사용자 환경의 가장 앞으로 꺼내고 이를 이용자를 분산하는 관문(게이트웨이)으로 활용하자는 아이디어를 냈다. 온라인 개학 당시 지역별로 학생들을 분산한 것에서 착안한 묘수다.
이를 위해 본인 인증에 공동인증서 인증과 KCB가 제공하는 휴대폰·아이핀 인증뿐만 아니라 네이버·카카오 인증서를 추가했다. 입구를 여러 개 만들어 사람들이 막힘없이 들어올 수 있게 하고, 입구 상황을 신호등 방식으로 투명하게 공개해 사람들이 여유 있는 곳을 선택할 수 있도록 했다. 설령 본인 인증 시스템에서 오류가 나도 어차피 신청 과정의 처음이니 다시 인증을 받으면 그만이다.
시스템의 캐퍼시티가 넉넉해도 이용자가 몰리면 시스템이 느려지고 과부하가 걸리는 것을 피할 수 없다. 특히 백신예약 시스템은 이용자의 웹 브라우저와 IP로 접속 순서를 매기는 바람에 한 사람이 여러 기기와 웹 브라우저로 시스템에 접근함으로써 실제 접속자에 비해 과도하게 트래픽이 발생하는 문제가 있었다. 때문에 당시 최대 30만명을 수용할 수 있었던 백신예약 시스템은 4시간 이상 접속 장애를 겪어야만 했다.
TF는 이 문제도 본인 인증이 가장 앞으로 나옴으로써 해결할 수 있을 것으로 봤다. 한 번 본인 인증을 받은 이용자가 여러 개의 기기와 웹 브라우저로 접근을 시도하면 1시간 동안 접근을 차단함으로써 클라우드 서버에 부하가 걸리는 것을 막았다.
또한 TF는 정부에 주민번호에 따른 10부제 도입을 건의했다. 10부제를 도입하면 아무리 사람이 몰려도 하루에 최대 190만명(뒷자리 1번 기준)만 접속할 것으로 예측됐다.
이에 따라 개선된 백신예약 시스템은 최대 200만명의 동시 접속을 감당할 수 있으면 된다는 결론이 나왔다.
TF는 업체별로 업무를 분담하고 본격적으로 시스템 개선에 착수했다
백신예약 시스템은 본인 인증을 거쳐 백신예약을 접수한 뒤 접종 가능한 병원을 찾아 배정하는 과정을 처리하는 기능을 갖췄다. 실제 코로나19 백신 물량을 보유하고 있는 병원을 찾고 자격을 갖춘 접종 대상자의 정보를 연계하는 작업을 처리하기 위해 약 20년 전 구축된 질병청 '예방접종등록관리 정보시스템'과 연동이 요구됐다.
이에 LG CNS는 시스템 최적화 전문가들로 구성된 아키텍처최적화팀을 파견해 시스템 과부하 발생 원인을 찾았다. 이어 '백신예약 10부제'와 '의료기관별 예약가능 물량 균등분배' 기능 구현에 참여했다.
KT는 백신예약 시스템에서 장애가 발생하지 않도록 최대 가용량을 기반으로 동시 트랜잭션(데이터 연산집합) 수치를 제어할 수 있는 고도의 네트워크 기술을 지원했다.
네이버클라우드는 자사 CDN+를 제공해 대규모 트래픽에도 백신예약 시스템이 안정적으로 운영되도록 했다. 트래픽을 효율적으로 분산할 수 있도록 WEB·WAS 서버와 비용 절감을 위한 오토 스케일링 기능도 추가했다. 이용자의 대기순번을 정해주는 대량접속제어 솔루션 '넷퍼넬'도 타사 시스템에서 네이버클라우드로 이전했다.
베스핀글로벌은 TF에서 나온 아이디어가 실제로 구현될 수 있도록 시스템 전반을 클라우드 친화적으로 재구축했다.
SW 업계에 따르면 이러한 업체들의 노력으로 백신예약 시스템은 불과 10일 만에 새롭게 재구성됐다. 새로 구축된 백신예약 시스템은 예약 첫날 170만명이 접속해도 접속장애 없이 원활하게 국민들의 사전예약을 처리했다.
SW 업계 관계자는 "이번 백신예약 시스템 재구축은 국가 위기 상황에서 정부와 IT기업이 위기 극복을 위해 협력한 우수 사례라고 할 수 있다. 공공 서비스에 대형 IT 기업이 참여하는 것을 무작정 배척하지 않고 이들과 협력함으로써 더 나은 결과를 보여줄 수 있다는 것을 입증했다"고 평가했다.