2014년 2월 27일 코엑스에서 열린 Gaming on AWS 세미나에서 기억나는 내용을 정리해 본다. 세미나 제목에도 있지만, 게임 업계의 AWS 적용 후기가 주된 내용이다.
여러 세션을 종합해보면 AWS를 사용하는 이유는 다음의 몇 가지로 좁혀진다.
이유 |
내용 |
글로벌 서비스 |
해외 IDC에 장비를 둘 경우, 해외의 엔지니어 고용, 해외 법, 장애 대응 등 서비스 운영에 많은 어려움이 있다. 각 지역별로 서버를 둬서 최종 사용자의 위치에 따라 가까운 서버에 연결하도록 만들려면 어려움은 더욱 배가 된다. AWS를 사용하면 이런 문제점을 대부분 해소할 수 있다. AWS는 북미, 유럽, 남미, 동남아, 중국, 일본 등 10여개의 리전이 있고, 50여개의 Edge가 존재한다. 또한, Route53을 통해 최종 사용자의 위치에서 가장 가까운 리전이 사용되도록 할 수 있다. |
운영 민첩성 |
새로운 인스턴스를 생성하는데 소요되는 시간이 불과 몇 분에 불과하다. 또한, 트래픽 변동성이 심한 서비스에 대해, 트래픽 상황에 따라 자동으로 인스턴스를 생성하거나 제거할 수 있다. 재시작을 통해 같은 인스턴스의 스케일업/다운이 가능하다. |
비용 |
최대 트래픽 기준으로 인프라를 구축할 필요가 없고 실제 사용량에 따라 비용을 지불하기 때문에 전체적인 운영비용을 절감할 수 있다. 또한, RC(Reserved Capacity)를 사용하면 할인된 금액으로 서비스를 사용할 수 있다. 한빛소프트의 경우 미국IDC를 AWS로 옮겨서 운영 비용을 32% 낮출 수 있었다고 한다. (6억 3천에서 4억 3천으로 낮춤) |
AWS 인스턴스의 성능/서비스와 관련해서 다음의 내용을 언급했다.
- 네트워크 Latency: SR-IOV를 지원하는 인스턴스 타입 추가해서 Latency 감소
- SR-IOV: 가상 머신이 하이퍼바이저를 거치지 않고 랜카드와 직접 통신
- EBS(Elastic Block Store)를 이용해서 DISK IO 속도 높일 수 있음
- ELB: Pre Warm을 통해 급작스런 트래픽 증가시 발생하는 ELB의 성능 저하 현상을 방지할 수 있음
- CDN: 전 세계에 50개의 Edge가 있고, 한국에도 존재
- 분석을 위한 서비스 제공: Redshift(DW도구), Kinesis(실시간 분석 도구), EMR(맵리듀스)
- 보안 서비스
- 기존과 같은 방식의 관제 서비스를 받기 어렵지만, 마켓플레이스를 이용해서 보안 서비스를 제공받을 수 있음
- VPC를 통한 VPN 지원
- 최근 서울-Tokyo리전에 대한 Latency가 200ms에서 40ms 수준으로 떨어졌음. 따라서, 국내 대상 서비스를 하는 경우에도 Tokyo 리전이 매력이 있음
- Chef를 이용해서 서버 설정 관리
- Chef를 이용해서 설정한 서버를 AMI로 만들어서 S3에 보관,
- AutoScale 시에는 이 AMI를 이용해서 서버 확장
- AMI 생성 시점과 그 이후의 변동분은 Chef에 의해 반영
- CloudFormation 이용해서 인프라 형상 관리 (예, 평균 CPU 사용률이 60%가 넘으면 인스턴스가 4개 추가와 같은 규칙을 설정 파일로 관리)
- CircleCI를 이용해서 최신 WAR 파일을 S3에 보관하고, 자동 추가되는 인스턴스는 Chef에 의해 S3에서 WAR를 가져와서 실행 (새로운 인스턴스는 새 버전을 사용)
- 새 버전 배포 방식: 새 인스턴스를 실행하고 기존 인스턴스를 제거하는 방식으로 롤링 업데이트
- 로그는 LogStash를 이용해서 수집, Elastic Search에 보관해서 로그 탐색 (1달치 보관)
- 인스턴스 종료시 10분이 넘어가면 AWS에서 인스턴스를 강제로 제거함
- 따라서, 인스턴스 종료시점에 후처리가 10분을 넘기면 데이터 유실이 발생함, 이 점에 주의
- 한국 게임 서비스들의 트래픽을 분석해보면 최소/최대 사이에 10배 정도 차이가 남
- 최대 트래픽이 발생하는 시점은 오후12시~1시 (점심 시간), 그 다음은 9시~11시
- 분석 역량의 차이가 게임의 흥망과 연결
- 못하는 회사: 단순히 DAU(Daily Active User), Session Count, ARPU 통계만 확인
- 잘하는 회사
- 추가로 (구매, 빈도, 레벨 등 기준으로) 상위 User와 비교
- 레벨/종복/기타 분류 별 ARPU 비교
- 일본 회사가 잘하는 것: FQ(Frequency) 분포를 이용한 분석
- 방문회수,게임시간 등으로 그룹을 나눠 분석
- 휴면 유저도 휴면일수 등으로 구분해서 관리/분석