ݺߣ

ݺߣShare a Scribd company logo
2017	iFunFactory	Dev	Day
-Great	Technology	For	Great	Games-
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
2017	iFunFactory	Dev	Day
-Great	Technology	For	Great	Games-
01 왜 클라우드인가?
Flexibility for a wide range of games
32017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
게임 테스트
Chapter 01.
Great Technology For Great Games
42017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
게임 테스트
Chapter 01.
Great Technology For Great Games
• 재미 테스트
• 정말 게임이 재미있나
• 기능 테스트
• 기획한 대로, 버그 없이 만들어졌나
• 부하/스트레스 테스트
• 서비스할 만한 성능이 되나
52017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
부하 테스트
Chapter 01.
Great Technology For Great Games
• 서버 스펙이 얼마나 좋아야 하나
• 최대 동접이 몇 명인가
• 동접(요청) 증가에 따른 상태 변화는?
62017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
부하 테스트
Chapter 01.
Great Technology For Great Games
게임 서버
더미 클라이언트
72017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
부하 테스트
Chapter 01.
Great Technology For Great Games
클라우드에서
서비스 할 것도
아닌데…
그냥
사무실에서
하면
안 되나요?
82017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
부하 테스트
Chapter 01.
Great Technology For Great Games
하지만…
92017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
부하 테스트
Chapter 01.
Great Technology For Great Games
게임 서버
더미 클라이언트
102017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
부하 테스트용 서버
Chapter 01.
Great Technology For Great Games
• 스펙 좋은 서버 머신 필요
• 다양한 스펙의 머신 필요
• 다수의 머신 필요
112017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
부하 테스트
Chapter 01.
Great Technology For Great Games
게임 서버
더미 클라이언트
122017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
더미 클라이언트
Chapter 01.
Great Technology For Great Games
• 코어 많은 머신 필요
• Nic 가 좋은 머신 필요
• 많은, 더 많은 머신 필요
132017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
부하 테스트
Chapter 01.
Great Technology For Great Games
게임 서버
더미 클라이언트
142017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
네트워크
Chapter 01.
Great Technology For Great Games
• 회선/사무실 라우터가 병목이 될 수도
• Bandwidth
• 라우터의 전송 속도
• 사무실 내 네턱 속도 저하로 인한 갈굼
152017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
유지 비용 문제
Chapter 01.
Great Technology For Great Games
• 성능 좋은 장비들이 필요
• 성능 좋은 장비들이 많이 필요
162017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
질러라?
Chapter 01.
Great Technology For Great Games
172017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
효율성
Chapter 01.
Great Technology For Great Games
성능 좋은(=비싼) 장비가
많이 필요하지만
항상 필요한 건 아님
182017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
왜 클라우드인가
Chapter 01.
Great Technology For Great Games
필요한 리소스를
필요한 때에 사용하고
사용한 만큼만 지불
2017	iFunFactory	Dev	Day
-Great	Technology	For	Great	Games-
02
왜
AWS
Python
인가?
Flexibility for a wide range of games
202017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
부하 테스트
Chapter 02.
Great Technology For Great Games
• 큰 데이터를 전송해야 하는 경우가 있음
• 로그
• 디비 덤프
• 기타 메타데이터
국내 데이터센터가 존재하는 서비스를 사용
212017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
API/SDK
Chapter 02.
Great Technology For Great Games
• 인스턴스 컨트롤 자동화에 필요
• 대부분 REST	API 만 제공
• REST	API는 요청생성, 응답 파싱이 어려움
• SDK	를 제공하는 서비스 사용
222017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
Amazon RDS
Chapter 02.
Great Technology For Great Games
• AMAZON	Relational	Database	Service
• RDBMS	를 서비스 형태로 제공
• 스냅샷 생성, 자동 백업 등의 기능 제공
232017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
Amazon Elasticache
Chapter 02.
Great Technology For Great Games
• In-memory	메모리 스토리지
• Memcached,	Redis 사용 가능
• 운영 및 안정성 확보에 필요한 기능 제공
• 스냅샷 생성 및 백업
• 샤딩
242017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
부하 테스트
Chapter 02.
Great Technology For Great Games
테스트
용도로
쓸모가
있나요?
252017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
RDS/Elasticache
Chapter 02.
Great Technology For Great Games
• 별도의 설치과정 없이 사용 가능
• 모니터링 기능 지원
262017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
왜 Python인가
Chapter 02.
Great Technology For Great Games
2017	iFunFactory	Dev	Day
-Great	Technology	For	Great	Games-
03AWS 상에 Boto3 로
테스트 환경 만들기
Flexibility for a wide range of games
282017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
Boto3
Chapter 03.
Great Technology For Great Games
• AWS	의 official	python	sdk
• Json model	기반 구현
• OOP	기반의 리소스 관리(일부만…) 지원
292017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
Session
Chapter 03.
Great Technology For Great Games
• 인증 정보 등을 담는 자료구조
• 모든 boto3	api 는 session	상에서 통신
302017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
Resource
Chapter 03.
Great Technology For Great Games
• Object	oriented, 고수준 인터페이스
• Aws	상의 자원에 대응
• Ec2	instance,	VPC,	Subnet….
312017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
Collectoin
Chapter 03.
Great Technology For Great Games
• Resource들의 묶음
• 보통 resource에서 관련있는 resource	
관리용으로 사용
• 메소드들은 Chain	형태로 사용 가능
322017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
Waiter
Chapter 03.
Great Technology For Great Games
• Resource의 상태가 변경될 때까지 block
• 순차적으로 실행되어야 하는
스크립트 작성 등의 경우에 유용
332017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
Client
Chapter 03.
Great Technology For Great Games
• 저수준 api
• 모든 AWS	API 사용 가능
342017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
구성도
Chapter 03.
Great Technology For Great Games
352017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
Tagging
Chapter 03.
Great Technology For Great Games
• 리소스 별로 key	의 종류가 다름
• Id
• name
• Tagging	활용 추천
• 한 타입의 리소스를 여러 개 관리할 때 편리
• Tagging	지원하지 않는 리소스도 있음
362017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
Endpoint 관리
Chapter 03.
Great Technology For Great Games
• 각 호스트에 aws api 설치
• ElasticIP 등 다른 리소스 활용
• 접속 정보를 파일에 기록
각 머신에 전송
372017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
VPC 생성
Chapter 03.
Great Technology For Great Games
• 보안 설정을 위해 별도 생성 권장
• 기본적으로 외부에서 접근 불가
• 의존성 있는 리소스가 많아 관리 어려움
382017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
VPC 생성
Chapter 03.
Great Technology For Great Games
• 외부 접근 허용 위해 다음 작업 필요
• Internet	gateway	생성 및 붙임
• Routing	table 에 Internet	gateway	추가
• Security	group	에 정책 추가 후 연동
392017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
Chapter 03.
Great Technology For Great Games
402017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
Chapter 03.
Great Technology For Great Games
412017	iFunFactory	Dev	Day		-Great	Technology	For	Great	Games-
남은 과제
Chapter 03.
Great Technology For Great Games
• 보안 설정
• 데모 버전은 모든 서비스가 열려 있음
• 저장소 공간
• 게임 로그등을 남기려면 저장소 변경 필요
• 비용
• Aws 비용 계산 시 사용 시간은 올림계산
42
Great Technology For Great GamesGreat Technology For Great Games
Q&A
2017	iFunFactory	Dev	Day
-Great	Technology	For	Great	Games-
iFunFactory Development Teams
michaelmin@ifunfactory.com
www.ifunfactory.com
+82-70-4923-6566
THANKS!Gr ea t Tec hn o l o gy F o r Gr ea t Ga mes , i F u n F a c t o r y

More Related Content

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