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

Post on 24-Jan-2015

6.423 Views

Category:

Technology

12 Downloads

Preview:

Click to see full reader

DESCRIPTION

AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례 - 넥슨 (윤석주 신사업본부 선임)

TRANSCRIPT

넥슨 신사업본부

윤석주

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

top related