작년 12월 23일에 약 24시간 동안 스카이프 서비스에 장애가 발생했습니다.
블로그를 통해 공지를 드렸었고, 장애로 인해 많은 분들이 불편을 겪으셨을 것으로 알고 있습니다. 스카이프 로그아웃 장애에 대해 고객님들께 상세히 설명드리고, 이로 인해 차후에 동일한 문제 발생 시 대책도 공유드리고자 합니다.
스카이프가 peer-to-peer (P2P) 네트워크 기반의 서비스라는 것을 먼저 알려드린다면, 스카이프 서비스에 대한 이해가 좀 더 쉬워질 것 같습니다. 작년 말에 이 P2P 네트워크가 불안정하여 12월 23일(한국시간부터 약 24시간동안 심각한 로그인 장애로 이어졌습니다.
스카이프 장애 원인
12 월 23일에 스카이프에서 오프라인 인스턴트 메시징을 책임지고 있는 서버군에 과부하가 있었습니다. 과부하로 인해 일부 스카이프 프로그램에서 과부하가 걸린 서버로부터 오는 응답이 늦어지는 결과를 초래했습니다. 국내 이용자분들이 많이 이용하는 윈도우용 스카이프 버전(5.0.0152)는 응답이 늦어진 것을 제대로 처리하지 못하는 문제가 발생했고, 결국 장애로 연결되었습니다.
윈도우용 스카이프 중 5.0.0.156 최신 버전이나 윈도우용 4.0 버전, 맥용 스카이프, 아이폰용 스카이프, TV용 스카이프, 기업용 서비스인 스카이프 커넥트와 스카이프 메니저는 위에서 설명드린 문제에서 영향을 받지 않았습니다.
전 세계적으로 보면 전체 스카이프 이용자의 50% 정도가 이번에 문제가 된 윈도우용 스카이프 5.0.0.152 버전을 사용하고 있는데, 늦은 응답으로 인해 발생한 장애로 인해 해당 버전의 40% 정도가 제대로 동작하지 않았습니다.
스카이프의 기술적 기반은 P2P(Peer-to-Peer)로, 일부 이용자의 클라이언트 프로그램은 서버 역할까지 담당하고 있고, 이를 내부적으로는 '슈퍼노드(Supernode)'라 부릅니다. 문제가 된 스카이프 프로그램 중 25~30%가 슈퍼노드 역할까지 하고 있었기 때문에, 이 슈퍼노드를 이용하는 정상적인 단말에도 영향을 미치는 결과를 초래하게 되었습니다.
전체 중 약 20% 단말에서 장애가 발생했는데, 더 큰 장애로 연결된 원인은?
일부 스카이프 프로그램에서 문제 발생한 후 스카이프 직원들은 과부하가 걸린 서버 기능을 정지시키고 다른 프로그램이 장애 서버에 요청을 보내지 않도록 신속한 조치를 취했지만, 상당수의 슈퍼노드가 제대로 기능을 발휘하지 못했습니다. P2P 네트워크에서 슈퍼노드는 일반노드에 비해 부가적인 기능을 수행하며, 다른 스카이프 프로그램을 지원하며, 슈퍼노드에 연결되어 있는 수백개가 넘는 지역 클러스터를 생성하고 스카이프 프로그램간 호 연결을 담당하는 등 매우 중요한 자원 중의 하나입니다.
일부 슈퍼노드가 제 기능을 발휘하지 못하자, 슈퍼노드를 재시작했음에도 P2P 네트워크의 중요한 기능을 담당하는데까지 오랜 시간이 소요되었습니다. 이로 인해 정상적인 상황일 때와 비교해서 25~30%가 적은 슈퍼노드만 정상 기능을 수행했으며 정상적인 슈퍼노드에도 엄청난 과부하를 초래하게 된 것입니다.
정상적인 슈퍼노드는 왜 도움을 주지 못했는가?
P2P 네트워크 상에서 슈퍼노드의 25~30%가 제 기능을 발휘하지 못하면 정상적인 슈퍼노드에 과부하를 초래하게 됩니다. 이 부분에 대해서는 저희들도 예상을 하고 있었는데, 정상접속이 안되는 많은 이용자분들이 프로그램을 재시작하게 되는데, 이는 또 다시 P2P 네트워크에 엄청난 부하를 주게 되었습니다.
첫 장애가 발생한 시간이 스카이프 이용자가 가장 많이 이용하는 시간대의 한 시간 전인데, 접속이 정상적이지 않은 이용자들이 계속 접속을 시도하면서 정상 때보다 100배가 넘는 트래픽이 슈퍼노드에 몰리는 결과를 초래했습니다.
이 부분을 이해하기 위해서 슈퍼노드의 작동원리에 대해 잠시 설명드리겠습니다. 슈퍼노드는 처리할 수 있는 용량을 미리 정해 놓고, 용량을 초과하는 경우에는 자신을 보호하도록 설계되어 있습니다.
위에서 설명드린대로 너무나 갑자기 평소보다 100배나 많은 트래픽이 일부 슈퍼노드에 몰리면서, 슈퍼노드가 죽는 상황이 발생했고, 이 트래픽은 다른 슈퍼노드에 몰리게 되어 결과적으로 전체 스카이프 P2P 네트워크가 제대로 된 기능을 발휘하지 못하게 되었습니다.
엄청난 이벤트 발생, 이에 따른 서버 과부하, 윈도우용 스카이프(버전 5.0.0.152) 내의 버그, 정상적인 슈퍼노드 수의 감소 등의 문제가 복합적으로 얽히면서 약 24시간 동안 스카이프 서비스를 이용할 없는 초유의 사태가 발생한 것입니다.
스카이프는 슈퍼노드를 복구하기 위해 무엇을 했나요?
장애 상황을 극복하기 위해서 스카이프 엔지니어링 및 운영팀은 '메가 슈퍼노드(mega-supernodes)'라 명명한 지정된 슈퍼노드 역할을 하는 프로그램 수백 개를 도입했습니다. 메가슈퍼노드는 임시 슈퍼노드의 역할을 수행하며 스카이프의 P2P 네트워크를 정상 복구하는 역할을 수행했습니다.
미국시간으로 12월22일 밤에 전체 스카이프 이용자의 15~20% 정도가 복구되었는데, 일반 슈퍼노드의 부하는 정상 상황에 비해 여전히 높았습니다. 이에 스카이프팀은 밤을 세워 수천 개의 슈퍼노드를 추가적으로 설치하며 장애 복구에 최선을 다했으며, 12월23일 오전(미국 시간)에 대부분의 이용자가 스카이프의 P2P 네트워크에 정상적으로 접속할 수 있도록 하였습니다.
스카이프팀은 이용자들이 스카이프 네트워크에 접속하는 것뿐만 아니라 핵심 기능을 정상적으로 이용할 수 있도록 노력하였으며, 크리스마스에 맞춰 그룹영상통화 기능뿐만 아니라 다른 여타 기능을 정상화시키는데 성공했습니다.
긴급 투입한 메가 슈퍼노드를 통해 일부 슈퍼노드를 정상화시킨데 23일과 24일에는 이어 수만개의 슈퍼노드가 스카이프 P2P 네트워크에서 정상적인 기능을 되찾았습니다. 이에 스카이프팀은 긴급 투입했던 대다수의 메가슈퍼노드를 제거했는데, 크리스마스와 새해에 있을 트래픽 폭증을 대비해서 일부 슈퍼노드는 남겨둔 상태입니다.
장애 재발 방지를 위한 스카이프의 계획
스카이프는 전 세계 스카이프 이용자들에게 스카이프 프로그램의 안정성, 보안, 품질이 얼마나 중요한지 뼈저리게 느끼고 있으며, 앞으로 새로운 기능과 상품을 개발하고 최고 수준의 품질을 보장하기 위해 최선을 다할 것입니다.
스카이프팀은 장애가 발생하지 않도록 아래와 같은 조치를 취할 예정입니다.
첫째. 저희는 프로그램 내에서 이슈가 될 만한 사항을 점검해서 버그 수정본을 다운로드 또는 자동업데이트 방식으로 계속 제공할 것입니다. 이번에 문제가 된 윈도우 5.0.0.152버전의 버그는 사전에 파악해서 장애 발생 전에 이미 버그 수정본을 제공했는데, 조만간 좀 더 개선된 버전을 추가 제공할 예정입니다.
또한 버그 수정본을 배포하는 '자동업데이트' 배포 방식에 대해서도 리뷰를 하고 있으며, 스카이프 이용자들이 가장 최신의 버전을 유지할 수 있도록 최선을 다할 예정입니다.
둘째. 이번 장애를 통해 문제의 소지가 있는 부분을 최대한 빨리 파악하고 조치할 수 있는 프로세스를 재정립할 예정입니다. 이를 통해 사전에 장애를 방지하고, 장애가 발생한 후에 보다 신속하게 복구할 수 있도록 하겠습니다.
셋째. 스카이프팀에서는 윈도우 5.X 버전을 릴리즈하기 전에 광범위한 내부 테스트와 수십만명의 일반 이용자를 대상으로 한 몇 달 간의 베타 테스트를 수행하고 있습니다. 앞으로 전체 시스템에 영향을 미칠 수 있는 버그를 발견하고 피할 수 있는 보다 나은 방법을 결정하기 위한 테스트 프로세스에 대해서도 검토할 예정입니다.
마지막으로. 현재 스카이프 서비스는 하루가 다르게 성장하고 있습니다. 앞으로 증가할 스카이프 이용자를 수용할 수 있는 스카이프 코어 시스템의 용량 및 안정성을 확보하기 위한 방안에 대해 지속적으로 검토할 예정입니다.
당사에서는 1년 전부터 시스템에 대한 투자를 확대해 왔는데 2011년에는 유료 및 기업상품에 가입하는 이용자 증가에 대비한 시스템 투자에도 만전을 기할 예정입니다. 물론 여러분이 늘 이용하고 있는 윈도우/맥/리눅스 및 아이폰/안드로이드/심비안 등 스카이프의 핵심 자산인 이용자 프로그램 개선에도 최선을 다하겠습니다.
스카이프를 통해 가족/친구들과 늘 소통하고 기업 커뮤니케이션에 이용하시는 이용자분들께 이번과 같은 장애가 발생해서 너무나 죄송합니다. 이번 장애를 통해 스카이프 내부적으로 수 많은 교훈을 얻었으며, 향후 보다 안정적인 서비스를 제공할 수 있는 기회도 얻었습니다.
이번 장애를 교훈삼아 전 세계 스카이프 이용자분에게 유용하고 안정적인 서비스를 제공할 수 있도록 최선을 다하겠습니다. 감사합니다.