1.장애 대응 뭣이 그렇게 중헌디?
개발자들은 듣기만 해도 ptsd 오고 스트레스 받는 장애 상황!
고객의 신뢰성과 만족도에 직접적으로 영향을 미치는 장애, 장애 상황을 빠르게 파악하고 대응하는 것이 정말 정말 정말 중요해요.
하지만, ‘장애는 겪어봐야 안다’는 말이 있듯, 겪기 전까지는 정보도 장애 대응 프로세스도 알기 어려운 슬픈 현실이죠. 대기업들의 장애 대응 프로세스나 문화에 대한 기술 블로그는 쉽게 찾을 수 있어도 스타트업부터 성장해 온 회사의 생생한 장애 상황과 장애 대응 매뉴얼에 대한 이야기는 보지 못하셨을 텐데요!
그렇게 중요하다고 하는데, 정작 정보 얻기는 어려운 장애 대응! 그래서 야심 차게 준비해 봤어요.
2.끊임없는 성장 속에서 피할 수 없었던 장애 상황! 데이원 컴퍼니 CTO는 어떻게?
| CTO님 간단히 소개 부탁드립니다.
안녕하세요! 저는 데이원 컴퍼니의 CTO를 맡고 있는 심승건이라고 합니다. 패스트 캠퍼스 개발팀장에서 시작해 CTO가 된지는 약 1년 정도가 됐습니다.
| 정말 많은 장애 상황을 겪어보셨을 텐데, 정말 아찔했던 경험?
저도 신입이나 주니어 연차에는 심장이 빨리 뛰거나 엄청 당황했었죠. 지금은 문제 해결에 초점을 맞춰서 오히려 더 침착하게 대응하고 있어요. 이 직업을 가진 이상 장애 상황은 피해 갈 수 없고, 문제 해결보다 감정을 해결하는 게 우선이 되면 안된다는 생각을 항상 가지고 있습니다.
그래서 아찔했던 경험보다 큰 규모의 장애 상황을 말해보자면, 현재 회사가 4개의 CIC 구조로 하나의 데이터베이스를 사용하고 있습니다. 상세페이지 하나만 오류가 나거나 했으면 그래도 괜찮았을 텐데, 데이터베이스 오류라 전체 CIC 페이지에 영향을 미쳤던 적이 있어요.
MySQL에서 PK 프라이머리키가 설정이 안되면 오류가 나는 버그가 있어서, 데이터베이스를 내렸다가 올렸었습니다. 이 과정에서 모든 인스턴스를 주입해서 해결해야 했기 때문에 번거로움을 겪었었죠. 전사적으로 영향을 미치는 장애 상황이기 때문에 상당히 큰 규모의 장애 상황이었습니다.
| 회사가 성장하면서 장애 대응에 있어서 달라진 점은?
오히려 과거 장애 대응은 훨씬 간편하고 쉬웠죠. 서버들이 하나의 인스턴스에 존재하던 상황이라 터미널에서 몇 번만 작업하면 장애가 해결되는 손 쉽게 해결할 수 있는 상황이었습니다.
하지만 사용량 증가, 쿠버네티스 도입 등 스케일러블하게 인프라가 구축된 상황이라서 장애 원인 파악과 복구 과정이 복잡해졌다고 할 수 있죠. 고도화된 인프라와 배포 체계를 갖추게 되면서 물론 안정화 측면에서는 향상되었지만 장애 원인을 파악하고 대응하는데 속도가 더 느려진 부분은 있습니다.
| 실무에서 자주 겪는 장애 상황은?
수요 예측 실패로 인한 장애 상황이 흔하지 않을까 싶어요. 마케팅 이벤트나 갑자기 바이럴 효과 때문에 트래픽이 급증할 때 기존 서버로 감당이 안 될 때가 있죠.
저희도 페이지에 들어오면 30원을 지급하는 이벤트를 진행한 적이 있는데 그 때 실시간 검색어, 바이럴 되면서 트래픽이 100배 이상 뛰었던 적이 있어요. 기존에는 서버 두 대로도 충분했는데 그 때는 200대 띄워도 겨우 버틸 정도로 트래픽이 급증했었죠.
| 그렇다면 수요 예측은 어떻게?
조금 당황스럽게 들리실 수도 있지만 ‘당해보면 알 수 있습니다’. 사실 아무리 예측한다고 해도 변수들이 많기 때문에 예측이 어려운 것도 있죠. 그래서 한 번 당해보고 그 경험을 토대로 변수들을 최대한 줄여가고 있다고 생각해 주시면 될 것 같아요.
또 다른 방안으로는 STATIC 웹 페이지를 별도로 만들어서 모든 트래픽을 몰아 줄 수는 있죠. 다만, 별도로 페이지를 안 만드는 이유는 고객이 저희 서버에 들어와서 무언가 행동을 하는 게 모두 데이터베이스에 남기 때문에 최대한 저희 페이지로 들어오게끔 하고 있습니다.
| 장애 대응에 있어 자주 사용하는 방법&전략은?
아주 기본적인 방법인 롤백 전략을 많이 쓰는 거 같습니다. 문제가 생기면 바로 롤백하고 있어요. 인프라를 쉽게 배포하고 다시 내릴 수 있기 때문에 자주 활용하고 있죠. 또 스테이징 환경이라고 실 서버와 비슷하게 만들어놓은 환경에서 운영 환경으로 이전하기 전에 검증을 진행하고 있습니다.
| 경험에서 나오는 찐 노하우! 장애 대응에서 가장 중요한 Point는?
우선 멘탈케어가 중요하다는 말을 하고 싶어요. 처음 장애를 겪으면 누구나 당연히 힘들고 괴로워요. 근데 또 한두 번 겪다 보면 괜찮아져요. 다 사람이 하는 일이니깐, 어차피 엔지니어들은 장애 상황을 피할 수 없기 때문에 두려움을 이겨내는 과정이 중요한 것 같아요.
그리고 경험이 쌓이면 적절한 타이밍에서의 판단이 중요해지죠. 장애가 발생했을 때 어디서부터 봐야 할 지에 대한 인지가 생기겠죠? 그러면 이제 트래픽 문제인지 코드 문제인지를 파악하고 오래 걸릴 것 같으면 롤백부터 진행할 필요가 있어요. 시간이 소요되면 고통받는 사용자들이 늘어나고 또 회사는 그 시간만큼 돈을 못 버니깐 빠르게 판단하고, 서비스 완전 정상화는 어렵더라도 굴러가게 끔까지는 해야 하는 상황 판단이 굉장히 중요합니다.
| 데이원컴퍼니에서 장애 대응에서의 목표는?
사실 장애 상황 피해 갈 수는 없거든요. 그래서 장애를 발생시킨 누군가를 탓하는 것보단 문제 해결에 초점을 맞춰서 장애를 해결한 사람이 박수를 받는 문화를 만들고 싶어요. 사람은 누구나 실수를 할 수 있고, 또 일하다보면 생길 수 있는 일이기 때문에 그걸 같이 해결해가려는 문화를 조성하고 있고 또 유지해가려고 합니다.
3.이런 귀한 인터뷰 아니면 얻기 어려운 장애 대응 매뉴얼&정보!
강의 만들 때 정보 얻기도 강사님 구하기도 정말 어려웠어요, 그래서 장담할 수 있습니다!
▶ ONLY 이 강의에서만◀ 어디에서도 볼 수 없었던 장애 대응 프로세스 모든 것을 담았어요.
실제 빈번하게 겪는 8가지 장애 케이스를 100% 실습으로 진행!
수백가지의 장애 상황을 겪어보신 10년차 강사진과 함께해요.