SlideShare una empresa de Scribd logo
1 de 68
Descargar para leer sin conexión
AWS로 글로벌 게임 런칭하기
장르별 아키텍처
김일호 ilho@amazon.com
Solutions Architect
Multiplayer Game architecture on AWS
(MMORPG, FPS)
Source: http://media.rockstargames.com/rockstargames/img/global/news/upload/actual_1337120726.jpg
Why difficult?
•  Launch global…
•  Single DB? Cross-region copy data?
•  How to scale?
•  Latency…
•  Availability..
•  Agility…
•  Cost effective…
Average Network Latency
http://bit.ly/superdata-latency, See http://bit.ly/verizon-latency
N.America
41.7ms
Europe to Asia
137.9ms
Asia Pacific
97.9ms
Trans-Pacfic
103.8ms
Trans-Atlantic
79.6ms
Latin America
133.2ms
Europe
11.6ms
Japan
16.8ms
Oregon' Beijing'
Tokyo'
Singapore'
Ireland'
GovCloud'
Northern'
California' Sydney'
São'Paulo'
N.Virginia'
Frankfurt'
AWS Global Infrastructure
Run Game Servers Locally ???
Do not build a big cross-world mesh!
###+ms
###+ms
##+ms
###+ms
Run Game Servers Locally !!!
What should we do?
•  Game servers near players
•  Why?
1.  Low latency
2.  Play with friends
3.  When traveling…
go sightseeing~ !
https://gigaom.com/wp-content/uploads/sites/1/2012/10/jason-server-hug.jpeg?
quality=80&strip=all
What should we do?
•  Everything else as HTTP APIs
•  Why?
1.  Login
2.  Friends list
3.  Leaderboard
4.  Inventory
5.  IAP
6.  etc
What should we do?
•  Data replication is not a good idea
•  Why?
1.  Fragile architecture
2.  High Latency
3.  Replicate all data in regions…? "
4.  Dependency on other region
What should we do?
•  Local caches is a good idea.
•  Why?
1.  Caching hot data
2.  No data replication
3.  Low latency
What should we do?
•  Nobody really “plays everywhere”
What should we do?
•  Nobody really “plays everywhere”
Architecture is decoupled
Loosely Coupled Pods (API Pod)
Virginia
HTTP
Loosely Coupled Pods (Game Server Pods)
Tokyo
Oregon
 Frankfurt
Virginia
HTTP
TCP / UDP
TCP / UDP
TCP / UDP
VPC Subnet
VPC Subnet
Game API Pods
Availability Zone A
 Availability Zone B
VPC Subnet
VPC Subnet
Auto Scaling group
WEB
VPC Subnet
WEB
JOBS
Cognito
SNS Mobile
Push
SES
Other
Pods
Game API Pods
VPC Subnet
VPC Subnet
Availability Zone A
 Availability Zone B
VPC Subnet
VPC Subnet
Auto Scaling group
WEB
VPC Subnet
WEB
JOBS
Cognito
SNS Mobile
Push
SES
VPC Subnet
VPC Subnet
Availability Zone A
 Availability Zone B
VPC Subnet
VPC Subnet
Auto Scaling group
WEB
VPC Subnet
WEB
JOBS
Cognito
SNS Mobile
Push
SES
VPC Subnet
VPC Subnet
Availability Zone A
 Availability Zone B
VPC Subnet
VPC Subnet
Auto Scaling group
WEB
VPC Subnet
WEB
JOBS
Cognito
SNS Mobile
Push
SES
Region
  Login via HTTP API
  Download Game Assets
  Matchmaking to Game Server
EC2
Game Flow
EC2
EC2
Region
  Login via HTTP API
  Download Game Assets
  Matchmaking to Game Server
  Connect to Server
  Hack Apart Your Friends
  Game Over
Game Flow
EC2
EC2
Region
  Login via HTTP API
  Download Game Assets
  Matchmaking to Game Server
  Connect to Server
  Hack Apart Your Friends
  Game Over
  Write via HTTP API
Game Flow
EC2
EC2
VPC Private Subnet
VPC Public Subnet
Game Server Pods
Availability Zone A
 Availability Zone B
VPC Public Subnet
VPC Private Subnet
GAME GAME GAME GAME GAME GAME
VPC Private Subnet
 VPC Private Subnet
RabbitMQ + Elastic Load Balancing
Availability Zone A
 Availability Zone B
