2010년 한국 서울에서 설립된 5Rocks는 모바일 게임을 위한 예측 분석 및 마케팅 자동화 서비스를 제공합니다. 한국, 중국, 일본 등지의 게임 개발자들이 모바일 게임 사용자의 행동을 분석해 수익을 증대하고 사용자들의 경험을 개선하기 위해 5Rocks의 서비스를 활용하고 있습니다. 모바일 광고 기술 회사 탭조이는 2014년 모바일 어플리케이션 개발자를 위한 전체적인 어플리케이션 및 광고 기술 개발을 위해 5Rocks를 인수하였습니다.

5Rocks는 아마존 웹 서비스 (AWS)의 싱가포르 리전에서 한국 시장에 서비스를 제공하는 모바일 어플리케이션 개발회사로 시작했습니다.

AWS는 5Rocks의 인프라 요구사항을 거의 모두 충족했지만, 싱가포르에서 한국 시장으로의 네트워크 레이턴시가 비즈니스 요구사항을 충족하지 못했습니다. 이 때문에 2012년 5Rocks는 국내의 퍼블릭 클라우드로 자사의 어플리케이션, 데이터베이스 및 관련 시스템을 이전했지만 안정성 문제로 인해 5Rocks 는 다시 다른 퍼블릭 클라우드를 검토하기 시작했습니다.

다음 해 5Rocks는 모바일 게임 개발자를 위한 분석에 전적으로 집중하기로 했습니다. 분석 플랫폼이 모바일 게이머가 사용하는 장치로부터 데이터를 계속 수집하고 저장할 수 있도록 확장성 있고 안정적인 인프라가 필요했습니다. 5Rocks의 서비스를 이용하는 모바일 게임 개발자의 수가 늘어나자 데이터 수집에 필요한 최종사용자 기기의 수는 수천만으로 증가했으며 이렇게 생성된 대규모 데이터를 효율적인 비용으로 처리하면서도 서비스의 안정성은 유지해야 했습니다.

또한, 데이터 수집 및 시간 단위 분석을 보장하기 위해 네트워크 레이턴시를 최소화할 필요가 있었습니다. 마지막으로 5Rocks에서는 인프라를 관리하는 것보다 어플리케이션 개발 및 유지에 초점을 맞춘 군살 없는 기술팀을 유지하고자 했습니다.

5Rocks의 기술팀은 이전에 AWS를 활용해 본 경험으로 클라우드 서비스의 특성인 확장성, 안정성 및 대용량 데이터를 위한 지원에 대해 잘 알고 있었으며, 자신들이 가진 특정 요구사항을 충족하기 위해 어떤 서비스를 선택해야 할지도 잘 알고 있었습니다. 탭조이/5Rocks의 문성익 Principal Software Engineer는 "호스팅된 하둡 프레임워크를 이용하여 빅데이터를 처리함으로써 자사의 분석 서비스를 지원할 수 있는 Amazon Elastic MapReduce (Amazon EMR)의 기능에 특히 관심이 있었습니다."라고 말했습니다.

국내의 퍼블릭 클라우드를 사용한 경험에 따라 5Rocks는 AWS 아시아-태평양 (도쿄) 리전의 Amazon Elastic Compute Cloud (Amazon EC2) 인스턴스에서 자사의 분석 어플리케이션을 테스트했습니다. 도쿄 리전에서 한국까지의 레이턴시는 비즈니스 요구사항을 충족했고, AWS가 제공하는 인프라의 유연성 및 사용량 기반 과금 모델 또한 모두 만족스러웠습니다. 문성익 엔지니어는 "모바일 게이머의 정보 수집 및 저장에는 하루 24시간 연중무휴는 아니더라도 많은 인프라 자원이 필요합니다. AWS의 가격 구조는 이러한 인프라 소비 패턴에 매우 적합했습니다."라고 말했습니다.

