python과 aws를 이용하여 게임 테스트 환경 구축하기

43
2017 iFunFactory Dev Day -Great Technology For Great Games- Python 과 AWS를 이용하여 게임 테스트환경 구축하기 Great Technology For Great Games 발표자 : 민영기 [email protected]

Upload: ifunfactory-inc

Post on 21-Apr-2017

156 views

Category:

Engineering


10 download

TRANSCRIPT

Page 1: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

2017iFunFactoryDevDay-GreatTechnologyForGreatGames-

Python 과 AWS를 이용하여게임 테스트환경 구축하기Great Technology For Great Games

발 표 자 : 민 영 기

m i c h a e l m i n @ i f u n f a c t o r y . c o m

Page 2: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

2017iFunFactoryDevDay-GreatTechnologyForGreatGames-

01 왜 클라우드인가?

Flexibility for a wide range of games

Page 3: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

32017iFunFactoryDevDay-GreatTechnologyForGreatGames-

게임 테스트Chapter 01.

Great Technology For Great Games

Page 4: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

42017iFunFactoryDevDay-GreatTechnologyForGreatGames-

게임 테스트Chapter 01.

Great Technology For Great Games

•재미 테스트•정말 게임이 재미있나

•기능 테스트•기획한 대로, 버그 없이 만들어졌나

•부하/스트레스 테스트•서비스할 만한 성능이 되나

Page 5: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

52017iFunFactoryDevDay-GreatTechnologyForGreatGames-

부하 테스트Chapter 01.

Great Technology For Great Games

•서버 스펙이 얼마나 좋아야 하나

•최대 동접이 몇 명인가

•동접(요청) 증가에 따른 상태 변화는?

Page 6: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

62017iFunFactoryDevDay-GreatTechnologyForGreatGames-

부하 테스트Chapter 01.

Great Technology For Great Games

게임 서버

더미 클라이언트

Page 7: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

72017iFunFactoryDevDay-GreatTechnologyForGreatGames-

부하 테스트Chapter 01.

Great Technology For Great Games

클라우드에서서비스 할 것도

아닌데…

그냥사무실에서

하면안 되나요?

Page 8: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

82017iFunFactoryDevDay-GreatTechnologyForGreatGames-

부하 테스트Chapter 01.

Great Technology For Great Games

하지만…

Page 9: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

92017iFunFactoryDevDay-GreatTechnologyForGreatGames-

부하 테스트Chapter 01.

Great Technology For Great Games

게임 서버

더미 클라이언트

Page 10: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

102017iFunFactoryDevDay-GreatTechnologyForGreatGames-

부하 테스트용 서버Chapter 01.

Great Technology For Great Games

•스펙 좋은 서버 머신 필요

•다양한 스펙의 머신 필요

•다수의 머신 필요

Page 11: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

112017iFunFactoryDevDay-GreatTechnologyForGreatGames-

부하 테스트Chapter 01.

Great Technology For Great Games

게임 서버

더미 클라이언트

Page 12: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

122017iFunFactoryDevDay-GreatTechnologyForGreatGames-

더미 클라이언트Chapter 01.

Great Technology For Great Games

•코어 많은 머신 필요

•Nic 가 좋은 머신 필요

•많은, 더 많은 머신 필요

Page 13: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

132017iFunFactoryDevDay-GreatTechnologyForGreatGames-

부하 테스트Chapter 01.

Great Technology For Great Games

게임 서버

더미 클라이언트

Page 14: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

142017iFunFactoryDevDay-GreatTechnologyForGreatGames-

네트워크Chapter 01.

Great Technology For Great Games

•회선/사무실 라우터가 병목이 될 수도• Bandwidth•라우터의 전송 속도

•사무실 내 네턱 속도 저하로 인한 갈굼

Page 15: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

152017iFunFactoryDevDay-GreatTechnologyForGreatGames-

유지 비용 문제Chapter 01.

Great Technology For Great Games

•성능 좋은 장비들이 필요

•성능 좋은 장비들이 많이 필요

Page 16: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

162017iFunFactoryDevDay-GreatTechnologyForGreatGames-

질러라?Chapter 01.

Great Technology For Great Games

Page 17: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

172017iFunFactoryDevDay-GreatTechnologyForGreatGames-

효율성Chapter 01.

Great Technology For Great Games

성능 좋은(=비싼) 장비가

많이 필요하지만

항상 필요한 건 아님

Page 18: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

182017iFunFactoryDevDay-GreatTechnologyForGreatGames-

왜 클라우드인가Chapter 01.

Great Technology For Great Games

필요한 리소스를필요한 때에 사용하고사용한 만큼만 지불

Page 19: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

2017iFunFactoryDevDay-GreatTechnologyForGreatGames-

02 왜AWSPython인가?

Flexibility for a wide range of games

Page 20: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

202017iFunFactoryDevDay-GreatTechnologyForGreatGames-

부하 테스트Chapter 02.

Great Technology For Great Games

•큰 데이터를 전송해야 하는 경우가 있음

•로그•디비 덤프•기타 메타데이터

국내 데이터센터가 존재하는 서비스를 사용

Page 21: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

212017iFunFactoryDevDay-GreatTechnologyForGreatGames-

API/SDKChapter 02.

Great Technology For Great Games

•인스턴스 컨트롤 자동화에 필요

•대부분 RESTAPI 만 제공

• RESTAPI는 요청생성, 응답 파싱이 어려움

• SDK를 제공하는 서비스 사용

Page 22: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

