brunch

You can make anything
by writing

C.S.Lewis

트래픽 폭증에도 안정을 유지한 바카라 에볼루션

카카오의 기술 이야기

바카라 에볼루션은 대한민국에서 가장 많은 트래픽이 발생하는 서비스 중 하나입니다.신년이나 크리스마스 같은 특별한 날에는 축하의 말을 전하기 위해, 불꽃놀이 같은 큰 행사가 있는 날에는 영상이나 사진을보내기 위해 바카라 에볼루션을 사용합니다. 또, 지진 같은국가적 재난에는 서로의 안부를 묻거나 사건 소식을 전하다 보니, 바카라 에볼루션 트래픽이 상상을 초월할만큼 많아집니다. 이처럼 특별한 날 폭증하는 이례적인 트래픽을 관리하기 위해바카라 에볼루션팀 개발자들은어떤 방법을 사용하고 있을까요?


2011년 10월, 3G 시대가 열리며 하루 6억 건에 달하는 메시지를 지연 없이 전송하기 위해 바카라 에볼루션에서는 겁나 빠른 황소프로젝트를 진행했습니다.전 국민이 사용하는 덩치 큰 앱으로 성장한 바카라 에볼루션이 속도에서도 가장 빠른메시지 전송 수단이 되자는 목표가 담겨 있었습니다.


6년이 지나 LTE 시대가 된 지금, 바카라 에볼루션은 하루 80억 건이상의 메시지를 전송하는 서비스가 됐습니다. 커진규모에 걸맞게 꾸준히 시스템을 개선해나가고 있습니다. 그 결과,어떤 채팅 앱보다도 빠르고 안정적인 서비스를 유지하고 있습니다.


전 국민이 사용하는 서비스인 바카라 에볼루션에서는 예상치 못한 트래픽 폭증이 발생하기도 합니다.2016년 경주 지진 같은 경우입니다. 당시 트래픽이 급증하며 메시지 전송이 어려워지기도 했습니다.반면, 2017년 11월 15일 포항에서 리히터 규모 5.5의 강진이 발생했을 때에도 바카라 에볼루션 트래픽은 폭등했습니다. 하지만, 이전과는 달리 정상적으로메시지를 송수신할 수 있었습니다.바카라 에볼루션팀 개발자들은 어떻게 트래픽에 대응했을까요?

바카라 에볼루션포항 지진 1차 때 평소의 5배, 2차 때 3배, 수능 연기 발표 때에는 2배의 트래픽이 증가했습니다.



바카라 에볼루션 연결의원리


바카라 에볼루션으로 대화를 주고받으려면 바카라 에볼루션과 서버가 연결돼 있어야 합니다.바카라 에볼루션을 처음 서버와 연결할 때는 로그인을 합니다. 이때 인증절차, 대화를 가로채지 못하도록 암호화된 통신 채널 생성, 그동안 나에게 온 메시지를 확인해 핸드폰에 받아 놓는 등 다양한 과정을 거칩니다. 그렇기 때문에 바카라 에볼루션을 서버와 연결할 때는 약간의 시간이 걸립니다.


바카라 에볼루션과 서버의 연결은 자주 끊어집니다.우리가 이동할 때나, 스마트폰을 사용하고 있지 않을 때 같은 경우입니다. 바카라 에볼루션은 하루에도 수십 번씩 사용하는 서비스입니다. 이때마다 위의 과정을 거쳐새롭게 연결을 해야 한다면 접속 시간이 오래 걸려 사용성을 해칠 것입니다.


바카라 에볼루션팀 개발자들은 사용자가 바카라 에볼루션을 직접 켜서 사용하지 않더라도 꾸준히 바카라 에볼루션과서버가 연결돼 있도록 해두었습니다.예를 들어 지인으로부터 바카라 에볼루션메시지가 오면,바카라 에볼루션과 서버가 연결을 시도하도록 한 것입니다. 이처럼평상시에도수시로바카라 에볼루션과서버를연결해두기때문에사용자가실제바카라 에볼루션을 열어메시지를확인할때에는즉시새로메시지를볼 수있습니다. 물론 데이터 사용을 최소화하기 위해모든 과정을 최대한 가볍게 진행합니다.



