Vingle은 이야기와 사진, 비디오, 음악 등을 공유하는 소셜 미디어입니다. 하지만 기존의 수많은 소셜 미디어와 달리 Vingle은 스쿠버 다이빙 커뮤니티, 여행 커뮤니티, 패션 커뮤니티 등 관심사가 같은 사람들끼리 서로 쉽게 만날 수 있는 커뮤니티 플랫폼입니다. 2012년도 6월에 베타 서비스를 시작한 Vingle은 현재 전세계 26개국에서 매월 220만 명 이상의 순방문자가 찾아오는 글로벌 서비스로 성장했습니다.

Vingle에서는 일정 주기로 사용자가 관심을 가질 만한 콘텐츠를 푸시(push) 방식의 알림으로 전달하곤 합니다. 기존 호스팅 서비스에서는 이 과정에서 순간적으로 몰리는 트래픽으로 인해 서버 접속 불가 현상이 자주 발생하였습니다. 이로 인해 불필요한 유지보수 시간과 성능 개선을 위한 추가적인 비용이 늘어났음에도 불구하고, 예측되는 피크 타임에 유연하고 민첩하게 대응할 수 있는 마땅한 방법이 없었던 점이 고민이었습니다. 또한 스타트업 특성상 적은 인원으로도 Vingle 서비스의 새로운 기능 개발과 서버 관리를 효과적으로 병행할 수 있는 방법을 찾고 있었습니다. 이에 관련하여 Vingle에서 웹 개발과 전반적인 시스템 관리를 담당하는 지상훈 수석 소프트웨어 엔지니어는 다음과 같이 말했습니다.

“Vingle에서는 세 명의 웹 개발자가 프론트 엔드 개발과 서버 관리를 병행하고 있습니다. 이와 같이 소수의 인력으로 안정적인 서비스 유지 및 관리를 하기 위해서는 서버 관리에 드는 시간 소모적인 작업량을 최소화하고 서비스 개발에 보다 집중하는 것이 필요하다고 생각했습니다.”

Vingle은 기존 호스팅 서비스을 대체할 수 있는 방안이 필요하다고 판단했습니다. 피크 타임에 생기는 서버 과부하로 인해 문제가 많았기에 확장성, 성능, 그리고 안정성 측면을 크게 고려하였는데, 이 세 가지 기준을 모두 만족시킨 것이 AWS였습니다. 먼저 확장성 측면에서 볼 때, AWS에서는 서버 구조를 변경하지 않고도 인스턴스 개수를 늘려 급상승하는 트래픽을 감당하는 것이 가능했습니다. 또한 호스팅 서비스에서 제공했던 낮은 성능의 서버로 인해 항상 딜레이가 발생하던 부분은 AWS에서 제공하는 높은 성능의 인스턴스를 사용하여 해결할 수 있었습니다. 확장성과 성능에 대해 지상훈 수석 엔지니어는 아래와 같이 덧붙였습니다.

“AWS에서 제공하는 인스턴스의 CPU 및 Memory 성능이 각각 다르고 인스턴스 종류도 스무 가지가 넘기 때문에, 여러 번의 테스트를 통해 높은 성능을 내는 최적의 인스턴스 유형을 찾을 수 있었습니다. 또한 트래픽의 상황에 맞게 손쉽게 Scale up 및 Scale out을 하는 것 역시 가능했습니다.”

이 뿐 아니라 기존 서버 문제로 발생하던 접속 장애 역시 AWS로 서비스를 옮긴 후 대폭 개선되어 보다 안정적으로 서비스를 운영할 수 있게 되었습니다. 결과적으로 Vingle은 AWS를 통해 확장성, 성능, 안정성을 모두 충족하게 되었으며, 현재 Staging, Experiment, Production 세 가지 서버 환경을 AWS에서 사용하고 있습니다. 웹 서버 운영을 위해서는 Elastic Load BalancingAWS Opsworks를 사용 중이며, 데이터베이스는 Amazon ElastiCache에서 Redis, Memcached 그리고 Amazon DynamoDB를 사용하고 있습니다.

AWS 도입 전에 사용자들이 받아보는 피드 데이터는 MongoDB로 구축되어 있었습니다. 문제는 사용자와 포스트되는 글들이 많아지면서 기존 호스팅 서비스에서 가장 큰 서버를 사용하면서도 서버가 다운되는 현상이 자주 발생한다는 것이었습니다. 하지만 AWS로 데이터 및 서비스를 이전하면서 Amazon DynamoDB에서 읽기/쓰기 용량을 늘려 테이블에 대한 처리량 요구 사항을 지정할 수 있었기에 사용자와 글이 증가하는 상황에서도 다운타임 없이 안정적인 서비스를 할 수 있었습니다. 또한 AWS로 이전한 후 모바일 사용자에게 알림 메시지를 보냈을 때 메세지 발송 직후 약 10분 동안 평소보다 600% 이상 늘어나는 대량의 트래픽을 감당하는 것이 가능했을 뿐 아니라, 웹 서버의 응답 속도 역시 62% 가량 개선되었습니다.

Vingle은 AWS의 인프라가 현재의 성장에 큰 역할을 하였다고 말합니다. 이에 대해 지상훈 수석 엔지니어는 다음과 같이 언급했습니다.

“AWS를 도입하면서 사회적인 이슈가 생기거나, 인기 콘텐츠가 화제에 오르면 생기는 피크타임의 과부하에 효율적으로 대응할 수 있었습니다. 덕분에 단기간의 사용자 급증에 대한 걱정 없이 공격적인 마케팅을 펼칠 수 있었고, 이는 Vingle이 매월 170만 명 이상의 사용자가 찾는 기반을 확충하는 데 큰 도움이 되었습니다.”

최근 Vingle의 서비스 안정화를 위해 AWS가 지원 중인 PostgreSQL 데이터베이스로 이전 작업을 한 바 있으며, 앞으로도 AWS로의 서비스 인프라 이전 및 구축을 계속적으로 검토할 예정입니다.

vingle architecture

그림 1: Vingle 아키텍처 다이어그램

AWS에서의 웹, 모바일 및 소셜 애플리케이션에 대한 보다 자세한 내용은 http://aws.amazon.com/web-mobile-social 을 참조하세요.