어제(10/22) 오후 4시경 원인을 알 수 없는 서비스 장애 첫경험을 한 이후에 이런 저런 이야기를 썼었습니다.
여러가지 서비스 장애에 원인에 대한 가설을 세우고 분석 중인 상황입니다만 간단하게 결론이 도출될 것 같지 않습니다. 기술적인 장애도 문제였지만 20여분 간의 장애 발생 시간 동안 거래가 있었던 사용자들의 포인트가 꼬여서 수작업으로 필터링 하는 작업도 만만치 않았습니다.
일단 큰 틀에서 장애 후속 조치를 끝내고 시스템도 정상적으로 동작하는 것을 확인하고 직원들은 대부분 퇴근했습니다
그런데, 오후 8시경 완전히 다른 형태의 서비스 장애가 또 발생했습니다.
기존에는 DB 서버의 CPU 부하가 급격하게 증가하면서 DB connection이 꽉차는 문제가 20여분 동안 지속되었다면 저녁에 발생한 장애는 CPU 부하의 특이사항 없이 DB connection만 full이 되었다가 일시에 release되는 널뛰기를 반복하는 현상이었습니다. 가맹점이나 사용자 입장에서는 서비스 장애가 아니라 반응이 느린 현상으로 인식되어서 크게 이슈가 되지 않았지만 생전 처음 겪는 문제에 모두들 저만 쳐다보는데 경험이 없는 저로써도 멘붕이 될 수 밖에 없었습니다.
여기저기 전화로 지인 찬스를 쓰고, 일단 급한대로 DB 서버를 Upgrade하고 지켜보다 보니 다이소 매장의 영업시간이 오후 10시까지라 자연스럽게 트래픽이 줄어들어서 상황이 종료 되었습니다.
원인파악도 문제지만 원인 파악이 완료되더라도 재발 방지 대책 수립 및 사용자가 급증하는 상황에 맞춰서 안정적인 서비스를 제공할 수 있도록 외주가 개발한 시스템에 대한 전반적인 점검과 함께 튜닝과 리팩토링이 필요한 상황이 되었는데, 사업적인 타이밍을 놓치지 않기 위해서 시스템을 개발해야 하는 로드맵과 함께 기존 레거시 시스템에 대한 대대적인 개편이라는 어려운 숙제를 떠안게 되었습니다.
설립한지 6개월도 채 안되는 회사가 서비스 오픈하고 열흘도 안되어서 20만이라는 사용자를 가지고 레거시 운운하는 상황이 참 웃픕니다.
혹시나 장애가 또 발생할지 몰라서 시스템 모니터링하는 화면을 더 자주 보게 되는데 CPU 부하나 DB connection이 급증하면 심쿵이 장난이 아니고 결과적으로 하루 하루가 스펙터클하네요.
ps. 어제 장애가 발생했다는 글을 썼는데 오히려 ‘축하한다’는 반응이 압도적으로 많았습니다. ㅠ.ㅠ