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

Post on 25-May-2020

4 views 0 download

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

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

Amazon Data Services Japan

2013.09.27

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

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

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

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

ビジネススピードの改善

低額な利用価格

Deploy

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

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

5 5

CTOの皆様の悩み

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

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

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

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

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

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

6

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

AWSを使えば

7

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

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

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

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

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

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

8

AWS主要サービス

9 9

Amazon EC2(Elastic Compute Cloud)

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

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

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

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

リージョン

EC2

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

10 10

EC2のオートスケール機能

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

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

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

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

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

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

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

AutoScaling

11 11

Elastic Load Balancing(ELB)

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

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

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

AZ-b

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

APP Web DB

APP Web DB

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

12 12

Amazon RDS(Relational Database Service)

• マネージドRDBMSサービス

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

• サポートRDBMS

自動 バックアップ

RDS

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

自動フェイル オーバ

パッチ更新

13 13

Virtual Private Cloud

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

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

プライベート サブネット

VPC Subnet

パブリック サブネット

VPC Subnet

InternetGW

オンプレミス

専用NW領域

Internet

専用線

InternetVPN VPN GW

Region

ハイブリッドクラウド

14 14

Amazon Redshift

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

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

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

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

BIツール

リーダー ノード

コンピュートノード

コンピュートノード

コンピュートノード

JDBC/ODBC

10GigE Mesh

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

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

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

S3, DynamoDB, EMRとの統合

15

AWS活用方法

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構成

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を使って、インスタンスを複数台起動

18 18

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

DNS Amazon Route53

ロードバランサー Amazon ELB

DBサーバ Amazon RDS

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

Multi AZ

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

Webサーバ Amazon EC2

キャッシュサーバ AmazonElastiCache

CDN Amazon CloudFront

19 19

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

Deployment AWS CloudFormation

Template

構成のテンプレート化

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

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

21

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

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

23 23

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

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

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

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

動的ページ 静的ファイル

役割分担による 負荷分散

Internet

24 24

Amazon S3の特徴

• 堅牢性・可用性

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

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

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

– 99.99%の可用性

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

• Webサイト機能

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

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

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兆

26 26

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

Contents Delivery Network

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

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

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

Amazon Cloud Front

(Edge Location)

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

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

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

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

キャッシュ コンテンツ

レスポンス向上 負荷軽減

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に アクセス

オリジン配信サーバ

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

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オリジンまでパターン指定で振分け

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

29 29

ログもS3に集約

web server

web server

web server

Amazon Elastic Map Reduce

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

Amazon Redshift

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

DynamoDB

Amazon S3

30

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

一般的な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

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

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

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

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

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

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

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

Heavy Write I/O, Growing Data

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

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

Amazon SQS

Amazon DynamoDB

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

Amazon DynamoDBとは?

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

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

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

運用管理必要なし

低レイテンシ、SSD

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

無限に使えるストレージ

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

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

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

• DynamoDBはサービス

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

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

ADMIN

DynamoDB導入 運用負荷軽減

スケーラブル

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

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

App サーバ

Cache サーバ

App サーバ App サーバ

ELB

KVSサーバ キューサーバ

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

Amazon DynamoDB

SQS(Simple Queue Service)とは

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

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

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

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

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

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

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

東京リージョン

3か所以上で 自動複製

S3

キュー

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

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

データセンターA

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

データセンターB

データセンターC

メッセージ

DynamoDB導入 運用負荷軽減

スケーラブル

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

App サーバ

Cache サーバ

App サーバ App サーバ

ELB

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

Amazon DynamoDB

Amazon Simple

Queue Service (SQS)

SQS導入

運用負荷軽減

スケーラブル

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

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

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

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

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

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

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

42

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

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

AWS Android/iOS SDKを使えば…

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

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

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

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

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

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

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

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

DynamoDB

S3

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

SNSとSQSを使ってPub/Sub

+

1. Publish

2. Notify

SNS topic SQS queue

SNS: Simple Notification Service SQS: Simple Queue Service

非同期バッチ処理の例

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

• 通常のWebアプリ等

• Android/iOS SDKを使った場合

Client

Web Frontend Workers

Job queue

Workers

Job queue

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

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

• 通常のWebアプリ等

• Android/iOS SDKを使った場合

Client

Web Frontend ログ・イベント集計

ログ・イベント集計

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

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

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

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

認証

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

Amazon SNS Mobile Push

Apple Devices

Google Devices

Amazon Kindle Fire Devices

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

50

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

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 …

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

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

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

52

AutoScaling

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

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

予測可能な日次変動等

AutoScaling

Amazon CloudWatch

Alarm

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

Elastic Beanstalk OpsWorks CloudFormation

柔軟性

導入の容易さ

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

54 54

AWS Elastic Beanstalk

Instance

Amazon RDS

Elastic Load Balancer

Instance

Auto scaling Group CloudWatch

deploy! WAR

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

55 55

AWS OpsWorks

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

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

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

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

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

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

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

57

その他各種サービス

Amazon Elastic Map Reduce

EMRはAWS上のHadoopサービス

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

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

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

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

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

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

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

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

59 59

Amazon Elastic Transcoder

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

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

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

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

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

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

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

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

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

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

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

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

サポートへの コンタクト

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日での日本語サポートの提供

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