11. Amazon GameLiftとは?
インフラストラクチャの管理
• Auto-scaling
• ⾼可⽤性 (マルチ-AZ)
• リージョン間⾃動フェールオーバー
• DDoSプロテクション
セッションの管理
• Player & Game セッション
• ワールドワイドのプレースメント
• マッチメイキング (FlexMatch)
Infrastructure$
Time
Auto scaling - More
exacting capacity
Infrastructure$
Time
Wasted $
Upfront expenditure – Scaling for peak
Auto scaling with Amazon GameLift
Traditional IT Provisioning
15. FleetIQ
Spot (Linux)
C4.large
e.g. 2 game servers per instance
Price: $0.014 hourly per game server
Frequency of Interruption: Medium
On Demand (Linux)
C4.large
e.g. 2 game servers per instance
Price: $0.064 hourly per game server
us-east-2 (Ohio)
Spot (Linux)
C4.xlarge
e.g. 4 game servers per instance
Price: $0.015 hourly per game server
Frequency of Interruption: Low
FleetIQは中断による割り込みが低く(※)、かつコストが⼀番安いフリートを選択し、
プレイヤーのセッションを割り当てる
1ゲームセッションあたり$0.004でかつ割り込み率が低いフリートを割り当て
※︓FleetIQ はスポット中断レートを追跡し、このデータを⽤いて中断頻度の低いインスタンスに⾃動的にゲームを配置します。
25. 1.2.3.4
2.3.4.5
Global static anycast IPs
54.86.52.59
52.45.82.211
54.86.52.59
52.45.82.211
54.86.52.59
52.45.82.211
~9% faster
~8% faster*
~4%
faster
~25% faster
AWS Global Accelerator の動き
X
~20 sec.
failover time
~27% faster
*p90 First Byte Latency from 3rd party real-user measurements
26. Global Acceleratorのユースケース
Non-HTTP Applications
• Gaming (UDP)
• Real-time video (RTP)
• Voice over IP
• VPN / private connectivity
• DNS hosting (UDP)
• IoT (MQTT)
• File uploads (FTP)
• Push notifications (Websockets)
HTTP Applications
• Blue/green deployment and A+B
testing
• Static IPs for IP whitelisting
• Failover resilience for multi-region
applications
27. 同⼀セッションにマッチした
プレイヤー
AWS Region
Instance A, destination port 1
Instance A, destination port 2
Instance J, destination port 47
Use Case: Multiplayer real-time games without Global Accelerator
28. Global
Accelerator
Listener 10: UDP – Dest. port range 46-50
54.86.52.59
52.45.82.211
54.86.52.59, dest. port 1
54.86.52.59, dest. port 2
54.86.52.59, dest. port 47
… …
AWS Region
Amazon Global Network
Use Case: Multiplayer real-time games with Global Accelerator
Listener 1: UDP - Dest. port range 1-5
同⼀セッションにマッチした
プレイヤー
32. Data Modeling a Gaming Application with
Amazon DynamoDB
https://aws.amazon.com/getting-started/projects/data-modeling-gaming-app-with-dynamodb/
アクセスパターンにフォーカス
アプリケーションからの書き込み/読み込みデータをすべてドキュメント
に起こしてみる
リクエスト数を最適化する
それぞれのアクセスパターンごとに単⼀のリクエストで処理できるように
リレーショナルDBを偽装しない
正規化、データタイプ毎のテーブル作成、セカンダリインデックスの多⽤
はアンチパターン
NoSQLデータベースの設計ベストプラクティスをもとにDynamoDBでゲームデータをモデリング
Create user profile (Write)
Update user profile (Write)
Get user profile (Read)
Create game (Write)
Find open games (Read)
Find open games by map (Read)
View game (Read)
View users in game (Read)
Join game for a user (Write)
Start game (Write)