222017iFunFactoryDevDay-GreatTechnologyForGreatGames-

Amazon RDSChapter 02.

Great Technology For Great Games

• AMAZONRelationalDatabaseService

• RDBMS를 서비스 형태로 제공

•스냅샷 생성, 자동 백업 등의 기능 제공

Page 23: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

232017iFunFactoryDevDay-GreatTechnologyForGreatGames-

Amazon ElasticacheChapter 02.

Great Technology For Great Games

• In-memory메모리 스토리지

•Memcached,Redis 사용 가능

•운영 및 안정성 확보에 필요한 기능 제공•스냅샷 생성 및 백업•샤딩

Page 24: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

242017iFunFactoryDevDay-GreatTechnologyForGreatGames-

부하 테스트Chapter 02.

Great Technology For Great Games

테스트용도로쓸모가있나요?

Page 25: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

252017iFunFactoryDevDay-GreatTechnologyForGreatGames-

RDS/ElasticacheChapter 02.

Great Technology For Great Games

•별도의 설치과정 없이 사용 가능•모니터링 기능 지원

Page 26: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

262017iFunFactoryDevDay-GreatTechnologyForGreatGames-

왜 Python인가Chapter 02.

Great Technology For Great Games

Page 27: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

2017iFunFactoryDevDay-GreatTechnologyForGreatGames-

03AWS 상에 Boto3 로테스트 환경 만들기

Flexibility for a wide range of games

Page 28: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

282017iFunFactoryDevDay-GreatTechnologyForGreatGames-

Boto3Chapter 03.

Great Technology For Great Games

• AWS의 officialpythonsdk

• Json model기반 구현

•OOP기반의 리소스 관리(일부만…) 지원

Page 29: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

292017iFunFactoryDevDay-GreatTechnologyForGreatGames-

Session Chapter 03.

Great Technology For Great Games

•인증 정보 등을 담는 자료구조

•모든 boto3api 는 session상에서 통신

Page 30: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

302017iFunFactoryDevDay-GreatTechnologyForGreatGames-

Resource Chapter 03.

Great Technology For Great Games

•Objectoriented, 고수준 인터페이스

• Aws상의 자원에 대응

• Ec2instance,VPC,Subnet….

Page 31: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

312017iFunFactoryDevDay-GreatTechnologyForGreatGames-

CollectoinChapter 03.

Great Technology For Great Games

• Resource들의 묶음

•보통 resource에서 관련있는 resource관리용으로 사용

•메소드들은 Chain형태로 사용 가능

Page 32: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

322017iFunFactoryDevDay-GreatTechnologyForGreatGames-

WaiterChapter 03.

Great Technology For Great Games

• Resource의 상태가 변경될 때까지 block

•순차적으로 실행되어야 하는스크립트작성 등의 경우에 유용

Page 33: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

332017iFunFactoryDevDay-GreatTechnologyForGreatGames-

ClientChapter 03.

Great Technology For Great Games

•저수준 api•모든 AWSAPI 사용 가능

Page 34: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

342017iFunFactoryDevDay-GreatTechnologyForGreatGames-

구성도Chapter 03.

Great Technology For Great Games

Page 35: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

352017iFunFactoryDevDay-GreatTechnologyForGreatGames-

TaggingChapter 03.

Great Technology For Great Games

•리소스 별로 key의종류가 다름• Id• name

• Tagging활용추천•한 타입의 리소스를여러개관리할 때편리

• Tagging지원하지않는 리소스도 있음

Page 36: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

362017iFunFactoryDevDay-GreatTechnologyForGreatGames-

Endpoint 관리Chapter 03.

Great Technology For Great Games

•각호스트에 aws api 설치

• ElasticIP 등 다른 리소스활용

•접속 정보를 파일에 기록각머신에 전송

Page 37: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

372017iFunFactoryDevDay-GreatTechnologyForGreatGames-

VPC 생성Chapter 03.

Great Technology For Great Games

•보안 설정을위해 별도 생성권장

•기본적으로외부에서 접근 불가

•의존성 있는 리소스가 많아 관리 어려움

Page 38: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

382017iFunFactoryDevDay-GreatTechnologyForGreatGames-

VPC 생성Chapter 03.

Great Technology For Great Games

•외부 접근허용위해 다음작업 필요

• Internetgateway생성 및붙임

• Routingtable에 Internetgateway추가

• Securitygroup에 정책추가 후연동

Page 39: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

392017iFunFactoryDevDay-GreatTechnologyForGreatGames-

Chapter 03.

Great Technology For Great Games

Page 40: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

402017iFunFactoryDevDay-GreatTechnologyForGreatGames-

Chapter 03.

Great Technology For Great Games

Page 41: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

412017iFunFactoryDevDay-GreatTechnologyForGreatGames-

남은 과제Chapter 03.

Great Technology For Great Games

•보안 설정•데모 버전은 모든 서비스가열려 있음

•저장소 공간•게임 로그등을남기려면저장소 변경 필요

•비용• Aws 비용계산시 사용시간은 올림계산

Page 42: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

42

Great�Technology�For�Great�GamesGreat�Technology�For�Great�Games

Q&A

Page 43: Python과 AWS를 이용하여 게임 테스트 환경 구축하기

2017iFunFactoryDevDay-GreatTechnologyForGreatGames-

iFunFactory Development Teams

[email protected]

www.ifunfactory.com

+82-70-4923-6566

THANKS!Grea t Techno l ogy Fo r G r ea t Games , i FunFac t o r y