Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
넥슨 신사업본부
윤석주
AWS(Amazon Web Services)를
활용한 모바일 게임 서버 개발
퍼즐 주주의 사례를 중심으로
윤석주 ( @noricube )
- 2012:서울
- Zoo Invasion
- 퍼즐 주주
발표자 소개
퍼즐 주주는 어떤 게임?
소셜 요소 쉬운 조작
넥슨 최초 카카오 게임
IOS 신규 무료 1위
Android 신규 무료 1위
최고 매출 20위
1. 퍼즐 주주 서버의 설계 목표
2. AWS 3가지 장점
3. AWS 장점 살리기
4. AWS 활용
5. 설계 목표 완수
6. AWS 의 부가적인 장점
목차
5
퍼즐 주주 서버 설계 목표
확장성, 저비용, 안정성
을 모두 고려
퍼즐 주주 서버는
7
퍼즐주주를 만들던 2012년 8월…
우리도 많은 유저가 올 수 있다
확장성
8
짧은 수명
불 확실한 미래
저비용
9
장애에 민감한 모바일 시장
- 이미지 저하
- 매출 하락
안정성
10
그래서 AWS 선택
11
AWS 3가지 장점
14
1. 빠른 확장성
15
scale-out
16
최소 2~3일 5분
클릭 한번에 끝!
scale-up
17
2. 적은 초기 비용
18
초기 투자 없이 사용한 시간만 내면 됨!
비용 절감
19
개발 오픈 3주 1달 2달 3달 4달 5달
물리 서버 AWS 유저
누적 예상 비용
21
3. 안정성
22
여러 개의 Zone 동시 사용 가능
- Zone은 다른 IDC (내가 쓰는 Zone이 핵폭탄을 맞는다면!?)
- Zone간의 전용망 제공
EBS(Elastic Block Storage)
- 스토리지가 따로 분리
- Replication
안정성
23
안정성
24
Elastic
Load
Balancer
유저
빠른 확장성
적은 초기 비용
안정성
AWS 장점
26
AWS 장점 살리기
빠른 확장성
적은 초기 비용
안정성
AWS 장점
29
Frontend / DB 만 존재
30
단순한 서버 구조
31
Elastic
Load
Balancer
유저 Frontend DB
Frontend
32
모든 게임 로직 포함
- 서버 확장을 쉽게 하기 위해
요청을 최대한 단순화
- 분산해서 처리하기 쉽도록
Stateless
- 유저 정보를 DB로만 동기화하여 동기화 이슈 제거
Frontend
33
Frontend 원자성 보존
34
클라이언트에서
요청
DB에서
데이터 로드
요청 처리
데이터 충돌
이 있었는가?
DB에 쓰고 종료
예
아니요
Frontend 는 수평확장이 가능
그럼 DB 도 수평확장이
가능해야 하지 않을까?
35
NoSQL 도입
- 서비스 중 수평 확장 가능
- 쓰기가 많을 때 유리
DB
36
추가로..
37
통계, 로그 등 추가로 필요한 서비스
Redis의 Pub/Sub으로 메시지 전달
서비스에 의존적이지 않도록 함
기타 서비스
38
AWS 활용
수요 확장 대응
40
Elastic
Load
Balancer
유저 Frontend DB
Frontend DB
수요 감소 대응
41
Elastic
Load
Balancer
유저 Frontend DB
Frontend DB
ㅇㅇㅇ
장애 대응
42
Elastic
Load
Balancer
유저 Frontend DB
Frontend DB
Frontend DB
실시간 복제
Frontend에 부하가 몰리면 Frontend 추가
DB에 부하가 몰리면 DB 추가
 수요 대응
거꾸로 수요가 줄어들면 Frontend / DB제거하여
 비용 절감
다시 한번 정리하자면
43
설계 목표 완수
확장성, 저비용, 안정성
45
장애 없는 서비스
- 7개월 운영 가동률 99.9%
안정성
46
다양한 수요에 대응
- 오픈 초기 빠르게 증가하는 수요를 모두 소화함
비용 절감
- 유지 비용 지속적으로 감소
확장성 / 저비용
47
AWS 의 부가적인 장점
서버를 미리 셋팅 해두고
원할 때 빠르게 확장 가능
API로도 확장 가능
서버 템플릿
49
디스크 자체를 API로 백업
백업
50
점검 없는 업데이트
51
ELB Frontend
Frontend
Frontend
국내보다 해외망이 좋음
- 한국
- 일본
- 미국
모두 한 서버에서 서비스
글로벌 서비스
52
장애 발생시 템플릿으로 Instance를 추가
장애 Instance를 제거
즉시 해결 가능
Instance != Server
53
정리
모바일 게임에 좋다
- 다양한 수요에 대응 가능
- 초기 투자 비용 최소화
- 서비스 안정성
- 글로벌 서비스
자동화 가능
- 거의 모든 기능에 대한 API 지원
Amazon Web Service
55
인프라에 유리한 설계가 중요
- 확장 가능한 DB 사용
- Stateless
- 서비스간 의존성 최소화
- 요청 단순화
Software on AWS
56
보너스
Couchbase?
Key-value storage
59
60
서비스 도중 scale-in/out 가능
웹 UI로 된 관리 툴
- Rebalance
- Bucket 설정
- 통계
61
Replication 지원 62
Failover 지원 63
DB 구조
64
Q&A

More Related Content

[Gaming on AWS] 넥슨 - AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례