More Related Content
PDF
게임사를 위한 Amazon GameLift 세션 - 이정훈, AWS 솔루션즈 아키텍트 PPTX
AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3 PDF
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev... PDF
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016 PDF
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ... PDF
AWS for Games - 게임만을 위한 AWS 서비스 길라잡이 (레벨 200) - 진교선, 솔루션즈 아키텍트, AWS ::: Game... PDF
실시간 스트리밍 분석 Kinesis Data Analytics Deep Dive PDF
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017 What's hot
PDF
[2017 AWS Startup Day] AWS 비용 최대 90% 절감하기: 스팟 인스턴스 Deep-Dive PDF
Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링 PDF
7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :... PDF
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오... PDF
Amazon SageMaker 모델 배포 방법 소개::김대근, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스페셜 웨비나 PDF
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈 PDF
AWS를 활용해서 글로벌 게임 런칭하기 - 박진성 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021 PPTX
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017 PDF
금융 회사를 위한 클라우드 이용 가이드 – 신은수 AWS 솔루션즈 아키텍트, 김호영 AWS 정책협력 담당:: AWS Cloud Week ... PDF
[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by... PDF
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나 PDF
Amazon GameLift – 김성수 (AWS 솔루션즈 아키텍트) PDF
Amazon Game Services - GameLift, GameSparks (김병수 솔루션즈 아키텍트, AWS) :: Gaming on... PPTX
글로벌 기업들의 효과적인 데이터 분석을 위한 Data Lake 구축 및 분석 사례 - 김준형 (AWS 솔루션즈 아키텍트) PDF
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기::이창수::AWS Summit Seoul 2018 PDF
AWS로 게임의 공통 기능 개발하기! - 채민관, 김민석, 한준식 :: AWS Game Master 온라인 세미나 #2 PDF
게임의 성공을 위한 Scalable 한 데이터 플랫폼 사례 공유 - 오승용, 데이터 플랫폼 리더, 데브시스터즈 ::: Games on AW... PDF
대용량 데이터레이크 마이그레이션 사례 공유 [카카오게임즈 - 레벨 200] - 조은희, 팀장, 카카오게임즈 ::: Games on AWS ... PDF
AWS BlackBelt AWS上でのDDoS対策 PDF
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀... Similar to 아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
PDF
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지 PDF
AWS 관리형 서비스를 중심으로 한 NCSOFT 와 Reality Reflection의 클라우드 사용기 - AWS Summit Seoul ... PPTX
PPTX
[넥슨토크] 모바일게임 하이브 런칭기 (2018) PPTX
[Games on AWS 2019] 오전 강연 | 새로운 게임을 준비하며 아쉬웠던 2% 를 채워줄 AWS 의 서비스와 기능 업데이트 - 안... PDF
iFunEngine: 30분 만에 게임 서버 만들기 PDF
간단한 게임을 쉽고 저렴하게 서비스해보자! ::: AWS Game Master 온라인 시리즈 #1 PDF
PDF
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프 PDF
모바일 게임을 만들기 위한 AWS 활용 고군분투기::최용호::AWS Summit Seoul 2018 PDF
MMOG Server-Side 충돌 및 이동처리 설계와 구현 PPTX
[AWS Summit 2018] 모바일 게임을 만들기 위한 AWS 고군분투기 PPTX
PDF
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver) PDF
스마일게이트 서버개발캠프 - SERCLE - Final Fiction PPTX
[AWSKRUG] 모바일게임 하이브 런칭기 (2018) PPTX
PDF
NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기 PPSX
[NDC 2017] 이카루스 북미 : 베타서비스 활용법 PDF
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019 More from Amazon Web Services Korea
PDF
[D3T1S01] Gen AI를 위한 Amazon Aurora 활용 사례 방법 PDF
[D3T1S06] Neptune Analytics with Vector Similarity Search PDF
[D3T1S03] Amazon DynamoDB design puzzlers PDF
[D3T1S04] Aurora PostgreSQL performance monitoring and troubleshooting by use... PDF
[D3T1S07] AWS S3 - 클라우드 환경에서 데이터베이스 보호하기 PDF
[D3T1S05] Aurora 혼합 구성 아키텍처를 사용하여 예상치 못한 트래픽 급증 대응하기 PDF
[D3T1S02] Aurora Limitless Database Introduction PDF
[D3T2S01] Amazon Aurora MySQL 메이저 버전 업그레이드 및 Amazon B/G Deployments 실습 PDF
[D3T2S03] Data&AI Roadshow 2024 - Amazon DocumentDB 실습 PDF
AWS Modern Infra with Storage Roadshow 2023 - Day 2 PDF
AWS Modern Infra with Storage Roadshow 2023 - Day 1 PDF
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ... PDF
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ... PDF
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev... PDF
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci... PDF
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A... PDF
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::... PDF
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal... PDF
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance... PDF
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,... 아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
- 1.
- 2.
- 3.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
잠시 생각해 봅시다…
- 4.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
멀티 플레이어 게임의
서버 확장(Scaling) 문제는 어렵습니다.
- 5.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
Amazon GameLift는 멀티 플레이어 게임의
서버 확장/축소를 손쉽게 가능하게 합니다.
- 6.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
일반적인 주간 서버 사용량 그래프
서버사용량
시간
- 7.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
서버 확충 실패
서버사용량
시간
확보된 서버가 커버하는 부분
게임 못하는 플레이어들
(대기열 발생만큼의 수익 감소)
- 8.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
너무 많은 서버 선투자 비용
서버사용량
시간
미리 확보한 서버가 커버
낭비되는 비용
- 9.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
GameLift의 탄력적 스케일링
서버사용량
시간
Wasted $
Auto-scaling을 통한
비용 최적화가 가능
- 10.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
Amazon GameLift
• 세션형 멀티플레이어 게임 호스팅을 위한
관리형 플랫폼
• 플레이어의 상황에 따라 자동으로
스케일링(Scale In/Out)
• 전세계적으로 저 지연의(low-latency) 사용자
경험 제공
• 중단(downtime)없는 게임 서버 업데이트
지원
• 선 투자 비용 없이 사용한 만큼만 지불
- 11.
- 12.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
인기 있는 멀티플레이어 게임의 상당수는 세션형
Gametrics 지표 예
MMOG
Session-based
- 13.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
설계 및 아키텍팅
프로토타입 제작을 통한 검증
라이브 서비스를 위한 안정화
환경 설정 및 통계 분석용 UI 구성
서비스 Launch
24/7 운영 책임 (coverage)
$
아래 기능 구현 및 작업에는 많은 시간이 소요됨
스케일링 기능에 대한 각종 디버깅 운영 비용 최적화$
- 14.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
수분 내에 바로 시작 가능
서버 App
업로드
Fleet
설정
Scale 정책
적용
Play
1 2 3 4
- 15.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
GameLift와 게임 엔진 Lumberyard와의
관계는 대체 무엇입니까?
- 16.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
Lumberyard 구성
Lumberyard의 주요 구성 요소
• CryEngine 3.8 기반
• Twitch 통합
• Double Helix Physics Engine
• GridMate
• 새롭게 적용된 네트워크 엔진
• 서버로 사용 가능
• 손쉽게 GameLift에 올려서 사용 가능
– (주의!) GameLift와 의존성 없음
Lumberyard 및 GridMate는 GameLift와 직접적인 의존성 없음
- 17.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
GridMate?
그 전에 게임 루프 부터…
Inputs
Simulate
Render
Wait
States
events
State State State
Time
- 18.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
GridMate의 Replica Framework
네트워크 상에서의 복제를 통한 객체간 동기화
Inputs
Simulate
Render
Wait
States
Inputs
Simulate
Render
Wait
States
Compare Compare
exchange
- 19.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
GridMate 좀 더 자세히
원격 복제를 지원하는 크로스플랫폼 네트워크 라이브러리
메시지 전송
• 신뢰/비신뢰 모드의 전송 API
1
복제
• 네트워크 상에서의 원격지 복제본(replicas) 지원
• 하나의 노드가 복제본을 소유하고 나머지 노드는
프록시(proxy)를 보는 구조
• 복제본은 데이터를 포함하고 RPC 수행 가능
2
세션 관리
• 게임 세션(방)을 열고, 검색하고 참여할 수 있는 API
• 콘솔 게임기, 모바일 장치, PC와의 통합 지원
3
특징
• Killer Instinct를 포함한 더블 헬릭스의 다양한
게임에서 사용됨
• 다양한 플랫폼 지원: Windows, Xbox One, PS4,
Android and iOS
• 모듈화된 프레임워크로 타 플랫폼으로의 확장이 용이
• 복제본간 다양한 동기화 기능 제공
• RMI 사용시구버전과의 호환기능 제공
• 네트워크 테스트 및 시뮬레이션을 위한 RTT 변경,
패킷 손실 등의 다양한 기능 제공
- 20.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
다시 원래 주제인 GameLift로…
(Deep Dive)
- 21.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
Build
개발자가 작성한
서버 바이너리
GameLift로
Upload
빌드
- 22.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
Fleet
빌드가 배포된
상태
플레이어가
접속하는 대상
플릿
다수의 EC2
인스턴스
- 23.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
Fleet Overview
Game Server
Processes
EC2 Instance EC2 Instance
Build
개발자 PlayersFleet
Game Server
Processes
- 24.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
게임 세션 1
Player slot 1
Player slot 2
Player slot 3
Player slot 4
Active
Active
게임 세션 2
Player slot 1
Player slot 2
Player slot 3
Player slot 4
Active
Active
Active
Active
게임 세션 N
Player slot 1
Player slot 2
Player slot 3
Player slot 4
Reserved
서버 프로세스 서버 프로세스 서버 프로세스
EC2 Instance EC2 Instance EC2 Instance
Build
개발자 Players
게임 세션 관리
게임 서버 프로세스 관리
- 25.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
GameLift 사용법
AWS CLI
빌드 업로드
플릿 설정
및 생성
게임
클라이언트
접속
적합한
게임 세션
검색
1 2 3 4
다양한 종류의 게임 세션 검색(매칭) 기능 제공
(빈 방여부, 오래된 순서 정렬, 플레이어 상태 등)
- 26.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
빌드 업로드
• 게임 서버 실행 파일 및 부속 폴더를 한군데 모아두고
• AWS CLI를 사용하여 GameLift에 업로드
aws gamelift upload-build --name <빌드이름> --build-root <폴더> --operating-system
<WINDOW_2012 또는 AMAZON_LINUX> --region <리전>
- 27.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
플릿 설정
• EC2 인스턴스 타입 지정
• 실행 파일 이름, 명령 파라미터, 프로세스 수 지정
• 열어둘 포트, 프로토콜 종류, 허용 IP 대역 지정
• Auto-Scaling 정책 설정
- 28.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
- 29.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
- 30.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
플릿 생성
• 상태변경 순서: Downloading Validating Activating Active
• Active 상태가 되면 클라이언트로 부터 접속을 받을 수 있음
- 31.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
GameLift API 상호작용
게임 서버
(배포된 빌드)
GameLift
서비스
게임 클라이언트
APP
AWS SDK
GameLift Client API
(HTTPs req/res)
- 32.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
- 33.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
- 34.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
GameLift Server SDK
• 게임 서버에 적용
• C++ 전용
• Windows Server 및 Amazon Linux 지원
• https://aws.amazon.com/ko/gamelift/getting-started/
• [참고] GameLift Client API
• 기존의 AWS SDK 그대로 사용
• 다양한 언어 사용 가능: C++, C#, Java, Python, …
• Unity3D 엔진 전용 SDK 곧 출시
• Xbox Live 및 PlayStation용 미들웨어 곧 출시
- 35.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
GameLift Tips
• 게임 서버의 로그 및 메모리 덤프 파일
• 플릿상에서 동작하는 게임 서버에 대한 디버깅에 용이
• How-to
• 빌드 업로드시 logs 하위 폴더를 같이 업로드
• 각종 Text 로그 및 Dump파일은 logs 폴더에 남기도록 구현
• AWS 관리 콘솔에서 logs폴더의 내용을 모두 받을 수 있음
- 36.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
• 인증처리
• 게임 클라이언트가 호출하는 GameLift API에 대한 인증
체계를 부여할 수 있음
• AWS IAM 적용 가능
• 구글 ID, 페이스북 ID등을 통한 Web Federation 지원
• OpenID Connect (OIDC) 및 SAML 2.0 호환
• Amazon Cognito 사용 가능
• 플릿 인스턴스에 커스텀 프로그램 설치
• 게임서버 프로세스 실행 전에 의존성이 있는 프로그램 설치 가능
• Windows는 install.bat, Linux는 install.sh에 스크립팅
• 빌드 업로드시 같이 포함
- 37.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
GameLift 운영
Web기반의 UI를 통한 운영
• API로도 제어 가능
• 각종 성능 지표 모니터링
• 스케일링 상황 모니터링
• 게임 서버에서 발생하는 이벤트 확인
• 게임 세션 및 플레이어 세션 정보 확인
• ALIAS 기능을 통한 무중단 배포 가능
- 38.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
스케일링 상태 시각화
- 39.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
게임 세션 및 플레이어 세션 상태 확인
- 40.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
별명(ALIAS) 기능을 이용한 무중단 배포
ALIAS
• Fleet에 대한 별칭을 부여할 수 있는 기능: 일종의 링크
• 게임 클라이언트가 Fleet ID를 몰라도 Alias를 통해 접근 가능
Developer New Players
Build A Fleet A Alias Client
- 41.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
새로운 업데이트 배포 과정
New Players
Build A Fleet A Alias Client
Developer
Fleet BBuild B
- 42.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
ALIAS 변경을 통해 새로 업데이트된 플릿 지정
New Players
Build A Fleet A Client
Developer
Fleet BBuild B
Alias
- 43.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
GameLift 어떠신가요?
자, 그럼 바로 사용해 보세요.
- 44.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
GameLift는 곧 9개 리전으로 확대 적용
지역간 Latency 최소화!
- 45.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
Free Tier 제공
무료로 테스트 해 볼 수 있음
• c3.large 인스턴스 타입으로 125시간 무료
• https://console.aws.amazon.com/gamelift/
• 빠르게 테스트해볼 수 있는 샘플 게임 제공
• Amazon GameLift의 Sample Game 항목
• 물리 기반의 8인용 축구 게임
- 47.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
DEMO
(with Sample Code)
- 48.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
데모 시나리오
GameLift FleetDummyClients
(다수의 더미 플레이어 세션)
Player sessions
Viewer
(Cocos2d-x client)
- DummyClients
게임 세션을 만들고 다수의 플레이어를 투입
더미 플레이어들은 주위를 정처 없이(?) 랜덤 로밍
- Viewer
Cocos2d-x로 만들어진 간단한 게임 클라이언트
실제로 이 상황을 확인할 수 있는 프로그램으로 시각화용
https://github.com/zeliard/GameLift
- 49.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
Viewer
플레이어
로밍하는
더미 플레이어
- 50.
© 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
감사합니다