10.1.0.13 10.2.0.16
TCP 5672
rabbitmq-node1 rabbitmq-node2
TCP 4369
& 25672
RabbitMQ + Elastic Load Balancing
•  Clustering Tutorial
https://www.rabbitmq.com/clustering.html
•  Set Queue HA policy to "all"
https://www.rabbitmq.com/ha.html
•  Create Internal load balancer
–  Listen Port: TCP 5672
•  VPC Security Group
–  For load balancer: TCP 5672
–  Between EC2 nodes: TCP 4369 & 25672
•  Set up Client to Heartbeat
VPC Private Subnet
 VPC Private Subnet
SQS for critical data (purchasing, voucher)
Availability Zone A
 Availability Zone B
10.1.0.13 10.2.0.16
TCP 5672
rabbitmq-node1 rabbitmq-node2
TCP 4369
& 25672
VPC Private Subnet
VPC Public Subnet
Redis Pub / Sub
Availability Zone A
 Availability Zone B
VPC Public Subnet
VPC Private Subnet
GAME GAME GAME GAME GAME GAME
Auto Scaling group
VPC Private Subnet
VPC Public Subnet
CloudFormation + Chef
Availability Zone A
GAME GAME GAME
Auto Scaling group
CloudFormation
Use CloudFormation to create a
template for your complete
regional environment
VPC Private Subnet
VPC Public Subnet
Availability Zone A
 Availability Zone B
VPC Public Subnet
VPC Private Subnet
Region
GAME GAME GAME GAME GAME GAME
Redis Redis
JSON Format, which can be but
into source control repositories
Where My Servers At?
Tokyo
Oregon
Frankfurt
Virginia
?
?
VPC Subnet
Server Registration
Availability Zone A
 Availability Zone B
VPC Subnet
Region
Auto Scaling group
WEB WEB
Oregon
Tokyo
VPC Subnet
Cleanup Loop for
unhealthy server
Launch new game
pods via the
CloudFormation
template
JOBS
Health Flag
Server Registration & Scaling
•  HTTPS POST /api/servers/register
•  Include an HMAC (RFC 2104) and custom salt for
the payload
•  Send Server Status
–  Public IP
–  # Players
–  Game Modes
•  Matchmaking Service
–  Maintains server list
–  Removes servers
Example of Web API Call
API Request: Response from Web Services:
POST https://api.coolgame.com/Client/
Matchmake
Content-Type: application/json;
X-Authentication: 7BC920BC255F7E60-0-0-5F4
{
"BuildVersion": "5.01",
"Region": "USCentral", "GameMode": "0",
"LobbyId": "Lobby 32",
"EnableQueue": false
}
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"LobbyID": "Lobby 32",
"ServerHostname": "192.168.0.1",
"ServerPort": 7777,
"Ticket": "e98yf289f248902f4904f0924f9pj",
"Status": "Waiting",
"Queue": [
"User1",
"User2"
]
}
Scaling Game Servers
•  Monitor Server
Capacity
•  Launch new ones via
Amazon EC2 API or
CloudFormation
•  Choose Server
•  Drain Players
•  Terminate
Auto-Scaling of AWS cannot be used
unless game state is centralized
Mini Pods Everywhere
China
Oregon
Frankfurt
Virginia
China
Leaderboard
Collecting logs to AWS
VPC Private Subnet
VPC Public Subnet
Game Server Logs
Availability Zone A
S3 Bucket
Amazon CloudWatch Logs
GAME GAME GAME
VPC Private Subnet
VPC Public Subnet
Game Server Logs
Availability Zone A
Amazon

Kinesis
S3 Bucket
Amazon Redshift
GAME GAME GAME
Launching Unreal Engine on AWS
Unreal Engine with AWS CloudFormation
UnrealServer
unreal_linux.template.json
true
my-bucket-name
Unreal-123.zip
sshkeyname
1.2.3.4/24
MyPass123
Multiplayer game servers
  Login via API
  Request matchmaking
  Get game server IP
Region
Multiplayer game servers
  Login via API
  Request matchmaking
  Get game server IP
  Connect to server
  Pull down assets
  Other players join
