AWS Gaming
Amazon Web Servicesの本気がみたいか!?
スピードと高可用性を両立した
ゲームインフラの構築と事例
アマゾン ウェブ サービス ジャパン 株式会社
森 祐孝
AWS Gaming
森 祐孝(もり ゆうこう)
ソリューションアーキテクト
経歴
• メーカー系SIer、電⼦マネー運営(サーバソフト開発)
• 独⽴系SIer
• 情報通信キャリア向けのSIでPL、PM
• コンソール系ゲーム会社(テクニカ...
AWS Gaming
Agenda
• Online Game on AWS
• Serverless Architecture
• Global Gaming on AWS
• その他、AWSを活用したゲームインフラ
AWS Gaming
Amazon Lumberyard Engine
AWS Gaming
無料なので使ってください!
AWS Gaming
ゲーム配信を世界中のリージョンがから選択可能
13のリージョン
1. ⽶国東部 (バージニア北部)
2. ⽶国⻄部 (北カリフォルニア)
3. ⽶国⻄部 (オレゴン)
4. AWS GovCloud (⽶国)
5. 南⽶ ...
AWS Gaming
リージョンとAvailability Zone (AZ)
• 各リージョン内に複数の独⽴し
たAZ(データセンター群)が存在
• 各AZは互いに影響を受けないよ
うに、地理的・電源的・ネット
ワーク的に分離するように設計
...
AWS Gaming
70を超えるクラウドサービスを提供
AWS Gaming
ENTERPRISE
APPS
DEVELOPMENT & OPERATIONSMOBILE SERVICESAPP SERVICESANALYTICS
Data
...
AWS Gaming
加速する新機能の追加
http://aws.amazon.com/jp/aws_history/
AWS Gaming
AWSユーザ様例
AWS Gaming
Traditional: Rigid(柔軟ではない) AWS: Elastic(柔軟)
Servers
負荷
Capacity
過剰なキャパシティ
無駄な投資
負荷
ゲーム需要に対応出来ない
ゲームプレイヤーに不満
売上に...
AWS Gaming
AWS 導入事例: 任天堂株式会社 【Miiverse】
• マルチリージョン構成
– 3リージョン(Tokyo, US, EU)でMulti-AZ構成
– 3リージョンではそれぞれVPNで接続
• 1,000台以上のEC...
AWS Gaming
AWS Gaming
Online Game on AWS
AWS Gaming
Region
① HTTP APIを⽤いてログイン
② Game Assetsをダウンロード
③ Game Serverのマッチメイク
EC2
オンラインゲームのフロー
EC2
EC2
AWS Gaming
Region
① HTTP APIを⽤いてログイン
② Game Assetsをダウンロード
③ Game Serverのマッチメイク
④ Serverへ接続
⑤ 離れた仲間と対戦
⑥ ゲームオーバー
オンラインゲームのフ...
AWS Gaming
Region
① HTTP APIを⽤いてログイン
② Game Assetsをダウンロード
③ Game Serverのマッチメイク
④ Serverへ接続
⑤ 離れた仲間と対戦
⑥ ゲームオーバー
⑦ HTTP API...
AWS Gaming
一般的なゲームバックエンドのコンセプト
• APIとして考える
• HTTP + JSON
• フレンドリスト, スコアーボード
• バイナリアセット
• マルチプレイヤゲーム
• 高可用性
• 拡張性
AWS Gaming
REST APIサーバ(ロビーサーバ、スコアボード等)
AWS Gaming
基本的なAWS上でのWEB + DBゲームサーバの構成
ELB
• WEB + DBゲームサーバ
• ユーザログイン
• ロビーサーバ
• スコアーボード
• プレゼントリスト
• 最適なリージョンの選択
• 2つ以上のA...
AWS Gaming
「DBはRDS(Multi-AZ)」のメリット
• AWSでチューニング済み
• MySQL / PostgreSQL / Oracle / SQLServer
/ Maria DB / Auroraから選択可能
• ⼀時...
AWS Gaming
Region
EC2 EC2
CloudFront
CDN
静的コンテンツの配信
• Amazon S3 + CloudFront
• ゲームアセットファイル
• ユーザフォト
• カスタムマップ
• Amazon Clo...
AWS Gaming
AWSサービス
• 容量無制限のオンラインストレージ
• ⾃動的に複数拠点に保存し、⾼い耐久性を実現
– 99.999999999%の堅牢性
• 静的ウェブサイトとしても利⽤可能
Amazon S3
• CDN(Conte...
AWS Gaming
AWS 導⼊事例:株式会社サイバード(BFB 2016)
• ゲームのアセットファイルを配信
• 海外からのアクセスでも従来の1/3
〜1/2ダウンロード時間短縮
• WAF(web application firewal...
AWS Gaming
ELB
Region
CloudFront
CDN
EC2 EC2EC2 EC2
ここからスケール
• Amazon S3 + CloudFront
• ゲームアセットファイル
• ユーザフォト
• カスタムマップ
• A...
AWS Gaming
Auto Scalingによる自動拡大/縮小
• Auto Scaling
– EC2を負荷に応じて自動的に拡大/縮小させる仕組み
– オートヒーリング
– 例) CPU使用率が5分以上継続して70%以上だったら2台追加
...
AWS Gaming
負荷に合わせたサーバの拡張、縮小
• Line クッキーラン
• 1日で2〜60インスタンス
を動的に拡張・縮退
AWS Gaming
ELB
Region
CloudFront
CDN
EC2 EC2EC2 EC2
DBリードが増加!
• Amazon S3 + CloudFront
• Game Assets
• ユーザフォト
• Custom Map...
AWS Gaming
パズドラも基本的には同じような構成
Tokyo Game Show 2014の発表資料より抜粋
AWS Gaming
成長に伴い…
Tokyo Game Show 2014の発表資料より抜粋
AWS Gaming
サーバ増!
Tokyo Game Show 2014の発表資料より抜粋
AWS Gaming
ゲームはDBライトヘビー・・
• DBライトヘビー
• 限界までキャッシング
• キーバリュー型へ変更
(⾮正規化へ)
• バイナリーストラクチャー
• データベース= ボトルネック
ELB
Region
EC2 EC2
...
AWS Gaming
RDBのシャーディング
Availability
Zone A
C2
ツラい・・・
AWS Gaming
Amazon Aurora!
• Amazonがクラウド時代にあ
わせて作ったRDBMS
• MySQL5.6互換
• 最⼤64TBまで⾃動でスケール
• 15台のレプリカ
• ⾼速なクラッシュリカバリ
• ⾼速なフェール...
AWS Gaming
AWS 導入事例:株式会社グラニ
AWS Gaming
Aurora 3x faster than MySQL (Total)
AWS Gaming
Amazon Auroraによるコスト削減効果
性能向上によるDB 統合でノード削減も期待できる
Grani様の場合、DB統合も⾏い 年間 2,200万円超 のコスト削減効果
RDS (db.r3.4xlarge / gp...
AWS Gaming
AWS 導⼊事例:
ガンホー・オンライン・エンターテイメント株式会社
AWS Gaming
全データベースを
一晩でAuroraへ移行完了!
AWS Gaming
ELB
CloudFront
CDN
EC2 EC2EC2 EC2
Amazon DynamoDB!
• NoSQL データベース
• フルマネージド
• ⾼可⽤性
• 容量無制限
• プロビジョンスループット
• セカン...
AWS Gaming
AWS 導⼊事例:株式会社マイネット
DynamoDBをメインDBにすることで、
可⽤性向上のための運⽤はAWSが実施。
トラフィック増減もアーキテクチャを変
えずにパラメータ変更だけで対応。
DynamoDBで管理が難し...
AWS Gaming
VPC Subnet
Availability Zone A Availability Zone B
VPC Subnet
Auto Scaling group
WEB WEB
VPC Subnet
JOBS
Server...
AWS Gaming
VPC Subnet
Availability Zone A Availability Zone B
VPC Subnet
Auto Scaling group
WEB WEB
VPC Subnet
JOBS
Server...
AWS Gaming
数分で簡単に始めることが出来ます!
サーババイナ
リをアップ
ロード
コンフィグ
テスト
スケール
アップ
プレイ!
1 2 3 4
AWS Gaming
Amazon GameLift
• セッションベースマルチプレイヤーゲーム
サーバのためのマネージド・サービス
• 設定したプレイヤーセッションによってイン
スタンスを⾃動でスケールアップ、ダウン
• 世界中のユーザへLo...
AWS Gaming
Serverless Architecture
45
AWS Gaming
新潮流:”サーバーレス” アーキテクチャー
Lambda
Backend
SNS
Cognito
Kinesis
Dynamo
S3
Mobile
SDK
API Gateway
仮想サーバーであるAmazon EC2
を...
AWS Gaming
新潮流:”サーバーレス” アーキテクチャー
Lambda
Backend
SNS
Cognito
Kinesis
Dynamo
S3
Mobile
SDK
API Gateway
仮想サーバーであるAmazon EC2
を...
AWS Gaming
クラウドネイティブな
ゲームアーキテクチャ
Availability
Zone A
Availability
Zone B
S3
• APIゲームサーバ
• User Login
• Game List
• ランキングボー...
AWS Gaming
従来のゲームサーバ
アーキテクチャ
Availability
Zone A
Availability
Zone B
S3
• APIゲームサーバ
• User Login
• Game List
• ランキングボード
• ...
AWS Gaming
AWSサーバレスサービス (1/2)
• イベントをトリガーにコードを実⾏するコン
ピュートサービス
• コードを書いてアップロードするだけで使える、
フルマネージドなランタイム
• スケールからログまで全てマネージドで、...
AWS Gaming
AWSサーバレスサービス (2/2)
• フルマネージドでスケールし、⾼い安定性を持っ
たNoSQLのKey-Valueデータベース
• レコードを分散保持し、3拠点複製により⾼耐久性
• AWS SDK等で簡単にDB操作...
AWS Gaming
クラウドネイティブなServerless
ゲームアーキテクチャ
Availability
Zone A
Availability
Zone B
S3
• API Gateway
• REST APIサーバ
• OS、キャパ...
AWS Gaming
Availability
Zone A
Availability
Zone B
S3
• Lambdaファンクションか
ら各AWSサービスを利⽤
• 認証にはCognito
CloudFront
CDN
S3
AWS Re...
AWS Gaming
Availability
Zone A
Availability
Zone B
S3
• Lambdaファンクション
からAWSサービスを操作
• 認証にはCognitoを
利⽤
• EC2を利⽤した別システ
ムへのアクセ...
AWS Gaming
API Gateway( /games GET - ゲームリスト取得)
DynamoDB Table
“games”
Lambda Function
“getGames”
API GW
/games GET
Respons...
AWS Gaming
S3
• CognitoからTemporary
Credentialsを取得
• AWS SDKを通じて各
AWSリソースのAPIを直
接アクセス
CloudFront
CDN
S3
AWS Region
Cognito
...
AWS Gaming
クラウドネイティブな
ゲームアーキテクチャ
Availability
Zone A
Availability
Zone B
S3
• APIゲームサーバ
• User Login
• Game List
• ランキングボー...
AWS Gaming
クラウドネイティブな
ゲームアーキテクチャ
Availability
Zone A
Availability
Zone B
S3
• APIゲームサーバ
• User Login
• Game List
• ランキングボー...
AWS Gaming
クラウドネイティブな
ゲームアーキテクチャ
Availability
Zone A
Availability
Zone B
S3
• APIゲームサーバ
• User Login
• Game List
• ランキングボー...
AWS Gaming
どのアーキテクチャを採⽤すべきか?
EC2 EC2
AWS Gaming
各アーキテクチャーでのメリット/デメリット
アーキテクト メリット デメリット
従来のゲーム
サーバアーキテクチャ
クライアント側は従来のノウハウをフ
ルに活かせる
実績が多く枯れた構成である
カスタマイズ性が⾼い
サーバ...
AWS Gaming
どのアーキテクチャを採⽤すべきか?
三者択⼀でなく
メリット/デメリットを
⾒て組み合わせを
AWS Gaming
AWS Lambda
63
AWS Gaming
Lambdaを使ったゲームでの活⽤
• S3にゲーム画⾯のキャプチャー画像がアップロードされたときにサム
ネイルの⽣成やリサイズ、コピーライトの挿⼊を実⾏
• ゲーム動画ファイルのエンコーディング、サムネイル画像を⽣成
A...
AWS Gaming
DynamoDB Streams + Lambdaを使った
値チェックや別テーブルへのコピー
• DynamoDB テーブル内の項目レベルの変更の時系列にキャプチャー
• DynamoDBへの書き込みに応じて値チェックをし...
AWS Gaming
AWS IoT
66
AWS Gaming
なぜ、AWS IoT?
(Internet of Things?)
AWS Gaming
MQTT
MQTT vs HTTPS:
• スループットが93倍あがる
• メッセージ送信において1/12の消費電⼒
• メッセージ受信において1/180の消費電⼒
• コネクション維持において1/2の消費電⼒
• ネット...
AWS Gaming
MQTT Publish/Subscribe
Publisher
Publisher
Publisher
Broker
Topic:
room/temp
Subscriber
Subscriber
Subscriber
•...
AWS Gaming
MQTTトピック – ワイルドカード “#” ”+“
Hello! Hello!
Hello!
X:11
Y:22
X:11
Y:22
X:11
Y:22
user1
user2 ワイルドカードを使って
必要なデータのみ
...
AWS Gaming
AWS IoT 全体構成
デバイス SDK
接続、認証、メッセージ交換
を⾏なうための
クライアントライブラリ
デバイスゲートウェイ
MQTT over WebSockets ,MQTTと
HTTPを利⽤した
デバイスとの...
AWS Gaming
AWS IoT AWSサービス
ルールエンジンは、受け取ったメッ
セージを評価し、適切に変換とエ
ンドポイントへの配信をルールに
従って実行
外部のエンドポイントは、Lambda
かSNSを使って呼び出す
Lambda f...
AWS Gaming
Global Gaming on AWS
73
AWS Gaming
ネットワークゲーム(FPS,MMO等)の特徴
• 多数のユーザーがひとつのゲームセッションや
ワールドに接続して遊ばれる
• あるユーザーのアクションは他のユーザーに対
して(できるかぎり)リアルタイムに伝える必
要がある...
AWS Gaming http://bit.ly/verizon-latency
http://bit.ly/superdata-latency
AWS Gaming
複数のAWSリージョンにサーバーを配置する
アーキテクチャを考えてみる
レイテンシとの戦い
AWS Gaming
リージョン間のデータ同期に
データベースレプリケーション
を使う?
AWS Gaming
100+ms 100+ms
100+ms
100+ms
100msを超えるレイテンシはリアルタイム
ゲームに⼤きな影響を与える
AWS Gaming
⼀歩引いて考える: 多くのケースにおいて
ユーザーは地理的に近いユーザーとのゲーム
を好む
• 同じタイムゾーン
• 同じ⾔語
• 同じくらいのレイテンシ
Solution:
ゲームサーバーを
地理的に分散配置する
AWS Gaming
ゲームサーバーと
ロビーサーバーの分離
バージニア
ゲームサーバ
ソウル
ゲームサーバ
シンガポール
ロビーサーバ
東京
AWS Gaming
China?
AWS Gaming
Mini Pods Everywhere
China
Oregon
Frankfurt
ロビーサーバ
Global
ロビーサーバ
China
ランキング
AWS Gaming
BigData on AWS
83
AWS Gaming
• Kinesis Streamを使ってストリーム
データを処理
– ⽣成されるデータをリアルタイムに近い
状況でデータ処理部に伝送
– ⽬的に応じた処理を並列処理が可能
• 書き込み、読み込みを並列に実行
• 出力結果を...
AWS Gaming
• Spark on EMRへストリーム処理
• Kinesis Spout を介してStormへ
• EC2 カスタムWorkersを実⾏
更に多くの入出力データを扱う!
EC2
EC2
AWS Gaming
Real-Time ヒートマップ
AWS Gaming
Amazon S3
Amazon Kinesis
Amazon DynamoDB
Amazon RDS (Aurora)
AWS Lambda
KCL Apps
Amazon
EMR
Amazon
Redshift
Ama...
AWS Gaming
Game Deploy on AWS
88
AWS Gaming
AWSのデプロイ&マネージメント関連サービス
MonitorProvisionDeployTestBuildCode
Elastic Beanstalk
OpsWorks
Cloud
Watch
Cloud
Formati...
AWS Gaming
AWS Summit Tokyo 2016 「Fate/Grand Orderにおける、ディライトワークス流 AWS 導入&活用術」より
https://speakerdeck.com/isoparametric/gran...
AWS Gaming
Mobile Service on AWS
91
AWS Gaming
ユーザ認証
アクセスの認可
データの同期
ユーザの⾏動分析
保持率の追跡
メディアの管理
メディアの配信
プッシュ通知の送
信
共有データの保存
データのリアルタイム解析
Your
Mobil
e App
AWS Mobi...
AWS Gaming
まとめ
• AWSでは様々なサービスを用意しております。お客
様のシステム上の特徴やAWSのサービスの特徴を
組み合わせて利用することにより、様々なパターン
のゲームインフラを構築することが出来ます。
• 多くのユーザが楽...
AWS Gaming
AWS Black Belt Online Seminarのご案内
AWSJ の Tech メンバーがAWSに関する様々な事を
日本語で紹介・解説する無料のオンラインセミナー
AWSについてもっと勉強したい方にオススメ!
...
AWS Gaming
AWS Gaming
ご参加ありがとうございました
96
AWS Gaming97
Upcoming SlideShare
Loading in …5
×

Amazon Web Services の本気がみたいか !? スピードと高可用性を両立したゲームインフラの構築と事例

326 views
189 views

Published on

Amazon Web Services の本気がみたいか !? スピードと高可用性を両立したゲームインフラの構築と事例

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
326
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Amazon Web Services の本気がみたいか !? スピードと高可用性を両立したゲームインフラの構築と事例

  1. 1. AWS Gaming Amazon Web Servicesの本気がみたいか!? スピードと高可用性を両立した ゲームインフラの構築と事例 アマゾン ウェブ サービス ジャパン 株式会社 森 祐孝
  2. 2. AWS Gaming 森 祐孝(もり ゆうこう) ソリューションアーキテクト 経歴 • メーカー系SIer、電⼦マネー運営(サーバソフト開発) • 独⽴系SIer • 情報通信キャリア向けのSIでPL、PM • コンソール系ゲーム会社(テクニカルディレクター) • ブラウザソーシャルゲーム、スマートフォン向けソーシャルゲーム 担当 • ソーシャルゲーム、コンソールゲーム系のお客様 • Amazon Lumberyard !(HDR、VR対応しました!) ⾃⼰紹介
  3. 3. AWS Gaming Agenda • Online Game on AWS • Serverless Architecture • Global Gaming on AWS • その他、AWSを活用したゲームインフラ
  4. 4. AWS Gaming Amazon Lumberyard Engine
  5. 5. AWS Gaming 無料なので使ってください!
  6. 6. AWS Gaming ゲーム配信を世界中のリージョンがから選択可能 13のリージョン 1. ⽶国東部 (バージニア北部) 2. ⽶国⻄部 (北カリフォルニア) 3. ⽶国⻄部 (オレゴン) 4. AWS GovCloud (⽶国) 5. 南⽶ (サンパウロ) 6. 欧州 (アイルランド) 7. 欧州(フランクフルト) 8. アジアパシフィック (シンガポール) 9. アジアパシフィック (東京) 10.アジアパシフィック(シドニー) 11.アジアパシフィック (ソウル) 12.アジアパシフィック (ムンバイ) 13.中国 (北京) 35のアベイラビリティ・ゾーン 59のエッジロケーション ※来年中までにはさらに 4 のリージョン と 9のアベイラビリティーゾーン予定
  7. 7. AWS Gaming リージョンとAvailability Zone (AZ) • 各リージョン内に複数の独⽴し たAZ(データセンター群)が存在 • 各AZは互いに影響を受けないよ うに、地理的・電源的・ネット ワーク的に分離するように設計 されている • AZ間は低レイテンシーの⾼速専 ⽤線で接続されている http://www.slideshare.net/A mazonWebServices/spot301- aws-innovation-at-scale-aws- reinvent-2014
  8. 8. AWS Gaming 70を超えるクラウドサービスを提供 AWS Gaming ENTERPRISE APPS DEVELOPMENT & OPERATIONSMOBILE SERVICESAPP SERVICESANALYTICS Data Warehousing Hadoop/ Spark Streaming Data Collection Machine Learning Elastic Search Virtual Desktops Sharing & Collaboration Corporate Email Backup Queuing & Notifications Workflow Search Email Transcoding One-click App Deployment Identity Sync Single Integrated Console Push Notifications DevOps Resource Management Application Lifecycle Management Containers Triggers Resource Templates TECHNICAL & BUSINESS SUPPORT Account Management Support Professional Services Training & Certification Security & Pricing Reports Partner Ecosystem Solutions Architects MARKETPLACE Business Apps Business Intelligence Databases DevOps Tools NetworkingSecurity Storage Regions Availability Zones Points of Presence INFRASTRUCTURE CORE SERVICES Compute VMs, Auto-scaling, & Load Balancing Storage Object, Blocks, Archival, Import/Export Databases Relational, NoSQL, Caching, Migration Networking VPC, DX, DNS CDN Access Control Identity Management Key Management & Storage Monitoring & Logs Assessment and reporting Resource & Usage Auditing SECURITY & COMPLIANCE Configuration Compliance Web application firewall HYBRID ARCHITECTURE Data Backups Integrated App Deployments Direct Connect Identity Federation Integrated Resource Management Integrated Networking API Gateway IoT Rules Engine Device Shadows Device SDKs Registry Device Gateway Streaming Data Analysis Business Intelligence Mobile Analytics
  9. 9. AWS Gaming 加速する新機能の追加 http://aws.amazon.com/jp/aws_history/
  10. 10. AWS Gaming AWSユーザ様例
  11. 11. AWS Gaming Traditional: Rigid(柔軟ではない) AWS: Elastic(柔軟) Servers 負荷 Capacity 過剰なキャパシティ 無駄な投資 負荷 ゲーム需要に対応出来ない ゲームプレイヤーに不満 売上に影響 :( ゲームユーザの需要に合わせてサーバをスケール
  12. 12. AWS Gaming AWS 導入事例: 任天堂株式会社 【Miiverse】 • マルチリージョン構成 – 3リージョン(Tokyo, US, EU)でMulti-AZ構成 – 3リージョンではそれぞれVPNで接続 • 1,000台以上のEC2インスタンスを使用 • Wii U と Nintendo 3DSからREST API で通信 From JAWS Days 2014 0315
  13. 13. AWS Gaming
  14. 14. AWS Gaming Online Game on AWS
  15. 15. AWS Gaming Region ① HTTP APIを⽤いてログイン ② Game Assetsをダウンロード ③ Game Serverのマッチメイク EC2 オンラインゲームのフロー EC2 EC2
  16. 16. AWS Gaming Region ① HTTP APIを⽤いてログイン ② Game Assetsをダウンロード ③ Game Serverのマッチメイク ④ Serverへ接続 ⑤ 離れた仲間と対戦 ⑥ ゲームオーバー オンラインゲームのフロー EC2 EC2
  17. 17. AWS Gaming Region ① HTTP APIを⽤いてログイン ② Game Assetsをダウンロード ③ Game Serverのマッチメイク ④ Serverへ接続 ⑤ 離れた仲間と対戦 ⑥ ゲームオーバー ⑦ HTTP APIを使って結果の書き込み オンラインゲームのフロー EC2 EC2
  18. 18. AWS Gaming 一般的なゲームバックエンドのコンセプト • APIとして考える • HTTP + JSON • フレンドリスト, スコアーボード • バイナリアセット • マルチプレイヤゲーム • 高可用性 • 拡張性
  19. 19. AWS Gaming REST APIサーバ(ロビーサーバ、スコアボード等)
  20. 20. AWS Gaming 基本的なAWS上でのWEB + DBゲームサーバの構成 ELB • WEB + DBゲームサーバ • ユーザログイン • ロビーサーバ • スコアーボード • プレゼントリスト • 最適なリージョンの選択 • 2つ以上のAZで構築 • アプリ⽤Amazon EC2 • Elastic Load Balancing • Amazon RDS • Multi-AZ EC2 EC2 AWS Region
  21. 21. AWS Gaming 「DBはRDS(Multi-AZ)」のメリット • AWSでチューニング済み • MySQL / PostgreSQL / Oracle / SQLServer / Maria DB / Auroraから選択可能 • ⼀時的なアクセス集中時にスペックを上げて(ス ケールアップ)対応可能 • ユーザ増にもスペックUPとHD容量増で容易に対応 可能 • ⾃動バックアップ&Point In Time Recovery機能 で、トラブル時も5分前の状態まで戻せる • 同期の冗⻑化(MultiAZ)オプションで万が⼀に備 える EC2 EC2 ELB AZ① AZ② Web App Web App
  22. 22. AWS Gaming Region EC2 EC2 CloudFront CDN 静的コンテンツの配信 • Amazon S3 + CloudFront • ゲームアセットファイル • ユーザフォト • カスタムマップ • Amazon CloudFront(CDN) ELB
  23. 23. AWS Gaming AWSサービス • 容量無制限のオンラインストレージ • ⾃動的に複数拠点に保存し、⾼い耐久性を実現 – 99.999999999%の堅牢性 • 静的ウェブサイトとしても利⽤可能 Amazon S3 • CDN(Contents Delivery Network)サービス • 世界各地のエッジロケーションから⾼速配信 • キャッシュしてオリジンの負荷を軽減 Amazon CloudFront
  24. 24. AWS Gaming AWS 導⼊事例:株式会社サイバード(BFB 2016) • ゲームのアセットファイルを配信 • 海外からのアクセスでも従来の1/3 〜1/2ダウンロード時間短縮 • WAF(web application firewall) の利⽤も
  25. 25. AWS Gaming ELB Region CloudFront CDN EC2 EC2EC2 EC2 ここからスケール • Amazon S3 + CloudFront • ゲームアセットファイル • ユーザフォト • カスタムマップ • Amazon CloudFrontを追加! • Auto Scaling group • 動的キャパシティ • ユーザの増加に合わせて • オートヒーリング
  26. 26. AWS Gaming Auto Scalingによる自動拡大/縮小 • Auto Scaling – EC2を負荷に応じて自動的に拡大/縮小させる仕組み – オートヒーリング – 例) CPU使用率が5分以上継続して70%以上だったら2台追加 Auto Scaling Group ELB CloudWatch 負荷状況を監視 EC2を追加構築 ELBの振り分けに追加 Web Web Web Web
  27. 27. AWS Gaming 負荷に合わせたサーバの拡張、縮小 • Line クッキーラン • 1日で2〜60インスタンス を動的に拡張・縮退
  28. 28. AWS Gaming ELB Region CloudFront CDN EC2 EC2EC2 EC2 DBリードが増加! • Amazon S3 + CloudFront • Game Assets • ユーザフォト • Custom Maps • Auto Scaling group • 動的キャパシティ • ユーザの増加に合わせて • オートヒーリング • Amazon ElastiCache • フルマネージド • Memcached • Redis
  29. 29. AWS Gaming パズドラも基本的には同じような構成 Tokyo Game Show 2014の発表資料より抜粋
  30. 30. AWS Gaming 成長に伴い… Tokyo Game Show 2014の発表資料より抜粋
  31. 31. AWS Gaming サーバ増! Tokyo Game Show 2014の発表資料より抜粋
  32. 32. AWS Gaming ゲームはDBライトヘビー・・ • DBライトヘビー • 限界までキャッシング • キーバリュー型へ変更 (⾮正規化へ) • バイナリーストラクチャー • データベース= ボトルネック ELB Region EC2 EC2 CloudFront CDN
  33. 33. AWS Gaming RDBのシャーディング Availability Zone A C2 ツラい・・・
  34. 34. AWS Gaming Amazon Aurora! • Amazonがクラウド時代にあ わせて作ったRDBMS • MySQL5.6互換 • 最⼤64TBまで⾃動でスケール • 15台のレプリカ • ⾼速なクラッシュリカバリ • ⾼速なフェールオーバ • ポイントインタイムリカバリ ELB Region EC2 CloudFront CDN W RRR EC2 Aurora Cluster
  35. 35. AWS Gaming AWS 導入事例:株式会社グラニ
  36. 36. AWS Gaming Aurora 3x faster than MySQL (Total)
  37. 37. AWS Gaming Amazon Auroraによるコスト削減効果 性能向上によるDB 統合でノード削減も期待できる Grani様の場合、DB統合も⾏い 年間 2,200万円超 のコスト削減効果 RDS (db.r3.4xlarge / gp2 / OnDemand) Hourly Daily Yearly RDS for MySQL(MultiAZ + 1 ReadReplica) $4.54 + $2.27 = $6.81 $163.44 $59,655.60 Aurora (+ 1 Replica) $2.8 * 2 = $5.6 $134.40 $49,056.00 削減効果 ▲$1.21 ▲$29.04 ▲$10599.6
  38. 38. AWS Gaming AWS 導⼊事例: ガンホー・オンライン・エンターテイメント株式会社 AWS Gaming 全データベースを 一晩でAuroraへ移行完了!
  39. 39. AWS Gaming ELB CloudFront CDN EC2 EC2EC2 EC2 Amazon DynamoDB! • NoSQL データベース • フルマネージド • ⾼可⽤性 • 容量無制限 • プロビジョンスループット • セカンダリーインデックス • PUT/GET Keys • Document型(JSON)も AWS Region
  40. 40. AWS Gaming AWS 導⼊事例:株式会社マイネット DynamoDBをメインDBにすることで、 可⽤性向上のための運⽤はAWSが実施。 トラフィック増減もアーキテクチャを変 えずにパラメータ変更だけで対応。 DynamoDBで管理が難しいデータは RDB(RDS)で管理するも、全体のボ リュームは⼩さくなるため運⽤が容易に。 参考 AWS事例のページより。詳細は以下をご参照ください。 http://aws.amazon.com/jp/solutions/case-studies/mynet/
  41. 41. AWS Gaming VPC Subnet Availability Zone A Availability Zone B VPC Subnet Auto Scaling group WEB WEB VPC Subnet JOBS Server manager table ゲームサーバの起動、登録管理 CodeDeploy
  42. 42. AWS Gaming VPC Subnet Availability Zone A Availability Zone B VPC Subnet Auto Scaling group WEB WEB VPC Subnet JOBS Server manager table Amazon GameLift CodeDeploy Amazon Gamelift Game Binary バックエンドに関する経験は不要 !
  43. 43. AWS Gaming 数分で簡単に始めることが出来ます! サーババイナ リをアップ ロード コンフィグ テスト スケール アップ プレイ! 1 2 3 4
  44. 44. AWS Gaming Amazon GameLift • セッションベースマルチプレイヤーゲーム サーバのためのマネージド・サービス • 設定したプレイヤーセッションによってイン スタンスを⾃動でスケールアップ、ダウン • 世界中のユーザへLow-latencyプレイヤ体験 を提供 • ダウンタイム無しでライブアップデート • ゲームのDAU単位による料⾦体系
  45. 45. AWS Gaming Serverless Architecture 45
  46. 46. AWS Gaming 新潮流:”サーバーレス” アーキテクチャー Lambda Backend SNS Cognito Kinesis Dynamo S3 Mobile SDK API Gateway 仮想サーバーであるAmazon EC2 を使わずに、クラウドネイティブに アプリケーションやサービスを 開発、実⾏するためのサービス群 とアーキテクチャー
  47. 47. AWS Gaming 新潮流:”サーバーレス” アーキテクチャー Lambda Backend SNS Cognito Kinesis Dynamo S3 Mobile SDK API Gateway 仮想サーバーであるAmazon EC2 を使わずに、クラウドネイティブに アプリケーションやサービスを 開発、実⾏するためのサービス群 とアーキテクチャー • インフラ構築 • インフラの運⽤管理 – キャパシティ – スケール – デプロイ – 耐障害性 – モニタリング – ロギング – セキュリティパッチの適⽤ • ビジネスの差別化には直接繋がらない機能のアプリ実装 – 認証 – スロットリング – スケーラビリティの確保 解決される課題
  48. 48. AWS Gaming クラウドネイティブな ゲームアーキテクチャ Availability Zone A Availability Zone B S3 • APIゲームサーバ • User Login • Game List • ランキングボード • Challenges • Lambdaファンクション からAWSサービスを操作 • 認証にはCognitoを 利⽤ • EC2を利⽤した別システ ムへのアクセスも可能 CloudFront CDN S3 AWS Region API Gateway Lambda DynamoDB Cognito EC2 • インフラ構築 • インフラの運⽤管理 – キャパシティ – スケール – デプロイ – 耐障害性 – モニタリング – ロギング – セキュリティパッチの適⽤ • ビジネスの差別化には直接繋がらない機能のアプリ実装 – 認証 – スロットリング – スケーラビリティの確保 解決される課題 ゲーム制作で 本当に必要な 作業?
  49. 49. AWS Gaming 従来のゲームサーバ アーキテクチャ Availability Zone A Availability Zone B S3 • APIゲームサーバ • User Login • Game List • ランキングボード • Challenges • HTTP(S) API • HTTP(S)でアプリケー ションサーバと通信 EC2 EC2 ELB CloudFront CDN S3 AWS Region
  50. 50. AWS Gaming AWSサーバレスサービス (1/2) • イベントをトリガーにコードを実⾏するコン ピュートサービス • コードを書いてアップロードするだけで使える、 フルマネージドなランタイム • スケールからログまで全てマネージドで、時間課 ⾦も100ms単位なのでコスト最適化しやすい AWS Lambda • フルマネージドでREST APIの作成・管理が可能 • バックエンドにLambdaやHTTPエンドポイントが 利⽤可能 • スロットリングやキャッシュ、ステージや認証も Amazon API Gateway
  51. 51. AWS Gaming AWSサーバレスサービス (2/2) • フルマネージドでスケールし、⾼い安定性を持っ たNoSQLのKey-Valueデータベース • レコードを分散保持し、3拠点複製により⾼耐久性 • AWS SDK等で簡単にDB操作が可能 Amazon DynamoDB • ユーザの認証・認可の基盤となるサービス • 各種認証プロバイダと連携、ゲスト権限も可能 • 認証プロバイダとしての機能や、デバイス間の データ共有機能も備える Amazon Cognito
  52. 52. AWS Gaming クラウドネイティブなServerless ゲームアーキテクチャ Availability Zone A Availability Zone B S3 • API Gateway • REST APIサーバ • OS、キャパシティ等 インフラの管理不要 • スロットリング/ キャッシュ • Lambda CloudFront CDN S3 AWS Region API Gateway Lambda DynamoDB
  53. 53. AWS Gaming Availability Zone A Availability Zone B S3 • Lambdaファンクションか ら各AWSサービスを利⽤ • 認証にはCognito CloudFront CDN S3 AWS Region API Gateway Lambda DynamoDB Cognito クラウドネイティブなServerless ゲームアーキテクチャ
  54. 54. AWS Gaming Availability Zone A Availability Zone B S3 • Lambdaファンクション からAWSサービスを操作 • 認証にはCognitoを 利⽤ • EC2を利⽤した別システ ムへのアクセスも可能 CloudFront CDN S3 AWS Region API Gateway Lambda DynamoDB Cognito EC2 クラウドネイティブなServerless ゲームアーキテクチャ
  55. 55. AWS Gaming API Gateway( /games GET - ゲームリスト取得) DynamoDB Table “games” Lambda Function “getGames” API GW /games GET Response Request
  56. 56. AWS Gaming S3 • CognitoからTemporary Credentialsを取得 • AWS SDKを通じて各 AWSリソースのAPIを直 接アクセス CloudFront CDN S3 AWS Region Cognito クラウドネイティブなServerless ゲームアーキテクチャ (2-Tier Architecture) Lambda DynamoDB Amazon Kinesis Stream
  57. 57. AWS Gaming クラウドネイティブな ゲームアーキテクチャ Availability Zone A Availability Zone B S3 • APIゲームサーバ • User Login • Game List • ランキングボード • Challenges • Lambdaファンクション からAWSサービスを操作 • 認証にはCognitoを 利⽤ • EC2を利⽤した別システ ムへのアクセスも可能 CloudFront CDN S3 AWS Region API Gateway Lambda DynamoDB Cognito EC2 • インフラ構築 • インフラの運⽤管理 – キャパシティ – スケール – デプロイ – 耐障害性 – モニタリング – ロギング – セキュリティパッチの適⽤ • ビジネスの差別化には直接繋がらない機能のアプリ実装 – 認証 – スロットリング – スケーラビリティの確保 解決される課題
  58. 58. AWS Gaming クラウドネイティブな ゲームアーキテクチャ Availability Zone A Availability Zone B S3 • APIゲームサーバ • User Login • Game List • ランキングボード • Challenges • Lambdaファンクション からAWSサービスを操作 • 認証にはCognitoを 利⽤ • EC2を利⽤した別システ ムへのアクセスも可能 CloudFront CDN S3 AWS Region API Gateway Lambda DynamoDB Cognito EC2 • インフラ構築 • インフラの運⽤管理 – キャパシティ – スケール – デプロイ – 耐障害性 – モニタリング – ロギング – セキュリティパッチの適⽤ • ビジネスの差別化には直接繋がらない機能のアプリ実装 – 認証 – スロットリング – スケーラビリティの確保 解決される課題 不要
  59. 59. AWS Gaming クラウドネイティブな ゲームアーキテクチャ Availability Zone A Availability Zone B S3 • APIゲームサーバ • User Login • Game List • ランキングボード • Challenges • Lambdaファンクション からAWSサービスを操作 • 認証にはCognitoを 利⽤ • EC2を利⽤した別システ ムへのアクセスも可能 CloudFront CDN S3 AWS Region API Gateway Lambda DynamoDB Cognito EC2 • インフラ構築 • インフラの運⽤管理 – キャパシティ – スケール – デプロイ – 耐障害性 – モニタリング – ロギング – セキュリティパッチの適⽤ • ビジネスの差別化には直接繋がらない機能のアプリ実装 – 認証 – スロットリング – スケーラビリティの確保 解決される課題 ⾯⽩いゲーム 開発に集中!
  60. 60. AWS Gaming どのアーキテクチャを採⽤すべきか? EC2 EC2
  61. 61. AWS Gaming 各アーキテクチャーでのメリット/デメリット アーキテクト メリット デメリット 従来のゲーム サーバアーキテクチャ クライアント側は従来のノウハウをフ ルに活かせる 実績が多く枯れた構成である カスタマイズ性が⾼い サーバのスペック、台数などインフ ラを意識して設計する必要がある サーバの運⽤は利⽤者に任されてい る Serverless ゲームアーキテクチャ (API Gateway) クライアント側の実装は従来とあまり 変わらずノウハウを活かせる サーバの運⽤、スケールはAWSに⼀任 CognitoによるセキュアなAPIアクセ ス制御が可能 コスト効率が⾼い 新規性が⾼く、まだ枯れていない Serverless ゲームアーキテクチャ (2-Tier Architecture) インフラ運⽤、スケール管理は不要 CognitoによるセキュアなAPIアクセ ス制御が可能 Web APIの設計が不要 最⼩限のパーツを組合せ コストメリットが⾼い 新規性が⾼く、まだ枯れていない クライアントサイドが各AWSリ ソースに依存する
  62. 62. AWS Gaming どのアーキテクチャを採⽤すべきか? 三者択⼀でなく メリット/デメリットを ⾒て組み合わせを
  63. 63. AWS Gaming AWS Lambda 63
  64. 64. AWS Gaming Lambdaを使ったゲームでの活⽤ • S3にゲーム画⾯のキャプチャー画像がアップロードされたときにサム ネイルの⽣成やリサイズ、コピーライトの挿⼊を実⾏ • ゲーム動画ファイルのエンコーディング、サムネイル画像を⽣成 Amazon ETS Amazon S3 Bucket イベント 元画像 サムネイル画像 1 3 2 AWS LambdaAmazon S3 Bucket イベント ゲーム動画 1 2 3 4 5
  65. 65. AWS Gaming DynamoDB Streams + Lambdaを使った 値チェックや別テーブルへのコピー • DynamoDB テーブル内の項目レベルの変更の時系列にキャプチャー • DynamoDBへの書き込みに応じて値チェックをし、別テーブルの更新や プッシュ通知を実行 • データチェックによってチート判定などにも利用可能 AWS Lambda Amazon DynamoDB Table and Streams プッシュ通知 別テーブルを更新 Amazon ElastiCache キャッシュの更新
  66. 66. AWS Gaming AWS IoT 66
  67. 67. AWS Gaming なぜ、AWS IoT? (Internet of Things?)
  68. 68. AWS Gaming MQTT MQTT vs HTTPS: • スループットが93倍あがる • メッセージ送信において1/12の消費電⼒ • メッセージ受信において1/180の消費電⼒ • コネクション維持において1/2の消費電⼒ • ネットワークオーバーヘッドの8倍削減 Source: http://stephendnicholas.com/archives/1217 • M2M/IoTで利⽤されるコミュニケー ションプロトコル • OASIS スタンダードプロトコル (v3.1.1) • ライトウェイト • Pub-Sub メッセージ交換モデル • リソースや回線帯域が限られているデ バイスで利⽤ • Facebook Messengerでも利⽤!
  69. 69. AWS Gaming MQTT Publish/Subscribe Publisher Publisher Publisher Broker Topic: room/temp Subscriber Subscriber Subscriber • ユーザ間のステータス情報の送受信 • チャットシステム
  70. 70. AWS Gaming MQTTトピック – ワイルドカード “#” ”+“ Hello! Hello! Hello! X:11 Y:22 X:11 Y:22 X:11 Y:22 user1 user2 ワイルドカードを使って 必要なデータのみ Subscribe
  71. 71. AWS Gaming AWS IoT 全体構成 デバイス SDK 接続、認証、メッセージ交換 を⾏なうための クライアントライブラリ デバイスゲートウェイ MQTT over WebSockets ,MQTTと HTTPを利⽤した デバイスとのコミュニケーション 認証と認可 セキュアな双⽅向の 認証と認可 ルールエンジン ルールベースの メッセージ変換と AWSサービスや 外部エンドポイント へのルーティング AWSサービス - - - - - その他のサービス デバイスシャドウ デバイスステータスの永続化 アプリケーション AWS IoT API デバイスレジストリ デバイスのアイデンティティ とマネージメント
  72. 72. AWS Gaming AWS IoT AWSサービス ルールエンジンは、受け取ったメッ セージを評価し、適切に変換とエ ンドポイントへの配信をルールに 従って実行 外部のエンドポイントは、Lambda かSNSを使って呼び出す Lambda functionの呼び出し S3 bucketへのデータ格納 DynamoDBテーブルへの挿入、 更新と読み出し SNS Topicまたは、Endpointに対 するパブリッシュ Kinesis streamへのパブリッシュ アクション Amazon Firehoseへのパブリッシュ AWS IoTへのリパブリッシュ
  73. 73. AWS Gaming Global Gaming on AWS 73
  74. 74. AWS Gaming ネットワークゲーム(FPS,MMO等)の特徴 • 多数のユーザーがひとつのゲームセッションや ワールドに接続して遊ばれる • あるユーザーのアクションは他のユーザーに対 して(できるかぎり)リアルタイムに伝える必 要がある 世界は広く、光の速さには限界がある。 距離=タイムラグ
  75. 75. AWS Gaming http://bit.ly/verizon-latency http://bit.ly/superdata-latency
  76. 76. AWS Gaming 複数のAWSリージョンにサーバーを配置する アーキテクチャを考えてみる レイテンシとの戦い
  77. 77. AWS Gaming リージョン間のデータ同期に データベースレプリケーション を使う?
  78. 78. AWS Gaming 100+ms 100+ms 100+ms 100+ms 100msを超えるレイテンシはリアルタイム ゲームに⼤きな影響を与える
  79. 79. AWS Gaming ⼀歩引いて考える: 多くのケースにおいて ユーザーは地理的に近いユーザーとのゲーム を好む • 同じタイムゾーン • 同じ⾔語 • 同じくらいのレイテンシ Solution: ゲームサーバーを 地理的に分散配置する
  80. 80. AWS Gaming ゲームサーバーと ロビーサーバーの分離 バージニア ゲームサーバ ソウル ゲームサーバ シンガポール ロビーサーバ 東京
  81. 81. AWS Gaming China?
  82. 82. AWS Gaming Mini Pods Everywhere China Oregon Frankfurt ロビーサーバ Global ロビーサーバ China ランキング
  83. 83. AWS Gaming BigData on AWS 83
  84. 84. AWS Gaming • Kinesis Streamを使ってストリーム データを処理 – ⽣成されるデータをリアルタイムに近い 状況でデータ処理部に伝送 – ⽬的に応じた処理を並列処理が可能 • 書き込み、読み込みを並列に実行 • 出力結果をRedshiftに! 必要なデータはいち早く処理! EC2 Kinesis Stream Redshift
  85. 85. AWS Gaming • Spark on EMRへストリーム処理 • Kinesis Spout を介してStormへ • EC2 カスタムWorkersを実⾏ 更に多くの入出力データを扱う! EC2 EC2
  86. 86. AWS Gaming Real-Time ヒートマップ
  87. 87. AWS Gaming Amazon S3 Amazon Kinesis Amazon DynamoDB Amazon RDS (Aurora) AWS Lambda KCL Apps Amazon EMR Amazon Redshift Amazon Machine Learning 収集 処理 分析 保存 データ収集と 保存 データ処理イベント処理 データ分析 データ 答え AWS上でのデータ分析基盤
  88. 88. AWS Gaming Game Deploy on AWS 88
  89. 89. AWS Gaming AWSのデプロイ&マネージメント関連サービス MonitorProvisionDeployTestBuildCode Elastic Beanstalk OpsWorks Cloud Watch Cloud Formation Code Deploy Code Commit Code Pipeline
  90. 90. AWS Gaming AWS Summit Tokyo 2016 「Fate/Grand Orderにおける、ディライトワークス流 AWS 導入&活用術」より https://speakerdeck.com/isoparametric/grand-orderniokeru-deiraitowakusuliu-aws-dao-ru-and-huo-yong-shu AWS 導⼊事例:ディライトワークス株式会社
  91. 91. AWS Gaming Mobile Service on AWS 91
  92. 92. AWS Gaming ユーザ認証 アクセスの認可 データの同期 ユーザの⾏動分析 保持率の追跡 メディアの管理 メディアの配信 プッシュ通知の送 信 共有データの保存 データのリアルタイム解析 Your Mobil e App AWS Mobile Services Amazon Cognito (Identity Broker) AWS Identity and Access Management Amazon Cognito (Sync) Amazon Mobile Analytics Amazon Mobile Analytics Amazon S3 Transfer Manager Amazon CloudFront (Device Detection) Amazon DynamoDB (Object Mapper) Amazon Kinesis (Recorder) Amazon SNS Mobile Push AWS Mobile SDK
  93. 93. AWS Gaming まとめ • AWSでは様々なサービスを用意しております。お客 様のシステム上の特徴やAWSのサービスの特徴を 組み合わせて利用することにより、様々なパターン のゲームインフラを構築することが出来ます。 • 多くのユーザが楽しんでくれるゲームのバックエンド は、AWSが本気で!サポートします! • 安心しておもしろゲーム、大きなイノベーション生む をゲーム開発に集中していただければと思います。
  94. 94. AWS Gaming AWS Black Belt Online Seminarのご案内 AWSJ の Tech メンバーがAWSに関する様々な事を 日本語で紹介・解説する無料のオンラインセミナー AWSについてもっと勉強したい方にオススメ! AWS イベント 検索
  95. 95. AWS Gaming
  96. 96. AWS Gaming ご参加ありがとうございました 96
  97. 97. AWS Gaming97

×