본문 바로가기
멘토링/개발팀

인스타그램 다운 장애, 왜 일어났을까?

by 반포한강공원 2019. 1. 29.

아침에 인스타그램 다운으로 시끄러웠다.

웹에서 500 error 가 뜬다고 난리였다.

웹어플리케이션 서버가 DB 와 통신할 수 없을 때 나는 에러다.

에러값을 리턴했다는 건 웹어플리케이션 서버는 살아있었다는 뜻이다.

그런데 왜, 언제부터 500 error 가 떴을까?

추측해보았다.


장애현상




장애가 나면 다양한 형태로 개발팀에 보고가 접수된다.

앱, 웹의 장애비율은 실사용자수에 기인한 것이다.

대부분 앱사용자니까 앱쪽 보고가 많은 건 당연하다.


다만, 웹사이트 장애가 함께 올라오는 건 전체 다운(Down)으로 보는 게 맞다.

웹쪽 보고서에 500 error 가 있었다.


언제 장애가 일어났을까?



인스타그램이 트위터 공식계정에 이슈를 올린 건 10:46분. 한국시간이다.



인스타그램이 조치가 완료되었다고 올린 게 11:07분. 

정확히 21분만이다.


하지만, 실제 장애가 발생된 건 더 일찍이다.

전세계 장애 모니터링 서비스인 "Outage Report" 는 이렇게 보여주고 있다.




실제 장애 발생시각은 9시21분으로 보인다.

샌프란시스코 시간대로 보면 오후 4시21분이다.


오후4시에 장애가 발생되어 6시에 조치되었다면, 2시간 정도 걸린셈이다.

공식메시지는 장애발생 후 약 1시간 10분만에 올라왔다.

장애확인이 되고 수습 중에 있을 때 올렸다.

그러니, 실제 작업시간은 1시간 남짓으로 추정된다.


장애리포트가 급증한 걸 보면 부분장애로 보이진 않는다.

동시에 접속장애가 발생한거다.


이 정도 규모의 장애는 보통 갑작스레 일어나지 않는다.

자연장애는 반드시 전조증상을 동반한다.

그런데 전조증상이 없었다.


이런 장애는 대부분 작업 장애일 가능성이 크다.

그래도 전체 서비스에 장애가 걸렸으니 꽤 큰 사건임에 틀림없다.


참고로, 인스타그램은 2012년에 Amazon EC2 로 100 대가 넘는 서버를 사용했다.

당시 가입자가 8천만명. 지금은 7억명이니까 규모가 9배 이상 커졌다.

낮추어 잡아도 서버대수가 700~800대는 될 거라고 본다.

원인불명이었다면 반나절 이상 장애가 지속되었을 것이다.


장애원인이 뭘까?



지역별로 보고된 장애 리포트 건수이다.

미국와 이탈리아 쪽이 유난히 빨갛다. "시간대 차이"나 "실사용자수 차이"로 보인다.


전세계에 동시에 장애가 발생했다.

뭔가 시스템 아키텍쳐 상에 SPOF (Single Point Of Failure) 가 존재한 것이다.


그런데 인스타그램은 계정별로 DB서버와 AP서버를 나누어 관리한다.

일부계정이 죽을 수는 있지만 이렇게 한꺼번에 죽을 수는 없다.

아마 네트워크 장비나 설정 문제였을 가능성이 높다.


하지만, Amazon EC2 라면 물리적 오류 가능성은 낮다.

아마 서버 상의 배포 실수 아니었을까 싶다.

proxy 나 ip 설정이 문제였을 수도 있다.


확신할 순 없지만, 조용히 기다려보자.

실수라면 조용히 묻혀질 것이고, 그렇지 않다면 블로그에 내용이 올라올거다.




미국 동부가 유난히 높은 건 인구분포 때문이다.


앞으로도 장애가 일어날까?

인스타그램은 그동안 장애가 많지 않았다.

이런 큰 장애가 발생된 걸 보면 큰 변화가 느껴진다.

아니면 "케빈 시스트롬"과 "마크 크리거"가 떠났기 때문일 수도 있다.

둘은 훌륭한 리더이면서 개발자였기 때문이다.


인스타그램이 페이스북에 인수될 때는 13명이었다.

가벼운 스타트업의 표준이기도 했다.


하지만 이제는 더이상 가벼운 조직이 아니다.

2018년말 인스타그램의 직원수는 550명이 넘었다.

이중 개발자 및 엔지니어는 400명 이상이라고 한다.


무엇 때문에 이렇게 많은 개발자들이 필요한 것일까?

인스타그램은 자체에 화면과 기능이 많지 않다.

앞으로도 많아질 것 같지 않다.

새로운 차세대 기능개발을 노리는 건 분명히 아니다.


대신 인스타그램은 Daily Active User 수가 5억명이 넘는다.

초당 5787명이 접속한다.

생각보다 많은 숫자는 아니지만 소홀히 볼 수 있는 숫자도 하니다.

트랜잭션의 무게, 전세계 사용자분포, Peak time 까지 고려한다면 서버운용은 빠듯하다고 본다.

아마 시스템을 안정적으로 확장시키기 위해 상당한 인력이 투입되는 것 같다.


시스템이 무거워지면 진화를 따라잡지 못하고 레거시가 된다.

그래서 이런 장애가 많아지고 시스템과 회사는 늙어간다.


인스타그램은 앞으로 어떨지 궁금하다.

지금까지는 훌륭한 회사일거라고 믿는다.

오랫동안 진화할 수 있는 팀문화와 인력들이 있다고 본다.

하지만 케빈과 마크가 떠났다.

그럼에도 불구하고 오래도록 귀감이 되어주면 좋겠다.


※ 참고할만한 포스팅 : 숫자로 보는 인스타그램 (2019.1.6)


FIN.

반응형

댓글