ゲームプラットフォーム on...

67
ゲームプラットフォーム on AWS Amazon Data Services Japan 2013.09.27

Transcript of ゲームプラットフォーム on...

Page 1: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

ゲームプラットフォーム on AWS

Amazon Data Services Japan

2013.09.27

Page 2: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

クラウドコンピューティングとは?

スケールアップ、ダウンが容易

初期投資が不要 実際の使用分 のみ支払い

セルフサービスなインフラ

ビジネススピードの改善

低額な利用価格

Deploy

Page 3: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

Nu

mb

er

of

EC

2 In

sta

nces

4/12/2008 4/14/2008 4/15/2008 4/16/2008 4/18/2008 4/19/2008 4/20/2008 4/17/2008 4/13/2008

3日間で40から5,000サーバへ

ピーク時にEC2が5,000 インスタンスにスケール

Facebookで アプリを公開

40インスタンス以下でサービスを開始

アップロードした写真、動画、音楽をもとに、 ビデオクリップをオンラインで作成できるサービス

Deploy

Page 4: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

AWSサービス一覧 お客様のアプリケーション

認証 AWS IAM

モニタリング Amazon

CloudWatch

Web管理画面 Management

Console

デプロイと自動化 AWS Elastic Beanstalk AWS Cloud Formation

AWS OpsWorks

IDEプラグイン Eclipse

Visual Studio

ライブラリ & SDKs Java, PHP, .NET, Python, Ruby,

node.js

Development &

Administration

AWS グローバルインフラ Geographical Regions, Availability Zones, Points of Presence AZ Region

ネットワーク & ルーティング Amazon VPC / Amazon Elastic Load Balancer / Amazon Route 53 /AWS Direct Connect

Infrastructure

Service

コンピュータ処理 Amazon EC2

Auto Scale

ストレージ Amazon S3 Amazon EBS

Amazon Glacier AWS StorageGateway

データベース Amazon RDS

Amazon DynamoDB Amazon ElastiCache

Amazon Redshift

コンテンツ配信 Amazon CloudFront

メッセージ Amazon SNS Amazon SQS Amazon SES

分散処理 Elastic MapReduce

検索エンジン Amazon Cloud Search

トランスコード Amazon Elastic Transcoder

ワークフロー管理 Amazon SWF

Application

Service

Page 5: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

5 5

CTOの皆様の悩み

• 毎回なんかある度にこれをやってたら寝れません。。。

ゲーム提供者様のよくあるお悩み

インフラ増強に時間がかってユーザ増に間に合わない

サーバを買っても余るようになったらどうしよう

インフラ担当が24時間つきっきりで疲弊してる

ハードウェアやDC障害への備えとか…わかってるけど…

Page 6: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

6

そんな悩みは捨てて、ビジネスを加速させられます

AWSを使えば

Page 7: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

7

多数のゲーム会社様ご利用実績

「膨大なゲームトラフィックを処理するためのインフラを一人で構築、運用するには、AWSしか選択肢がありませんでした。」

「Amazon Redshiftがリリースされた時は衝撃的でした。」

「AWSサポートの迅速さと問題解

決能力、費用対効果は非常に高い水準にあると思います。」

最新の事例はこちらから http://www.awsmicrosite.jp/game/

Page 8: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

8

AWS主要サービス

Page 9: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

9 9

Amazon EC2(Elastic Compute Cloud)

• 数分で起動し、1時間ごとの従量課金で利用可能な仮想サーバ

• スケールアップ/ダウン、アウト/インが即座に可能

• x86系のOSをサポートし、自由にソフトウェアインストール、セットアップが可能

1 任意のゾーンに 分散配置可能

リージョン

EC2

アベイラビリティゾーンB アベイラビリティゾーンA

Page 10: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

10 10

EC2のオートスケール機能

• 負荷に応じてEC2の台数の自動増減が可能

– ピーク対応が楽に! CPU負荷が80%が5分間続いたらサーバを1台増やす

CPU負荷が30%が15分間続いたらサーバを1台減らす

• オートスケールする方法は...

– ポリシーによる突発的なピークアクセス時

– 時間指定による事前自動制御

事前に取得したシステムイメージから新規サーバを起動

AutoScaling

Page 11: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

11 11

Elastic Load Balancing(ELB)

• 従量課金でご利用いただけるロードバランサー

• アベイラビリティゾーンをまたいだロードバランシング

• オートスケール機能と合わせて利用可能

AZ-b

アベイラビリティゾーンA

APP Web DB

APP Web DB

アベイラビリティゾーンB DCレベルでの冗長性

Page 12: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

12 12

Amazon RDS(Relational Database Service)

• マネージドRDBMSサービス

• バックアップやフェイルオーバーに対応したDBを数クリックで利用可能

• サポートRDBMS

自動 バックアップ

RDS

アベイラビリティゾーンA アベイラビリティゾーンB

自動フェイル オーバ

パッチ更新

Page 13: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

13 13

Virtual Private Cloud

• クラウド内に、専用のネットワークを構築

• 既存の設備を活かしたハイブリッドクラウド環境が構築可能

プライベート サブネット

VPC Subnet

パブリック サブネット

VPC Subnet

InternetGW

オンプレミス

専用NW領域

Internet

専用線

InternetVPN VPN GW

Region

ハイブリッドクラウド

Page 14: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

14 14

Amazon Redshift

• フルマネージドData Warehouse as a Service

– カラムナ型の超並列演算を特徴とするクラスタをサービスとして提供

– 従量課金で始められる数TB ~数PB まで拡張可能

– インスタンスの従量課金(初期費用、ライセンス費用不要)

BIツール

リーダー ノード

コンピュートノード

コンピュートノード

コンピュートノード

JDBC/ODBC

10GigE Mesh

SQL エンドポイント: • クエリーの並列化 • 結果を生成

クエリー実行ノード • “N” スケールア

ウトを実現 • ローカルディス

S3, DynamoDB, EMRとの統合

Page 15: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

15

AWS活用方法

Page 16: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

16 16

スケールに応じて構成を拡張・再利用

DNS Amazon Route53

Webサーバ Amazon EC2

Single AZ Single AZ

DNS Amazon Route53

Webサーバ Amazon EC2

ロードバランサー Amazon ELB

DBサーバ Amazon RDS

Multi Tier構成

Page 17: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

17 17

AMIを用いたインスタンス複製

AMIはインスタンス作成に使用するイメージテンプレートです。

• AWSやサードパーティもAMIを提供 – https://aws.amazon.com/amis/

– https://aws.amazon.com/marketplace/

• 自由にAMI (カスタムAMI)を作成・利用可能

• カスタムAMIからEC2インスタンスを何台でも起動できる

• 作成したAMIは他者と共有可能

Instance

Amazon Simple

Storage Service

(S3)

Amazon Linux AMI

Availability Zone Availability Zone

Custom AMI

標準AMIから起動したインスタンスをカスタ

マイズ

カスタムAMIを使って、インスタンスを複数台起動

Page 18: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

18 18

スケールに応じて構成を拡張・再利用

DNS Amazon Route53

ロードバランサー Amazon ELB

DBサーバ Amazon RDS

自動レプリケーション リードレプリカ Amazon RDS

Multi AZ

マルチAZ(スタンバイ) Amazon RDS

Webサーバ Amazon EC2

キャッシュサーバ AmazonElastiCache

CDN Amazon CloudFront

Page 19: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

19 19

スケールに応じて構成を拡張・再利用

Deployment AWS CloudFormation

Template

構成のテンプレート化

テンプレートから構成を複製

Page 20: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

20 20

グローバルデプロイメント

US East Region

Sao Paulo Region

EU Region

Sydney Region

Tokyo Region

DNS Amazon Route53 Latency Base Routing

ユーザ

ユーザ

ユーザ ユーザ

ユーザ

CDN Amazon CloudFront Global Caching Edge

Page 21: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

21

ゲームプラットフォームにおける 各種AWSサービスの活用

Page 22: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

22 22

AWSサービス一覧 お客様のアプリケーション

認証 AWS IAM

モニタリング Amazon

CloudWatch

Web管理画面 Management

Console

デプロイと自動化 AWS Elastic Beanstalk AWS Cloud Formation

AWS OpsWorks

IDEプラグイン Eclipse

Visual Studio

ライブラリ & SDKs Java, PHP, .NET, Python, Ruby,

node.js

Development & Administration

AWS グローバルインフラ Geographical Regions, Availability Zones, Points of Presence AZ Region

ネットワーク & ルーティング Amazon VPC / Amazon Elastic Load Balancer / Amazon Route 53 /AWS Direct Connect

Infrastructure Service

コンピュータ処理 Amazon EC2

Auto Scale

ストレージ Amazon S3 Amazon EBS

Amazon Glacier AWS StorageGateway

データベース Amazon RDS

Amazon DynamoDB Amazon ElastiCache

Amazon Redshift

コンテンツ配信 Amazon CloudFront

メッセージ Amazon SNS Amazon SQS Amazon SES

分散処理 Elastic MapReduce

検索エンジン Amazon Cloud Search

トランスコード Amazon Elastic Transcoder

ワークフロー管理 Amazon SWF

Application Service

Page 23: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

23 23

S3による静的コンテンツ配信

• ゲームで使用するデータ(画像、アイコン、動画、ステージデータ)やパッチなど、静的コンテンツをすべてS3でホスティング

• EC2はAPIコールやゲームロジック、動的に生成されるHTMLだけで使用

動的/静的混在配信 Webサイト

動的ページ 静的ファイル

役割分担による 負荷分散

Internet

Page 24: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

24 24

Amazon S3の特徴

• 堅牢性・可用性

– 地理的に離れた3箇所以上のDCに冗長に保持

– データロストに対して自動発見・修復

– 99.999999999%の堅牢性(低冗長化オプション:99.99%)

– 99.99%の可用性

– 2つのDCで同時にデータロストが発生しても耐えられる設計

• Webサイト機能

– 静的なWebサイトのホスティングをS3で

– ファイルをS3に保存して、Website機能をONにするだけ

Page 25: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

25 25

Q4 2006 Q4 2007 Q4 2008 Q4 2009 Q4 2010 Q4 2011 Q4 2012 1Q 2013

Amazon S3全体の成長率

29億 140億 400億 1,020億

2,620億

7,620億

20%DOWN 20%DOWN

13%DOWN

5%DOWN

28%DOWN

S3の価格推移

1.3兆

Page 26: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

26 26

2.キャッシュコンテンツをユーザに送信

Contents Delivery Network

• ユーザからのアクセスを、最も近いエッジサーバに誘導することで、ユーザのアクセサビリティを向上

• エッジサーバでは、コンテンツのキャッシングを行い、オリジンに負荷をかけず、効率的に配信

クライアント オリジン配信サーバ

Amazon Cloud Front

(Edge Location)

1.最適なエッジに リクエスト

3.エッジにキャッシュがなければオリジンにリクエスト

5.キャッシュコンテンツをユーザに送信

4.エッジにコンテンツ を送信

キャッシュ コンテンツ

レスポンス向上 負荷軽減

Page 27: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

27 27

Cloud Frontの動作

• 最適エッジへの誘導

クライアント Cloud Front DNS

地理情報

cloudfront.net DNS

Cloud Front Edge

Cloud Front Edge

Cloud Front Edge

DNS Resolver ① CFの名前解決 xxx.cloudftont.net

② IPアドレス問合せ

③ 最適なEdgeアドレスの応答

④ 最適なEdgeに アクセス

オリジン配信サーバ

⑤ キャッシュが無ければオリジンから取得

Page 28: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

28

Elastic Load

Balancing

Amazon CloudFront

www.mysite.com

CloudFrontとS3によるコンテンツ配信

28

Dynamic Content

Amazon EC2

Static Content

Amazon S3

Your Users

ユーザはまず CloudFront へ 最低レイテンシへの誘導 TCP最適化 永続化コネクション

CloudFront から Origin 10オリジンまでパターン指定で振分け

各オリジンへは永続化コネクション キャッシュ生存時間も設定可能

Page 29: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

29 29

ログもS3に集約

web server

web server

web server

Amazon Elastic Map Reduce

データがS3にあれば、各種解析サービスとの連携は容易

Amazon Redshift

行動履歴の解析や、各種KPIの算出もAWSの解析サービスなら運用コストをかけずに高速に実現可能

DynamoDB

Amazon S3

Page 30: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

30

さらなる大規模トラフィックに耐えるには

Page 31: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

一般的なScaling 方法

EC2(APサーバ、memcached)のスケールアウト RDSのスペックを上げる(スケールアップ) RDSのRead Replica (MySQL Slave)を追加

App サーバ

Cache サーバ

App サーバ App サーバ

ELB

m1.large

メモリ 7.5GB CPU 4ECU

m2.4xlarge

メモリ 68GB CPU 26ECU

Page 32: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

DBのI/O(write)がボトルネックでスケールしない

システム全体のスループット・レイテンシに影響

UX的, サービス的、ビジネス的にもインパクト甚大

DBのスケールアップ(CPU/メモリ) では効果は限定的

アプリケーション、DBのチューニングでも限界がある

DB単体の限界を超えて増え続けるデータ

それでもScale出来ないケース

Heavy Write I/O, Growing Data

Page 33: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

AWS の完全マネージド・サービス

完全マネージド型で、セットアップ、運用、拡張が不要なメッセージングサービス

Amazon SQS

Amazon DynamoDB

完全マネージド型で、高速なパフォーマンス、シームレスな拡張性と信頼性をNoSQLサービス

Page 34: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

Amazon DynamoDBとは?

・フルマネージドなNoSQLデータベースサービス

・超高速・予測可能な一貫したパフォーマンス

・シームレスなスケーラビリティ、そして低コスト

運用管理必要なし

低レイテンシ、SSD

プロビジョンスループット

無限に使えるストレージ

Page 35: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

管理不要なデータベース・サービス

管理不要で高い拡張性を提供

サービス vs プロダクトの違い

• DynamoDBはサービス

• 他のデータベースはプロダクト

• 構築・運用コストに大きな差が出る

ADMIN

Page 36: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

DynamoDB導入 運用負荷軽減

スケーラブル

AWSでのDBのWrite 性能向上対策 その1

運用負荷軽減、さらなる負荷の対応も楽に。

App サーバ

Cache サーバ

App サーバ App サーバ

ELB

KVSサーバ キューサーバ

App サーバ App サーバ 非同期 サーバ

Amazon DynamoDB

Page 37: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

SQS(Simple Queue Service)とは

分散キューサービス • AWSをスケールアウトして使うためのキーコンポーネント

• 2006年よりある最古参サービス

堅牢性・信頼性・可用性が高く低コスト • 最低一度は届くことを保証(At-Least-Once delivery)

• 3箇所以上のDCにメッセージを複製保存しロストを防ぐ

フルマネージド • インストール・管理不要

• アプリからSDK・APIでSend/Receive/Deleteするだけ

Page 38: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

3箇所以上にメッセージを自動複製

東京リージョン

3か所以上で 自動複製

S3

キュー

高い耐久性で データ失わない:

世界中のリージョンから選択

データセンターA

メッセージを送受信するだけ。 可用性・性能は気にしない。 容量無制限。

データセンターB

データセンターC

メッセージ

Page 39: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

DynamoDB導入 運用負荷軽減

スケーラブル

AWSでのDBのWrite 性能向上対策 その2

App サーバ

Cache サーバ

App サーバ App サーバ

ELB

App サーバ App サーバ 非同期 サーバ

Amazon DynamoDB

Amazon Simple

Queue Service (SQS)

SQS導入

運用負荷軽減

スケーラブル

運用負荷軽減、さらなる負荷の対応も楽に。

Page 40: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

キャパシティ増強時にやること

DynamoDBの各テーブルのRead/WriteのIOPSを増加

Copyright © 2012 Amazon Web Services

App サーバ

Cache サーバ

App サーバ App サーバ

ELB

App サーバ App サーバ 非同期 サーバ

Amazon DynamoDB

Amazon Simple

Queue Service (SQS)

CloudFront

S3

Page 41: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

キャパシティ増強時でやらなくてよい事

DB・キューの容量拡張、スケーリング

DB・キューの可用性・堅牢性の維持

シャーディングに伴うアプリ修正

Page 42: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

42

ネイティブアプリに向けて さらなる最適化も

Page 43: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

モバイルSDKでAWSをバックエンドに

AWS Android/iOS SDKを使えば…

• AWS上のサービスを自在に呼び出せます

• AWSのマネージドサービスを組み合わせてバックエンドに

• しかもプラットフォーム横断で連携!

Page 44: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

AWSをバックエンドに使う例

DynamoDB, S3を使ってデータ共有

1. DB書き込み / ファイルアップロード

2. DBクエリ / ファイルリクエスト

3. DB応答 / ファイルダウンロード

DynamoDB

S3

Page 45: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

AWSをバックエンドとして使う例

SNSとSQSを使ってPub/Sub

+

1. Publish

2. Notify

SNS topic SQS queue

SNS: Simple Notification Service SQS: Simple Queue Service

Page 46: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

非同期バッチ処理の例

非同期バッチ処理要求を直接登録

• 通常のWebアプリ等

• Android/iOS SDKを使った場合

Client

Web Frontend Workers

Job queue

Workers

Job queue

Page 47: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

ログやイベント情報の集計処理例

ログやイベント情報を直接登録

• 通常のWebアプリ等

• Android/iOS SDKを使った場合

Client

Web Frontend ログ・イベント集計

ログ・イベント集計

Page 48: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

各種サービスの認証にはWeb ID連携も

Google, Facebook, Amazon (Login with Amazon)に対応

• 例:Login With Amazonで認証したユーザはS3の非公開ファイルにアクセス

• 例:Facebookで認証したユーザのゲーム利用履歴をDynamoDBに記録してFacebookのプロファイルを参照しながら行動分析

認証

Page 49: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

Amazon SNSを使えば1つのAPIで マルチプラットフォームへのプッシュ通知も可能

Amazon SNS Mobile Push

Apple Devices

Google Devices

Amazon Kindle Fire Devices

[料金] 1月100万リクエストまで無料 以降100万リクエストごとに$1.00 (2013年9月現在)

Page 50: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

50

構築運用の自動化を助ける仕組み

Page 51: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

APIでインフラ操作を自動化可能

AWSの各種操作はAPIから可能

• インフラのマネージメントを人手を使わずに自動化 人件費削減・オペレーションミス防止

• 各種プログラミング言語やコマンドラインツールを提供

Android iOS Java nodeJS .NET PHP Python Ruby CLI Powershell

写真提供

aws ec2 start-instances --instance-ids i-123456 aws ec2 attach-network-interface --instance-id i-123456 --network-interface-id eni-123456 --device-index 1 aws ec2 assign-private-ip-addresses --network-interface-id eni-123456 --private-ip-addresses …

Page 52: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

オートスケール機能で トラフィック変動やピーク対応も簡略化

スケジュールに従ったインスタンス数増減

監視システムと連動したインスタンス数増減

52

AutoScaling

予測を越えたトラフィックに

よるサービスへの影響を予防

予測可能な日次変動等

AutoScaling

Amazon CloudWatch

Alarm

Page 53: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

構築やデプロイを自動化する各種サービス

Elastic Beanstalk OpsWorks CloudFormation

柔軟性

導入の容易さ

全て追加費用なしで、課金は使用した実際にリソース分のみ

Page 54: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

54 54

AWS Elastic Beanstalk

Instance

Amazon RDS

Elastic Load Balancer

Instance

Auto scaling Group CloudWatch

deploy! WAR

• Webフロントエンドに適した構成を自動構築 • コードをデプロイするだけでWebアプリケーションを開始

Page 55: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

55 55

AWS OpsWorks

• AWSの統合アプリケーションマネージメントソリューション

• アプリケーションをレイヤでモデル化して自動制御することでDevOpsを支援

– Chef recipeの各インスタンスへの配布

– システム構成情報の各インスタンスへの配布

– ライフサイクルイベントの通知

• 小規模から複雑・大規模なシステムまで管理運用

Page 56: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

56 56

AWS CloudFormation

• 各種AWSのサービスで構成された環境をテンプレート化し、AWS環境のデプロイ/アンデプロイを一元管理できるサービス – JSONフォーマットのテンプレートでカスタマイズ可能

– ほぼすべてのAWSサービスをサポート

– 開発、検証環境など類似する環境を頻繁にデプロイする際に利用

– 稼働中のAWS環境からのテンプレートの作成も可能

EC2インスタンス

ElastiCache

RDS EMR Cluster

DynamoDB Table

SQS Queue

CloudFront Distribution

S3 Bucket

ELB

Route53 Record Set

Stack Cloud Formation

Template

Deploy/Un Deploy

Page 57: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

57

その他各種サービス

Page 58: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

Amazon Elastic Map Reduce

EMRはAWS上のHadoopサービス

• 伸縮自在・柔軟・スケーラブル・堅牢

• ログ解析・バッチ処理にベストフィット

EMRはHadoopの煩雑さをカバーする

• 開発者は本来やるべきアプリ(分析、解析等)に集中できる

各種サービスとの親和性の高い統合

• データはS3で無くさない

• 分散KVS DynamoDBとのスムースな連携

• EC2のスケーラビリティを徹底的に活用

Page 59: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

59 59

Amazon Elastic Transcoder

• 高いスケーラビリティ、使いやすさ、経済性を実現する設計で、様々なデバイスに対応した動画ファイルをトランスコードできるサービス

• トランスコード – デジタル映像を別のフォーマット、解像度などに変換する技術

– スマートフォン向けに動画ファイルの画面サイズ、解像度を変換するなど、再生デバイスに合わせコンテンツの変換を行う

Page 60: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

60 60

AWS Data Pipeline

Storage

DWH NoSQL

Big Data

DynamoDB RedShift

S3

Glacier

Data Pipeline RDB

Map Reduce

Data Flow Orchestration

RDS

Elastic MapReduce

記述されたデータフローを定期的に信頼性高く実施するためのサービス

AWSのみならずオンプレミスのデータ移行にも利用可能

Data Pipeline自体の利用料金は無料

Corporate Data Center

Page 61: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

レファレンス アーキテクチャ

Page 62: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

AWS レファレンスアーキテクチャ オンラインゲーム

Page 63: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

AWS レファレンスアーキテクチャ ウェブホスティング

Page 64: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

AWS レファレンスアーキテクチャ メディア配信

Page 65: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

AWS アーキテクチャセンター

http://aws.amazon.com/jp/architecture/

Page 66: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008

ベーシック デベロッパー ビジネス エンタープライズ

フォーラム 利用可能 利用可能 利用可能 利用可能

サポートへの コンタクト

EC2の 健全性エラーが発生した場合

コンタクト フォーム

電話、チャット コンタクト フォーム

電話、チャット コンタクト フォーム

初回応答時間 不可 12時間

(営業時間内) 1時間 15分

連絡先登録 - 1 5 無制限

24/365対応 なし なし あり あり

Trusted Advisor なし なし あり あり

専任スタッフ なし なし なし あり

特別サポート なし なし なし あり

料金(月額) 無料 $49

AWS利用総額の $0~$10K: 10% $10K~$80K: 7% $80K~$250K: 5% $250K~: 3% (最低$100)

AWS利用総額の10% (最低$15000)

24時間・365日での日本語サポートの提供

日本語の出来るエンジニアが技術サポートを提供

Page 67: ゲームプラットフォーム on AWSd0.awsstatic.com/webinars/jp/pdf/solution-casestudy/Game... · 2016-03-23 · stances 4/12/2008 4/13/2008 4/14/2008 4/15/2008 4/16/2008 4/17/2008