5Rocks는 자체 인원들의 작업만으로 6주 만에 국내 퍼블릭 클라우드에서 운영되던 인프라를 AWS로 이전할 수 있었으며, 자사의 분석 코드를 대체하기 위해 AWS 내에서 5Rocks 어플리케이션을 재개발했습니다. 문성익 엔지니어는 "이미 클라우드 서비스를 사용한 경험이 있었기 때문에 이 과정이 상대적으로 쉬웠다"고 말했습니다. 5Rocks는 Amazon EC2 인스턴스를 사용하여 루비 온 레일즈 (Ruby on Rails)로 개발한 분석 어플리케이션에 컴퓨팅 능력을 제공하며, Amazon Simple Storage Service (Amazon S3)는 모바일 게임 사용자로부터 수집된 데이터를 거의 무제한으로 저장할 수 있는 기본 스토리지를 제공합니다. Amazon EMR의 하둡 클러스터 다섯 개는 분석을 위한 데이터를 처리하고, 아마존 EC2 인스턴스에서 실행하는 데이터베이스에 결과물을 저장합니다. 이 클러스터는 분석이 필요한 데이터의 양에 맞춰 매 시간 그 규모를 확대 및 축소합니다. 전 세계 네트웍에 흩어진 모바일 디바이스에서 데이타를 수집하고 마케팅 메시지를 보여주는데는 Amazon CloudFront 콘텐츠 전송 네트워크가 사용됩니다. 또한 Amazon Route 53 는 사내 자원 변경을 쉽게 관리하게 해 줍니다.

5Rocks는 예비 Amazon EC2 인스턴스에 입찰하는 Amazon EC2 스팟 인스턴스를 통해 대규모 데이터 처리 작업 지원을 위한 비용을 75% 절감할 수 있었습니다. 문성익 엔지니어는 "스팟 인스턴스를 활용하지 않았다면 하둡 클러스터를 필요한 만큼 띄웠을 때 비용이 상당히 많이 들었을 것입니다. Amazon EMR은 신속하게 분석 클러스터를 구축하는 데 특히 유용했으며 문제 발생 시엔 Amazon S3에 데이터를 옮겨두고 손쉽게 클러스터를 폐기 혹은 재배포할 수 있습니다. 현재는 5Rocks의 모든 인프라를 AWS에서 구동하고 있습니다."라고 말했습니다.

5Rocks는 수개월간 AWS Business Support를 사용했습니다. Business Support에 가입하면 유사시 AWS에서 빠른 응답을 받을 수 있어 더욱 안전하게 AWS를 사용할 수 있습니다.

아래 다이어그램은 AWS에서의 5Rocks 인프라 아키텍처를 보여줍니다.

5Rocks Architecture

그림 1. AWS 상의 5Rocks 인프라 아키텍처

문성익 엔지니어는 효율적인 비용으로 손쉽게 방대한 데이터를 처리하는 Amazon EMR이 없었다면 "우리의 비즈니스는 지금 존재하지 않을 것"이라고 말했습니다. 5Rocks는 AWS를 활용해 인프라 비용을 낮게 유지하고, 인프라 운영에 필요한 팀 구성원 수를 최소화하며, 시장에 새로운 어플리케이션을 출시하는 시간을 단축하고 증가하는 수요에 맞춰 서비스를 확장함으로써 고객의 기대를 충족하는 데 필요한 가용성을 제공할 수 있었습니다.

문성익 엔지니어는 "처음부터 온프레미스 또는 위탁관리 데이터센터를 고려하지 않았기 때문에 그에 따른 자본적지출 (CAPEX) 및 운영비용 (OPEX)을 클라우드와 비교해 계산해 본 적은 없습니다. 자사의 서비스를 위한 하드웨어를 충분히 구입하고 실행하며, 실행 가능성을 유지할 여유가 없었습니다."라고 말했습니다.

문성익 엔지니어에 따르면 AWS로 이전한 후 5Rocks 어플리케이션은 이전보다 "몇백 배"나 많은 데이터를 수집하고 처리할 수 있게 되었습니다. 탭조이는 5Rocks를 인수한 후 현재 10,000 개 이상의 앱과 10억명 이상의 앱 사용자에 대해 서비스하고 있습니다. 5Rocks 어플리케이션은 현재 99.99% 이상의 가용성으로 실행되어 모바일 게이머의 행동을 추적하고 반응하는 자사의 능력에 대해 고객에게 신뢰를 주고 있습니다.

온프레미스 또는 위탁관리 데이터센터 설비 관리에 다섯 명 이상의 인원이 필요한 데 비해 5Rocks는 3명의 인원으로 인프라를 운영하고 있습니다. 또한 실제 하드웨어를 조달하는 대신 수요에 따른 컴퓨팅 및 기타 자원의 제공으로 새로운 어플리케이션을 개발하고 구축하는 데 필요한 시간을 4개월 이상 단축했다고 내부적으로 평가하고 있습니다.