가설의 수립: 바카라 에볼루션 메시지 전송트래픽은 높지 않았을 것


바카라 에볼루션이 감당하기 어려울 수준으로트래픽이 폭증한사건이있었습니다. 2016년 9월 12일 오후 7시 44분, 경주에서 리히터 규모 5.1의 지진이 발생한 것입니다.서버로 연결을 맺으려는 트래픽이 평소 대비 40~50배까지 올라갔습니다. 바카라 에볼루션이 정상화되기까지는 2시간 이상이 걸렸습니다.


바카라 에볼루션팀 메시징개발자들은 지진 당일 폭증한 트래픽을 분석했습니다.무슨 일이 있었기에 이렇게 트래픽이 폭증했을까? 바카라 에볼루션이 국민 소통의 도구가 되었다고 하지만, 지진에 대피하는 와중에도 안부를 묻고 소식을 전하기 위해 전 국민이 동시에 바카라 에볼루션을 실행하고 있었을까? 그래서 당시 언론 보도를 통해 확인할 수 있었던 시간 별 상황과 서버의 기록을 대조하며 한 가지 가설을 세웠습니다.


재난 문자가 대량 발송되며 이를 수신한 스마트폰이 일제히 깨어나 바카라 에볼루션 서버와 연결을 맺으려 했다. 엎친데 덮친 격으로 이동통신사의 통신망에도 단절이 발생하며전국의 수많은 스마트폰 속의 바카라 에볼루션은 서버와 연결이 끊어졌을 것이다. 그 결과 몇 백만 이상의 바카라 에볼루션이 서버와의 연결을 복구하려고 했고, 이 과정이 반복되며 트래픽이 눈덩이처럼 불어나 평소 대비 몇십 배까지 올라간 것은 아닐까? 그렇다면 실제로 메시지를 보내려던 사람의 수는 감당 가능한 수준이 아니었을까?


가설이 맞다면, 트래픽이 폭증하는 재난 상황에서 실제 메시지를 보내려는 사용자가 바카라 에볼루션을 먼저 이용할 수 있게 하고, 빠른 통신을 위해 연결을 미리 맺어 놓는 상황은잠시 미룬 후 처리해도 될 것으로 봤습니다.



가설의검증: 바카라 에볼루션 사용자 집단의 구분


가설을 검증하기 위해두 집단을 구분해야 했습니다.

1) 바카라 에볼루션을 이용해 메시지를 보내고 있던 집단

2) 사용자가 바카라 에볼루션을 직접 실행하지 않고, 백그라운드에서 바카라 에볼루션과 서버의 연결을 유지하기 위해 접속을 시도했던 집단


이전까지는 사용자 집단이 구분되어 있지 않았습니다. 사용자 행태데이터를 분석해두 집단을 나누는 기준을 찾을 수 있었습니다.사용자의 접속 유지 시간을 초 단위로 나누어 보니, 앞뒤의 ±1초 보다 몇십 배나 많은 사용자가 동시에 접속이 끊어지는 구간이 있었습니다.


쉽게 말해,지진이 일자 1) 급증하는 트래픽, 2) 통신망 장애, 3) 서버와 연결을 시도하다 난 타임아웃 같은'여러 가지 프로그램적인 요인에 의해 실제 바카라 에볼루션을 사용하지는 않지만 서버와 접속이 유지되었던 수많은 기기가 동시에 접속이 끊긴 것'입니다. 이 기기들은 즉각적으로 서버와 연결을 복구하려는 시도를 하며 트래픽을 눈덩이처럼 증가시켜 갔습니다.


이처럼 외부 요인에 의해 접속이 종료된 바카라 에볼루션을 서버와 연결하는 처리를 잠시 뒤로 미룬다면, 실제 바카라 에볼루션을 사용하고 있는 트래픽만을 먼저 처리할 수 있고, 전체 트래픽 증가 속도를 낮출 수 있다고 봤습니다.


