Requirements Architecture • P2P or Server/Client Implementation • Pub/Sub or Streams (Amazon ElastiCahce Redis) • Serverless or Server-based • Managed Service or Amazon EC2 • “Custom Game Server“ or “ Realtime Server“ (Amazon GameLift)
Job Worker Queue API (Out-Game) Amazon CloudFront Asset Distribution S3 Bucket (3) Request を受けて DB を参照/更新する API サーバ。 API サーバ自体はステートレスであることが多い。 キューとワーカーによる非同期のバルク処理と併用さ れることも。
DB Cache Database Job Worker Queue Match Making Lobby Game Server (In-Game) API (Out-Game) Amazon CloudFront Asset Distribution S3 Bucket (4) ロビーやバトルルームのセッションなど をステートフルに管理するゲームサーバ。 インゲームを構成する。
DB Cache Database Job Worker Queue Match Making Lobby Game Server (In-Game) API (Out-Game) Batch Server Amazon CloudFront Asset Distribution S3 Bucket Batch Processing (5) ランキング集計など様々 なバッチ処理。 日次バッチ/月次バッチなど
ETL / Aggregation DB Cache Database Job Worker Queue Match Making Lobby Game Server (In-Game) API (Out-Game) Analytics Datamart Redshift Cluster (Data Warehouse) S3 Bucket Batch Server Machine Learning Training Server Inference Endpoint S3 Bucket Amazon CloudFront Asset Distribution S3 Bucket Batch Processing (7) 機械学習がゲーム開発や運営に活用 される事例は増えている。 学習用のサーバ、推論を提供するWeb API サーバが主要コンポーネント
ETL / Aggregation DB Cache Database Build Server Job Worker Queue Match Making Lobby Game Server (In-Game) API (Out-Game) Analytics Datamart Redshift Cluster (Data Warehouse) S3 Bucket Batch Server Machine Learning Training Server Inference Endpoint S3 Bucket Amazon CloudFront Asset Distribution S3 Bucket Batch Processing (8) コードのコンパイルやア セットのパッケージング、レ ンダリングなど様々なビルド 処理
ETL / Aggregation DB Cache Database Build Server Job Worker Queue Match Making Lobby Game Server (In-Game) API (Out-Game) Analytics Datamart Redshift Cluster (Data Warehouse) S3 Bucket Batch Server Machine Learning Training Server Inference Endpoint S3 Bucket Amazon CloudFront Asset Distribution S3 Bucket Batch Processing (9) 開発環境やテスト環境 通常、本番環境の構成のサブセット やスモールセットとして同時に複数 が運用される Dev/Test Env
ETL / Aggregation DB Cache Database Build Server Job Worker Queue Match Making Lobby Game Server (In-Game) API (Out-Game) Analytics Datamart Redshift Cluster (Data Warehouse) S3 Bucket Batch Server Machine Learning Training Server Inference Endpoint S3 Bucket Amazon CloudFront Asset Distribution S3 Bucket Batch Processing Dev/Test Env
プロトコルで新規 の接続要求が着信する 2. API Gateway は、新規の接続 (TCP Session) に 対して Connection ID を払い出し、Lambda Function を呼び出す 3. Lambda Function は Connection ID を 受け取り、DynamoDB に保存する WebSocket Amazon API Gateway メッセージ Amazon DynamoDB 接続 切断 Put connection id Invoke with connection id 接続要求
Function に伝える 2. Lambda Function は DynamoDB に保存された Connection ID の一覧を取得する 3. Lambda 関数は、Connection ID ごとに、API Gateway の WebSocket 管理用 API を呼び出す。 呼び出す際には Connection ID とメッセージを データとして API Gateway に渡す。 4. API Gateway は指定された Connection ID (クライアント) に対しメッセージを送信する WebSocket Amazon API Gateway メッセージ Amazon DynamoDB 接続 切断 Scan connection id Message with each connection id Message Message
プロトコルで切断 要求が着信する 2. API Gateway は、切断要求のあった Connection ID を Lambda Function に伝えて呼 び出す 3. Lambda Function は Connection ID を受け取り、 DynamoDB からレコードを削除する WebSocket Amazon API Gateway メッセージ Amazon DynamoDB 接続 切断 DeleteItem connection id Invoke with connection id 切断要求
Route 53 Region (Oregon) Region (Ireland) Region (London) Region (Tokyo) Region (Singapore) Alias Alias Alias Alias Alias Alias … … Amazon DynamoDB Amazon DynamoDB Queue Queue Queue Client Service Player Player … Europe Amazon GameLift FlexMatch
Gearbox Borderlands developer Gearbox uses the cloud to change how it makes games | VentureBeat https://venturebeat.com/2018/02/05/borderlands-developer- gearbox-uses-the-cloud-to-change-how-it-makes-games/