Region
EC2 API
Mobile(Casual) architecture on AWS
Source: https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcRFQsdG7ZfogqADpduT3PHbvajBQkjpPVE1_W6j8h3ztfHkV3iO
Big picture slide
Core Game Backend
ELB
S3
•  Choose Region
•  Elastic Load Balancer
•  Two Availability Zones
•  EC2 for App
•  RDS Database
•  Multi-AZ
•  S3 for Game Data
•  Assets
•  UGC
•  Analytics
Region
Scale It Way Out
CloudFront
CDN
ELB
S3
EC2EC2EC2
Region
•  Auto Scaling Group
•  Capacity on Demand
•  Respond to Users
•  ElastiCache
•  Memcache
•  Redis
•  CloudFront CDN
•  DLC, Assets
•  Game Saves
•  UGC
Beanstalk saves your time!
ELB
S3
•  Beanstalk Manages
•  ELB
•  EC2
•  Auto Scaling
•  Monitoring
•  RDS
•  Add Other Services
•  S3
•  CloudFront
•  ElastiCache
•  SNS
EC2
Elastic Beanstalk Container
EC2
CloudFront
CDN
More CLI bell
cd#MyGameAPI#
#
eb#init#
eb#start#
#
vi#app.rb#
require#'sinatra'#
get#'/hello.json'#do#
##{message:#"Hello#World!"}#
End#
#
git#commit#–m#"app#updates"#app.rb#
git$aws.push$
•  Initialize everything
•  Write code
•  Commit to git
•  Push to Beanstalk
•  Coffee / Beer
•  Repeat
Region
Writing Is Painful
Availability
Zone A
Availability
Zone B
S3
EC2
•  Games are Write Heavy
•  Caching of Limited Use
•  Key Value Key Value
•  Binary Structures
•  Database = Bottleneck
ELB
EC2
CloudFront
CDN
Sharding
Availability
Zone A
C2
Sharding is tough to operate
Source: http://keithburgun.net/wp-content/uploads/2013/03/1565.1276479-difficulty_doom_super.png-610x0.png
DynamoDB
Availability
Zone A
Availability
Zone B
S3
•  NoSQL Data Store
•  Fully-Managed
•  Highly Available
•  PUT/GET Keys
•  Secondary Indexes
•  Provisioned Throughput
•  Auto Scaling
EC2 EC2
ELB
CloudFront
CDN
Elastic Beanstalk Container
Leaderboard in DynamoDB
•  Hash key = Primary key
•  Range key = Sub key
•  Others attributes are
unstructured, unindexed
•  So… How to sort based
on Top Score?
Leaderboard with Secondary Indexes
•  Create a secondary index!
•  Set hash key to Game Level
•  Set range key to Top Score
•  Can now query by Level,
Sorted by Top Score
•  Handles any (sane) gaming
use case
Summary
•  Decouple Game Servers from APIs
•  Create local mini pods
•  Create Matchmaking APIs to point user to game pod
•  Replicate asynchronously to avoid high latency
•  Use Managed services
–  DynamoDB
–  RDS
–  S3/CloudFront
–  ElastiCache
Gaming on AWS, Korea

Más contenido relacionado

La actualidad más candente

홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
devCAT Studio, NEXON
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
devCAT Studio, NEXON
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
QooJuice
 
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
devCAT Studio, NEXON
 

La actualidad más candente (20)