분석 결과, 사용자가 직접 앱을 실행한 비율은 대략 40% 정도, 그렇지 않은 경우는 60% 정도로 예측할 수 있었습니다. 60%의 접속을 비상 상황에 잠시 미루어 처리하기로 했습니다. 이 경우에도 사용자는 몇 초 느려진 정도로 바카라 에볼루션을 이용할 수 있었습니다. 국가 비상상황에서는 충분히 감당할 수 있는 수준으로 보였습니다.



시스템의개선:실제사용자에게집중하다


예측치를 바탕으로 시스템을 개선했습니다. 우선 비상 상황을 자동으로 감지할 수 있는 기능을 보강했습니다.1) 사용자가 앱을 직접 실행한 상황(Foreground, FG)과,2) 여러 가지 이유로 백그라운드에서 서버로 연결하는 상황(Background, BG)을 구분했습니다.


앱을 직접 실행한 경우는 우선 처리해야 하는 트래픽으로 봤습니다. 비상 상황이 감지되면 FG는 처리하고, BG는 비상 상황의 단계에 따라서 뒤로 미뤄서 처리하도록 했습니다.


실제 개선사항을 적용해보니 평상시 빠른 접속을 돕는 BG의 비율은 예상보다 높은 80% 이상이었습니다. 비상시 기능이 제대로 작동한다면 예상보다 큰 효과가 있을 것 같았습니다. 유사한 상황이 발생한다면, 기능이 잘 작동해 사용자들이 바카라 에볼루션을 이용해서 안부를 묻고 소식을 전하는데 조금이나마 도움이 되기를 바라고 있었습니다.



결과: 폭증하는 트래픽에 원활하게 대응한바카라 에볼루션


2017년 11월 15일 오후 2시 29분 31초 포항에서 규모 5.5의 지진이 발생했습니다. 지진 발생 30초 후 접속 요청은 5배 이상 폭증했습니다. 이 상황에서 BG의 비율이 96%까지 올라갔습니다.

바카라 에볼루션


부하가 걸린 서버는 평소보다 응답이 느려졌습니다. 이를 감지한 시스템은 즉시 비상 상황 모드로 전환하여 자동으로 4%의 FG 트래픽을 먼저 처리하면서 BG 트래픽을 컨트롤했습니다.


약 1분 후, 정상 속도로 응답을 줄 수 있을 만큼 트래픽을 관리하는 데 성공했습니다. 이 1분 동안 일부 이용자가 메시지와 사진을 주고받는데 지연이 있었지만, 곧 대부분이 원활하게 바카라 에볼루션을 이용할 수 있었습니다.


만약 BG 트래픽을 적시에 자동으로 컨트롤하지 못했다면, 정상적으로 접속해 있던 이용자들도 응답이 늦어지며 기존의 연결을 끊고 다시 연결을 시도했을 것입니다. 이런 상황이 누적되면 경주 지진 때처럼 전면 장애로 이어졌을지도 모릅니다.


바카라 에볼루션2017년 12월 31일에서 2018년 1월 1일로 넘어가는 순간 바카라 에볼루션 트래픽은 평소 대비 3배 이상 폭증하였습니다.


새해 첫날에도 긴장을 늦출 수 없었습니다. 1월 1일에는 새해 인사를 전하는 바카라 에볼루션 메시지가 오가며 평소 대비 트래픽이 월등이 높아지기 때문입니다. 역시나 새해로 넘어가는2018년 0시에도 트래픽이 평소에 비해 3배 정도 급증했고, 메시지를 보내는 사용자가 바카라 에볼루션을 원활하게 쓸 수 있도록 우선적으로 처리하였습니다.


11월 15일 두 번의 지진과 수능 연기 소식이 발표될 때, 그리고 신년 카운트다운을 할 때평소보다 훨씬 많은 트래픽이 유입되었지만,바카라 에볼루션은 이상 없이 서비스되었습니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari