클라우드 시대의
모바일 게임 운영 플랫폼 구현
아이펀팩토리
장수원 sw.jang@ifunfactory.com
About Me
✓ 6 년차 Back-end 소프트웨어 엔지니어
✓ 2013 ~ : 아이펀팩토리
• 게임 운영 플랫폼 개발 중
• 게임 서버 용 Openstack 프라이빗 클라우드 개발
✓ 2011~2012 : LG 전자, 소프트웨어 역량 강화 센터, 인프라 팀
게임 운영?
게임 운영
✓ 인프라 관리 : 서버 생성/설정, 로드밸런서 생성/설정, …
✓ 서버 관리 : 초기 설정, 게임 서버 애플리케이션 배포 및 관리
✓ 모니터링 : CPU 사용율, Memory, …
✓ 운영 툴 : 고객 지원, 프로모션 관리, …
✓ 웹 대시보드
클라우드 시대
달라진 점?
클라우드 = IaaS
Infrastructure as a service
클라우드 시대 - 변한 것
✓ 인프라 확장 → 빠르고 쉬워짐, 비용 낮아짐
✓ 개별 머신의 가용성 → 낮아짐
✓ Scaling-up → Scaling-out
✓ 잦은 인프라 축소/확장 → 자동화 필요
인프라 설치 및 관리 기능
게임 운영 시스템으로 편입
Python 으로 어떻게 구현 했는지 소개
Web 대시보드
인프라 관리 서버 관리
리소스 모니터링 운영 툴
Web 대시보드
Web 대시보드 구현
✓ Python 에서 가장 잘 알려진
웹 프레임워크
✓ Web client 프레임워크 (HTML, CSS,
JS)
✓ Web UI 요소를 쉽게 사용할 수 있음
잘 만드는 것보다 빠르고 쉽게 만들 수 있는 것이 중요!
인프라 관리
클라우드 API 활용
AWS library
ucloud
library
libcloud
⋮
API 호출
Apache Libcloud
https://libcloud.apache.org
Apache Libcloud
✓ AWS, Azure, Google Compute Engine 등을 포함한
30개 이상의 클라우드 서비스 지원
✓ 공통된 기능은 같은 인터페이스로 제공해 편리
Provider.RACKSPACE
driver.list_sizes()
driver.list_images()
driver.create_node(name=‘
Libcloud 문제 해결?
각 클라우드 독자적
기능을 지원하지 못 함
e. g. AWS VPC, KT ucloud biz 로드 밸런서
Trade-off
libcloud 포기, 각 벤더 client 라이브러리 직접 사용
서버 관리
설정 자동화 도구 사용
설정 자동화 도구 사용하려면...
✓ 통합 관리를 위한 마스터 서버 설치
✓ 각 서버 → 해당 도구의 에이전트를 설치/설정
✓ 에이전트와 마스터 서버가 정상 연결
→ 모든 시스템 관리 작업은 마스터 서버를 통해 가능
agent
agent
⋮
Master Server
에이전트 설치도 자동화
클라우드
시스템
서버 인스턴
스
user-data
서버 인스턴스 생성 시
설정 자동화 도구 agent 를 설치한다
에이전트 설치 자동화
✓ 에이전트 설치 명령 + 마스터 서버 주소 설정
→ user-data 생성
✓ 서버 인스턴스 생성 API 호출 시 user-data 전달
✓ 이후 모든 관리 작업은 마스터에서
IaaS API 호출 간 기다림
서버 명령 결과 기다림
어떻게 처리?
배치 작업
• 비동기적으로 Job 을 처리해줄 Queue 가 필요함
RQ (Redis queue)
RQ
✓ Redis 를 이용한 간단한 Job queue
✓ 여래 벌의 worker 를 두는 것이 가능
✓ 배우기 쉬움
RQ
q = Queue(connection=Redis())
result = q.enqueue(my_function, arg1, arg2)
Redis 설치 후
Job 생성
worker 실행
$ rq worker
리소스 모니터링
리소스 모니터링
✓ CPU 사용량
✓ Memory 점유율
✓ 네트워크 사용량
✓ 디스크 사용량
클라우드 벤더 기본 제공 모니터링
vs
자체 수집
AWS Cloud Watch
벤더 기능 사용
✓ 장점
• 별 다른 설정이 필요 없음
✓ 단점
• 메트릭 제한 (e.g. 메모리 사용량, 디스크 사용량)
• 벤더 별로 상이
자체 제작의 경우
✓ 각 VM Collectd 등 -> Graphite, Influx DB 등에 수집
Graphite
collectd
custom
reporter
운영 툴
Web 대시보드
인프라 관리 서버 관리
리소스 모니터링
운영 툴
✓ 게임마다 운영 툴을 독자적으로 개발하는 것은 반복!
✓ 운영 툴에 필요한 Rest API 정의하고
✓ 게임 서버는 Rest API 구현
✓ 대시보드는 Rest API 호출해서 사용하는 방식
운영 툴
Rest API
Endpoint
HTTP API 요청
JSON/XML 응답
REST API 예제
GET /cs-api/v1/account/<type>/<id>/
HTTP/1.1 200 OK
{
"account": {
"created": "2016-01-01",
"last_login": "2016-03-23",
"banned": false,
"coin": 100,
}
}
시간 지정이 필요한 경우?
e.g. 프로모션 관리
Celery
Celery
✓ eta, countdown 기능 등으로 특정 시간에 Job 을 실행할 수 있음
Rest API
EndpointCelery Worker
2016 NDC  - 클라우드 시대의  모바일 게임 운영 플랫폼 구현
요약
✓ 클라우드 시대 → 인프라 관리의 소프트웨어 화
✓ 게임의 핵심은 아니지만 없어서도 안 됨
✓ 개발 생산성 높은 언어 (e.g. Python) 및 framework 을 활용
✓ 재밌는 게임 개발 방해받지 말자
감사합니다.
Q & A
sw.jang@ifunfactory.com

More Related Content

PPT
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
PDF
iFun Deploy 소개
PDF
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
PDF
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
PDF
iFunEngine: 30분 만에 게임 서버 만들기
PDF
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
PPT
iFun Engine plugin 만들기 (for Stingray)
PPTX
NDC 11 자이언트 서버의 비밀
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
iFun Deploy 소개
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
iFunEngine: 30분 만에 게임 서버 만들기
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
iFun Engine plugin 만들기 (for Stingray)
NDC 11 자이언트 서버의 비밀

What's hot (20)

PPTX
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
PPTX
라이브 서비스를 위한 게임 서버 구성
PDF
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
PDF
쿠키런 1년, 서버개발 분투기
PDF
NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기
PPTX
Ndc14 분산 서버 구축의 ABC
PDF
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
PPTX
스마트폰 온라인 게임에서 고려해야 할 것들
PDF
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
PDF
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
PPTX
유니티3D 그리고 웹통신
PPTX
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
PPTX
Apache ZooKeeper 로
 분산 서버 만들기
PDF
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
PDF
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
PDF
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
PPTX
Amazon web service를 활용한 모바일 게임 서버 개발 퍼즐 주주의 사례를 중심으로
PDF
[231]나는서버를썰터이니너는개발만하여라 양지욱
PDF
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
PDF
[221] docker orchestration
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
라이브 서비스를 위한 게임 서버 구성
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
쿠키런 1년, 서버개발 분투기
NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기
Ndc14 분산 서버 구축의 ABC
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
스마트폰 온라인 게임에서 고려해야 할 것들
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
유니티3D 그리고 웹통신
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
Apache ZooKeeper 로
 분산 서버 만들기
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
Amazon web service를 활용한 모바일 게임 서버 개발 퍼즐 주주의 사례를 중심으로
[231]나는서버를썰터이니너는개발만하여라 양지욱
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[221] docker orchestration
Ad

Viewers also liked (20)

PPTX
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
PPTX
Make "PONG" : 아키텍팅과 동기화 테크닉
PPTX
Docker 로 Linux 없이 Linux 환경에서 개발하기
PPTX
게임 운영에 필요한 로그성 데이터들에 대하여
PPTX
2016 NDC - 모바일 게임 서버 엔진 개발 후기
PDF
Designing a pragmatic back-end service for mobile games
PDF
클라우드 춘추전국시대 서버 개발자 생존기
PDF
빅스 크리에이티브 홈페이지 초안 Ver.1_20130530_석혜윤
PDF
유니티 쉐이더 단기속성
PDF
게임 서버 성능 분석하기
PDF
혼자서 만드는 MMO게임 서버
PDF
Python과 AWS를 이용하여 게임 테스트 환경 구축하기
PPTX
[UniteKorea2013] Memory profiling in Unity
PDF
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
PDF
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
PDF
중국시장 대응 홈페이지 구축 및 SEO 전략 (시도우 김도연)
PPTX
K-Board: Django기반 한국형 커뮤니티
PPTX
홈페이지 기획d
PDF
Unity Internals: Memory and Performance
PDF
인디 게임을 개발하는 여러 가지 방법들
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
Make "PONG" : 아키텍팅과 동기화 테크닉
Docker 로 Linux 없이 Linux 환경에서 개발하기
게임 운영에 필요한 로그성 데이터들에 대하여
2016 NDC - 모바일 게임 서버 엔진 개발 후기
Designing a pragmatic back-end service for mobile games
클라우드 춘추전국시대 서버 개발자 생존기
빅스 크리에이티브 홈페이지 초안 Ver.1_20130530_석혜윤
유니티 쉐이더 단기속성
게임 서버 성능 분석하기
혼자서 만드는 MMO게임 서버
Python과 AWS를 이용하여 게임 테스트 환경 구축하기
[UniteKorea2013] Memory profiling in Unity
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
중국시장 대응 홈페이지 구축 및 SEO 전략 (시도우 김도연)
K-Board: Django기반 한국형 커뮤니티
홈페이지 기획d
Unity Internals: Memory and Performance
인디 게임을 개발하는 여러 가지 방법들
Ad

Similar to 2016 NDC - 클라우드 시대의 모바일 게임 운영 플랫폼 구현 (20)

PDF
Photon게임서버 네트워크엔진과 GBaaS를 통한 AWS DB 서비스 구성 방법 소개 - AWS Summit Seoul 2017
PDF
[giip] A.I. Infrastructure Advisor (인공지능 인프라 어드바이저)
PDF
AI = SE , giip system manage automation with A.I
PDF
Giip bp-giip connectivity1703
PPTX
Kgc2009 Online Game Service with Cloud Computing
PDF
[웨비나] Follow me! 클라우드 인프라 구축 기본편 - 강지나 테크 에반젤리스트
PDF
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
PDF
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
PDF
[애플리케이션 현대화 및 개발] 클라우드를 통한 현대적 애플리케이션 디자인 및 구축 패턴 - 윤석찬, AWS 수석 테크 에반젤리스트
PDF
주니어의 쿠버네티스 생태계에서 살아남기
PDF
개발자를 위한 네이버 클라우드 플랫폼ㅣNAVER CLOUD PLATFORM for Developers
PDF
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
PPTX
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
PPT
Cloud Computing 이현남
PDF
AWS 클라우드 이해하기-사례 중심 (정민정) - AWS 웨비나 시리즈
PDF
클라우드 컴퓨팅 기본 사항 (Fundamentals)
PDF
Private cloud network architecture (2018)
PDF
KGC 2013 DevSisters
PDF
모바일 게임을 만들기 위한 AWS 활용 고군분투기::최용호::AWS Summit Seoul 2018
PDF
[오픈소스컨설팅] VMware 대안 검토를 위한 프라이빗 클라우드 솔루션 제언
Photon게임서버 네트워크엔진과 GBaaS를 통한 AWS DB 서비스 구성 방법 소개 - AWS Summit Seoul 2017
[giip] A.I. Infrastructure Advisor (인공지능 인프라 어드바이저)
AI = SE , giip system manage automation with A.I
Giip bp-giip connectivity1703
Kgc2009 Online Game Service with Cloud Computing
[웨비나] Follow me! 클라우드 인프라 구축 기본편 - 강지나 테크 에반젤리스트
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
[애플리케이션 현대화 및 개발] 클라우드를 통한 현대적 애플리케이션 디자인 및 구축 패턴 - 윤석찬, AWS 수석 테크 에반젤리스트
주니어의 쿠버네티스 생태계에서 살아남기
개발자를 위한 네이버 클라우드 플랫폼ㅣNAVER CLOUD PLATFORM for Developers
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
Cloud Computing 이현남
AWS 클라우드 이해하기-사례 중심 (정민정) - AWS 웨비나 시리즈
클라우드 컴퓨팅 기본 사항 (Fundamentals)
Private cloud network architecture (2018)
KGC 2013 DevSisters
모바일 게임을 만들기 위한 AWS 활용 고군분투기::최용호::AWS Summit Seoul 2018
[오픈소스컨설팅] VMware 대안 검토를 위한 프라이빗 클라우드 솔루션 제언

More from iFunFactory Inc. (12)

PDF
2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
PDF
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
PDF
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
PDF
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
PDF
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
PDF
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
PDF
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
PDF
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
PDF
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
PDF
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
PDF
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
PDF
[아이펀팩토리] 2017 NDCP
2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2017 NDCP

2016 NDC - 클라우드 시대의 모바일 게임 운영 플랫폼 구현

Editor's Notes

  • #2: 안녕하세요. 아이펀팩토리 장수원입니다.
  • #4: 사실 춘추 전국 시대라고 발표 자료