[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
 
게임 디자이너와 게임 서버
게임 디자이너와 게임 서버게임 디자이너와 게임 서버
게임 디자이너와 게임 서버
 
게임사를 위한 Amazon GameLift 세션 - 이정훈, AWS 솔루션즈 아키텍트
게임사를 위한 Amazon GameLift 세션 - 이정훈, AWS 솔루션즈 아키텍트게임사를 위한 Amazon GameLift 세션 - 이정훈, AWS 솔루션즈 아키텍트
게임사를 위한 Amazon GameLift 세션 - 이정훈, AWS 솔루션즈 아키텍트
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
 
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
 
NoSQL 위에서 MMORPG 개발하기
NoSQL 위에서 MMORPG 개발하기NoSQL 위에서 MMORPG 개발하기
NoSQL 위에서 MMORPG 개발하기
 
AWS로 게임 런칭 준비하기 ::: 장준성, 채민관, AWS Game Master 온라인 시리즈 #4
AWS로 게임 런칭 준비하기 ::: 장준성, 채민관, AWS Game Master 온라인 시리즈 #4AWS로 게임 런칭 준비하기 ::: 장준성, 채민관, AWS Game Master 온라인 시리즈 #4
AWS로 게임 런칭 준비하기 ::: 장준성, 채민관, AWS Game Master 온라인 시리즈 #4
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
게임서버프로그래밍 #1 - IOCP
게임서버프로그래밍 #1 - IOCP게임서버프로그래밍 #1 - IOCP
게임서버프로그래밍 #1 - IOCP
 
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건
 
Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theorem
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현
 
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조
 

Destacado

게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
Amazon Web Services Korea
 
아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...
아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...
아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...
Amazon Web Services Korea
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원
NAVER D2
 
DEVIEW 2013 - Git은 어떻게 동작하는가
DEVIEW 2013 - Git은 어떻게 동작하는가DEVIEW 2013 - Git은 어떻게 동작하는가
DEVIEW 2013 - Git은 어떻게 동작하는가
NAVER D2
 

Destacado (20)

Scalable Gaming with AWS - GDC 2014
Scalable Gaming with AWS - GDC 2014Scalable Gaming with AWS - GDC 2014
Scalable Gaming with AWS - GDC 2014
 
GDC 2015 - Low-latency Multiplayer Gaming with AWS
GDC 2015 - Low-latency Multiplayer Gaming with AWS GDC 2015 - Low-latency Multiplayer Gaming with AWS
GDC 2015 - Low-latency Multiplayer Gaming with AWS
 
Untitled document
Untitled documentUntitled document
Untitled document
 
[IGC 2016] 에피드게임즈 한정현 - 런칭 후 이틀만에 전액환불 그리고 재시작
[IGC 2016] 에피드게임즈 한정현 - 런칭 후 이틀만에 전액환불 그리고 재시작[IGC 2016] 에피드게임즈 한정현 - 런칭 후 이틀만에 전액환불 그리고 재시작
[IGC 2016] 에피드게임즈 한정현 - 런칭 후 이틀만에 전액환불 그리고 재시작
 
글로벌 게임 런칭과 Cdn의 활용.pdf
글로벌 게임 런칭과 Cdn의 활용.pdf글로벌 게임 런칭과 Cdn의 활용.pdf
글로벌 게임 런칭과 Cdn의 활용.pdf
 
[GAMENEXT] 일본 모바일 시장과 주요 성공 요인(Metaps)
[GAMENEXT] 일본 모바일 시장과 주요 성공 요인(Metaps)[GAMENEXT] 일본 모바일 시장과 주요 성공 요인(Metaps)
[GAMENEXT] 일본 모바일 시장과 주요 성공 요인(Metaps)
 
NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화
NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화
NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화
 
[GAMENEXT] 성공적인 모바일 게임 런칭을 위한 전략 (Tapjoy)
[GAMENEXT] 성공적인 모바일 게임 런칭을 위한 전략 (Tapjoy)[GAMENEXT] 성공적인 모바일 게임 런칭을 위한 전략 (Tapjoy)
[GAMENEXT] 성공적인 모바일 게임 런칭을 위한 전략 (Tapjoy)
 
게임 고객 사례를 통해 살펴보는 AWS 활용 전략 :: 이경안 :: AWS Summit Seoul 2016
게임 고객 사례를 통해 살펴보는 AWS 활용 전략 :: 이경안 :: AWS Summit Seoul 2016게임 고객 사례를 통해 살펴보는 AWS 활용 전략 :: 이경안 :: AWS Summit Seoul 2016
게임 고객 사례를 통해 살펴보는 AWS 활용 전략 :: 이경안 :: AWS Summit Seoul 2016
 
소셜카지노 초기런칭 및 실험결과 공유
소셜카지노 초기런칭 및 실험결과 공유소셜카지노 초기런칭 및 실험결과 공유
소셜카지노 초기런칭 및 실험결과 공유
 
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
 
20160427 ndc16 글로벌 원빌드 모바일 게임 런칭과 라이브 개발
20160427 ndc16 글로벌 원빌드 모바일 게임 런칭과 라이브 개발20160427 ndc16 글로벌 원빌드 모바일 게임 런칭과 라이브 개발
20160427 ndc16 글로벌 원빌드 모바일 게임 런칭과 라이브 개발
 
아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...
아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...
아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...
 
AWS를 활용한 글로벌 아키텍처 운용 전략 - 김상필 솔루션즈 아키텍트:: AWS Cloud Track 2 Advanced
AWS를 활용한 글로벌 아키텍처 운용 전략 - 김상필 솔루션즈 아키텍트:: AWS Cloud Track 2 AdvancedAWS를 활용한 글로벌 아키텍처 운용 전략 - 김상필 솔루션즈 아키텍트:: AWS Cloud Track 2 Advanced
AWS를 활용한 글로벌 아키텍처 운용 전략 - 김상필 솔루션즈 아키텍트:: AWS Cloud Track 2 Advanced
 
(SEC403) Diving into AWS CloudTrail Events w/ Apache Spark on EMR
(SEC403) Diving into AWS CloudTrail Events w/ Apache Spark on EMR(SEC403) Diving into AWS CloudTrail Events w/ Apache Spark on EMR
(SEC403) Diving into AWS CloudTrail Events w/ Apache Spark on EMR
 
AWS Architecture - GDC 2014
AWS Architecture - GDC 2014AWS Architecture - GDC 2014
AWS Architecture - GDC 2014
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원
 
AWS re:Invent 2016: Moving Mission Critical Apps from One Region to Multi-Reg...
AWS re:Invent 2016: Moving Mission Critical Apps from One Region to Multi-Reg...AWS re:Invent 2016: Moving Mission Critical Apps from One Region to Multi-Reg...
AWS re:Invent 2016: Moving Mission Critical Apps from One Region to Multi-Reg...
 
DEVIEW 2013 - Git은 어떻게 동작하는가
DEVIEW 2013 - Git은 어떻게 동작하는가DEVIEW 2013 - Git은 어떻게 동작하는가
DEVIEW 2013 - Git은 어떻게 동작하는가
 
AWS re:Invent 2016| GAM401 | Riot Games: Standardizing Application Deployment...
AWS re:Invent 2016| GAM401 | Riot Games: Standardizing Application Deployment...AWS re:Invent 2016| GAM401 | Riot Games: Standardizing Application Deployment...
AWS re:Invent 2016| GAM401 | Riot Games: Standardizing Application Deployment...
 

Similar a Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심

201507131408448146
201507131408448146201507131408448146
201507131408448146
Mason Mei
 
MesosCon - Be a microservices hero
MesosCon - Be a microservices heroMesosCon - Be a microservices hero
MesosCon - Be a microservices hero
Dragos Dascalita Haut
 
White rabbit game cloud deployment architecture
White rabbit game cloud deployment architectureWhite rabbit game cloud deployment architecture
White rabbit game cloud deployment architecture
Ghazanfar Latif (Gabe)
 

Similar a Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심 (20)

Deploying a Low-Latency Multiplayer Game Globally: Loadout
Deploying a Low-Latency Multiplayer Game Globally: Loadout Deploying a Low-Latency Multiplayer Game Globally: Loadout
Deploying a Low-Latency Multiplayer Game Globally: Loadout
 
201507131408448146
201507131408448146201507131408448146
201507131408448146
 
Cloud Native 오픈소스 서비스 소개 및 Serverless로 실제 게임 개발하기
Cloud Native 오픈소스 서비스 소개 및 Serverless로 실제 게임 개발하기Cloud Native 오픈소스 서비스 소개 및 Serverless로 실제 게임 개발하기
Cloud Native 오픈소스 서비스 소개 및 Serverless로 실제 게임 개발하기
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 
C# Client to Cloud
C# Client to CloudC# Client to Cloud
C# Client to Cloud
 
(GAM402) Deploying a Low-Latency Multiplayer Game Globally: Loadout | AWS re:...
(GAM402) Deploying a Low-Latency Multiplayer Game Globally: Loadout | AWS re:...(GAM402) Deploying a Low-Latency Multiplayer Game Globally: Loadout | AWS re:...
(GAM402) Deploying a Low-Latency Multiplayer Game Globally: Loadout | AWS re:...
 
Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Deep Dive into AWS Fargate - CON333 - re:Invent 2017Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Deep Dive into AWS Fargate - CON333 - re:Invent 2017
 
PLNOG 17 - Tomasz Stachlewski - Infrastruktura sieciowa w chmurze AWS
PLNOG 17 - Tomasz Stachlewski - Infrastruktura sieciowa w chmurze AWSPLNOG 17 - Tomasz Stachlewski - Infrastruktura sieciowa w chmurze AWS
PLNOG 17 - Tomasz Stachlewski - Infrastruktura sieciowa w chmurze AWS
 
Gaming in the Cloud at Websummit Dublin
Gaming in the Cloud at Websummit DublinGaming in the Cloud at Websummit Dublin
Gaming in the Cloud at Websummit Dublin
 
Gaming in the Cloud at Websummit Dublin
Gaming in the Cloud at Websummit DublinGaming in the Cloud at Websummit Dublin
Gaming in the Cloud at Websummit Dublin
 
CON411-R - Advanced network resource management on Amazon EKS
CON411-R - Advanced network resource management on Amazon EKSCON411-R - Advanced network resource management on Amazon EKS
CON411-R - Advanced network resource management on Amazon EKS
 
AWS as platform for scalable applications
AWS as platform for scalable applicationsAWS as platform for scalable applications
AWS as platform for scalable applications
 
Arquitetura Hibrida - Integrando seu Data Center com a Nuvem da AWS
Arquitetura Hibrida - Integrando seu Data Center com a Nuvem da AWSArquitetura Hibrida - Integrando seu Data Center com a Nuvem da AWS
Arquitetura Hibrida - Integrando seu Data Center com a Nuvem da AWS
 
AWS Cloud Development Kit (CDK)를 이용한 코드 기반 인프라 개발 및 배포 - 공찬호(리얼리티매직) :: AWS C...
AWS Cloud Development Kit (CDK)를 이용한 코드 기반 인프라 개발 및 배포 - 공찬호(리얼리티매직) :: AWS C...AWS Cloud Development Kit (CDK)를 이용한 코드 기반 인프라 개발 및 배포 - 공찬호(리얼리티매직) :: AWS C...
AWS Cloud Development Kit (CDK)를 이용한 코드 기반 인프라 개발 및 배포 - 공찬호(리얼리티매직) :: AWS C...
 
MesosCon - Be a microservices hero
MesosCon - Be a microservices heroMesosCon - Be a microservices hero
MesosCon - Be a microservices hero
 
Martin Simecek, Microsoft
Martin Simecek, Microsoft	Martin Simecek, Microsoft
Martin Simecek, Microsoft
 
(GAM402) Turbine: A Microservice Approach to 3 Billion Game Requests
(GAM402) Turbine: A Microservice Approach to 3 Billion Game Requests(GAM402) Turbine: A Microservice Approach to 3 Billion Game Requests
(GAM402) Turbine: A Microservice Approach to 3 Billion Game Requests
 
6. DISZ - Webalkalmazások skálázhatósága a Google Cloud Platformon
6. DISZ - Webalkalmazások skálázhatósága  a Google Cloud Platformon6. DISZ - Webalkalmazások skálázhatósága  a Google Cloud Platformon
6. DISZ - Webalkalmazások skálázhatósága a Google Cloud Platformon
 
DockerCon EU 2015: It's in the game: the path to micro-services at Electronic...
DockerCon EU 2015: It's in the game: the path to micro-services at Electronic...DockerCon EU 2015: It's in the game: the path to micro-services at Electronic...
DockerCon EU 2015: It's in the game: the path to micro-services at Electronic...
 
White rabbit game cloud deployment architecture
White rabbit game cloud deployment architectureWhite rabbit game cloud deployment architecture
White rabbit game cloud deployment architecture
 

Más de Amazon Web Services Korea

Más de Amazon Web Services Korea (20)

AWS Modern Infra with Storage Roadshow 2023 - Day 2
AWS Modern Infra with Storage Roadshow 2023 - Day 2AWS Modern Infra with Storage Roadshow 2023 - Day 2
AWS Modern Infra with Storage Roadshow 2023 - Day 2
 
AWS Modern Infra with Storage Roadshow 2023 - Day 1
AWS Modern Infra with Storage Roadshow 2023 - Day 1AWS Modern Infra with Storage Roadshow 2023 - Day 1
AWS Modern Infra with Storage Roadshow 2023 - Day 1
 
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
 
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
 
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
 
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
 
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
 
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
 
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
 
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
 
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
 
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
 
From Insights to Action, How to build and maintain a Data Driven Organization...
From Insights to Action, How to build and maintain a Data Driven Organization...From Insights to Action, How to build and maintain a Data Driven Organization...
From Insights to Action, How to build and maintain a Data Driven Organization...
 
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
 
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
 
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
 
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
 
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
 
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
 
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심

  • 1. AWS로 글로벌 게임 런칭하기 장르별 아키텍처 김일호 ilho@amazon.com Solutions Architect
  • 2. Multiplayer Game architecture on AWS (MMORPG, FPS)
  • 3.
  • 5. Why difficult? •  Launch global… •  Single DB? Cross-region copy data? •  How to scale? •  Latency… •  Availability.. •  Agility… •  Cost effective…
  • 6. Average Network Latency http://bit.ly/superdata-latency, See http://bit.ly/verizon-latency N.America 41.7ms Europe to Asia 137.9ms Asia Pacific 97.9ms Trans-Pacfic 103.8ms Trans-Atlantic 79.6ms Latin America 133.2ms Europe 11.6ms Japan 16.8ms
  • 8. Run Game Servers Locally ???
  • 9. Do not build a big cross-world mesh! ###+ms ###+ms ##+ms ###+ms
  • 10. Run Game Servers Locally !!!
  • 11. What should we do? •  Game servers near players •  Why? 1.  Low latency 2.  Play with friends 3.  When traveling… go sightseeing~ ! https://gigaom.com/wp-content/uploads/sites/1/2012/10/jason-server-hug.jpeg? quality=80&strip=all
  • 12. What should we do? •  Everything else as HTTP APIs •  Why? 1.  Login 2.  Friends list 3.  Leaderboard 4.  Inventory 5.  IAP 6.  etc
  • 13. What should we do? •  Data replication is not a good idea •  Why? 1.  Fragile architecture 2.  High Latency 3.  Replicate all data in regions…? " 4.  Dependency on other region
  • 14. What should we do? •  Local caches is a good idea. •  Why? 1.  Caching hot data 2.  No data replication 3.  Low latency
  • 15. What should we do? •  Nobody really “plays everywhere”
  • 16. What should we do? •  Nobody really “plays everywhere”
  • 18. Loosely Coupled Pods (API Pod) Virginia HTTP
  • 19. Loosely Coupled Pods (Game Server Pods) Tokyo Oregon Frankfurt Virginia HTTP TCP / UDP TCP / UDP TCP / UDP
  • 20. VPC Subnet VPC Subnet Game API Pods Availability Zone A Availability Zone B VPC Subnet VPC Subnet Auto Scaling group WEB VPC Subnet WEB JOBS Cognito SNS Mobile Push SES Other Pods
  • 21. Game API Pods VPC Subnet VPC Subnet Availability Zone A Availability Zone B VPC Subnet VPC Subnet Auto Scaling group WEB VPC Subnet WEB JOBS Cognito SNS Mobile Push SES VPC Subnet VPC Subnet Availability Zone A Availability Zone B VPC Subnet VPC Subnet Auto Scaling group WEB VPC Subnet WEB JOBS Cognito SNS Mobile Push SES VPC Subnet VPC Subnet Availability Zone A Availability Zone B VPC Subnet VPC Subnet Auto Scaling group WEB VPC Subnet WEB JOBS Cognito SNS Mobile Push SES
  • 22. Region   Login via HTTP API   Download Game Assets   Matchmaking to Game Server EC2 Game Flow EC2 EC2
  • 23. Region   Login via HTTP API   Download Game Assets   Matchmaking to Game Server   Connect to Server   Hack Apart Your Friends   Game Over Game Flow EC2 EC2
  • 24. Region   Login via HTTP API   Download Game Assets   Matchmaking to Game Server   Connect to Server   Hack Apart Your Friends   Game Over   Write via HTTP API Game Flow EC2 EC2
  • 25. VPC Private Subnet VPC Public Subnet Game Server Pods Availability Zone A Availability Zone B VPC Public Subnet VPC Private Subnet GAME GAME GAME GAME GAME GAME
  • 26. VPC Private Subnet VPC Private Subnet RabbitMQ + Elastic Load Balancing Availability Zone A Availability Zone B 10.1.0.13 10.2.0.16 TCP 5672 rabbitmq-node1 rabbitmq-node2 TCP 4369 & 25672
  • 27. RabbitMQ + Elastic Load Balancing •  Clustering Tutorial https://www.rabbitmq.com/clustering.html •  Set Queue HA policy to "all" https://www.rabbitmq.com/ha.html •  Create Internal load balancer –  Listen Port: TCP 5672 •  VPC Security Group –  For load balancer: TCP 5672 –  Between EC2 nodes: TCP 4369 & 25672 •  Set up Client to Heartbeat
  • 28. VPC Private Subnet VPC Private Subnet SQS for critical data (purchasing, voucher) Availability Zone A Availability Zone B 10.1.0.13 10.2.0.16 TCP 5672 rabbitmq-node1 rabbitmq-node2 TCP 4369 & 25672
  • 29. VPC Private Subnet VPC Public Subnet Redis Pub / Sub Availability Zone A Availability Zone B VPC Public Subnet VPC Private Subnet GAME GAME GAME GAME GAME GAME Auto Scaling group
  • 30. VPC Private Subnet VPC Public Subnet CloudFormation + Chef Availability Zone A GAME GAME GAME Auto Scaling group
  • 31. CloudFormation Use CloudFormation to create a template for your complete regional environment VPC Private Subnet VPC Public Subnet Availability Zone A Availability Zone B VPC Public Subnet VPC Private Subnet Region GAME GAME GAME GAME GAME GAME Redis Redis JSON Format, which can be but into source control repositories
  • 32. Where My Servers At? Tokyo Oregon Frankfurt Virginia ? ?
  • 33. VPC Subnet Server Registration Availability Zone A Availability Zone B VPC Subnet Region Auto Scaling group WEB WEB Oregon Tokyo VPC Subnet Cleanup Loop for unhealthy server Launch new game pods via the CloudFormation template JOBS Health Flag
  • 34. Server Registration & Scaling •  HTTPS POST /api/servers/register •  Include an HMAC (RFC 2104) and custom salt for the payload •  Send Server Status –  Public IP –  # Players –  Game Modes •  Matchmaking Service –  Maintains server list –  Removes servers
  • 35. Example of Web API Call API Request: Response from Web Services: POST https://api.coolgame.com/Client/ Matchmake Content-Type: application/json; X-Authentication: 7BC920BC255F7E60-0-0-5F4 { "BuildVersion": "5.01", "Region": "USCentral", "GameMode": "0", "LobbyId": "Lobby 32", "EnableQueue": false } HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 { "LobbyID": "Lobby 32", "ServerHostname": "192.168.0.1", "ServerPort": 7777, "Ticket": "e98yf289f248902f4904f0924f9pj", "Status": "Waiting", "Queue": [ "User1", "User2" ] }
  • 36. Scaling Game Servers •  Monitor Server Capacity •  Launch new ones via Amazon EC2 API or CloudFormation •  Choose Server •  Drain Players •  Terminate Auto-Scaling of AWS cannot be used unless game state is centralized
  • 39. VPC Private Subnet VPC Public Subnet Game Server Logs Availability Zone A S3 Bucket Amazon CloudWatch Logs GAME GAME GAME
  • 40. VPC Private Subnet VPC Public Subnet Game Server Logs Availability Zone A Amazon
 Kinesis S3 Bucket Amazon Redshift GAME GAME GAME
  • 42.
  • 43.
  • 44.
  • 45. Unreal Engine with AWS CloudFormation UnrealServer unreal_linux.template.json true my-bucket-name Unreal-123.zip sshkeyname 1.2.3.4/24 MyPass123
  • 46.
  • 47.
  • 48.
  • 49.
  • 50. Multiplayer game servers   Login via API   Request matchmaking   Get game server IP Region
  • 51. Multiplayer game servers   Login via API   Request matchmaking   Get game server IP   Connect to server   Pull down assets   Other players join Region EC2 API
  • 55.
  • 56. Core Game Backend ELB S3 •  Choose Region •  Elastic Load Balancer •  Two Availability Zones •  EC2 for App •  RDS Database •  Multi-AZ •  S3 for Game Data •  Assets •  UGC •  Analytics Region
  • 57. Scale It Way Out CloudFront CDN ELB S3 EC2EC2EC2 Region •  Auto Scaling Group •  Capacity on Demand •  Respond to Users •  ElastiCache •  Memcache •  Redis •  CloudFront CDN •  DLC, Assets •  Game Saves •  UGC
  • 58. Beanstalk saves your time! ELB S3 •  Beanstalk Manages •  ELB •  EC2 •  Auto Scaling •  Monitoring •  RDS •  Add Other Services •  S3 •  CloudFront •  ElastiCache •  SNS EC2 Elastic Beanstalk Container EC2 CloudFront CDN
  • 59.
  • 61. Region Writing Is Painful Availability Zone A Availability Zone B S3 EC2 •  Games are Write Heavy •  Caching of Limited Use •  Key Value Key Value •  Binary Structures •  Database = Bottleneck ELB EC2 CloudFront CDN
  • 63. Sharding is tough to operate Source: http://keithburgun.net/wp-content/uploads/2013/03/1565.1276479-difficulty_doom_super.png-610x0.png
  • 64. DynamoDB Availability Zone A Availability Zone B S3 •  NoSQL Data Store •  Fully-Managed •  Highly Available •  PUT/GET Keys •  Secondary Indexes •  Provisioned Throughput •  Auto Scaling EC2 EC2 ELB CloudFront CDN Elastic Beanstalk Container
  • 65. Leaderboard in DynamoDB •  Hash key = Primary key •  Range key = Sub key •  Others attributes are unstructured, unindexed •  So… How to sort based on Top Score?
  • 66. Leaderboard with Secondary Indexes •  Create a secondary index! •  Set hash key to Game Level •  Set range key to Top Score •  Can now query by Level, Sorted by Top Score •  Handles any (sane) gaming use case
  • 67. Summary •  Decouple Game Servers from APIs •  Create local mini pods •  Create Matchmaking APIs to point user to game pod •  Replicate asynchronously to avoid high latency •  Use Managed services –  DynamoDB –  RDS –  S3/CloudFront –  ElastiCache
  • 68. Gaming on AWS, Korea