applibot presents smartphone game on aws

Post on 30-Jun-2015

549 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

AWS の活用で変わるこれからのゲームインフラの構築と運用2014 年 7 月 4 日アマゾンデータサービスジャパン株式会社シニアソリューションアーキテクト安川 健太

Applibot presents SmartphoneGame on AWS

自己紹介

安川 健太 (@thenkentiest)• AWS ソリューションアーキテクト• 担当するお客様の範囲

• スタートアップ• ゲーム・ソーシャルサービス• 時々エンタープライズ

略歴• エリクソンリサーチにて M2M や SNS + IoT な感じの技術の研究開発• ユーザとして触った AWS に感銘を受けて AWS ソリューションアーキテク

トに(↑イマココ)

洗練されたスケーラブルなアプリケーションの構築を助ける幅広く、深いプラットフォーム

豊富な品揃え

30 を超える AWS ビルディングブロックSupport CertificationTrainingProfessional Services

Technology Partners Consulting Partners AWS MarketplaceEcosystemElastic Beanstalk for Java, Node.js, Python, Ruby, PHP and .Net

OpsWorksCloudFormation

Containers & Deployment (PaaS)

Management &AdministrationIAM CloudWatchCloudTrail APIs and SDKsManagement ConsoleCloud HSM Command Line Interface

Direct Connect Route 53VPCNetworking

Analytics

Data PipelineRedshiftEMR Kinesis SWFSNS SQS CloudSearchSES AppStreamCloudFront

Application Services

WorkSpaces

Regions Availability Zones Content Delivery POPs

Storage GatewayS3 EBS Glacier Import/Export DynamoDB ElastiCache

StorageCompute Databases

RDS

MySQL, PostgreSQLOracle, SQL Server

Elastic Load BalancerEC2 Auto Scaling

CTO の皆様の悩み

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

ゲーム提供者様のよくあるお悩みインフラ増強に時間がかってユーザ増に間に合わない

サーバを買っても余るようになったらどうしようインフラ担当が 24 時間つきっきりで疲弊してる

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

ほんとはゲームを面白くすることに時間使いたいですよね…?

本来やりたかった面白いゲームの開発に集中してほしい

AWS を使って

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

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

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

「 AWS サポートの迅速さと問題解決能力、費用対効果は非常に高い水準にあると思います。」

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

30 を超える AWS ビルディングブロックSupport CertificationTrainingProfessional Services

Technology Partners Consulting Partners AWS MarketplaceEcosystemElastic Beanstalk for Java, Node.js, Python, Ruby, PHP and .Net

OpsWorksCloudFormation

Containers & Deployment (PaaS)

Management &AdministrationIAM CloudWatchCloudTrail APIs and SDKsManagement ConsoleCloud HSM Command Line Interface

Direct Connect Route 53VPCNetworking

Analytics

Data PipelineRedshiftEMR Kinesis SWFSNS SQS CloudSearchSES AppStreamCloudFront

Application Services

WorkSpaces

Regions Availability Zones Content Delivery POPs

Storage GatewayS3 EBS Glacier Import/Export DynamoDB ElastiCache

StorageCompute Databases

RDS

MySQL, PostgreSQLOracle, SQL Server

Elastic Load BalancerEC2 Auto Scaling

お客様のフィードバックに基づくイノベーション

2007 2008 2009 2010 2011 2012 2013

9 24 48 61 82

159

280新サービス・機能追加の数

今日のアジェンダ

• 進化し続けるコンピュートサービス Amazon EC2- 新しいインスタンスタイプ- 新しいディスクオプション- Docker への対応

• パフォーマンスの壁を越えてスケールするために- Amazon ElastiCache のアップデート- Amazon DynamoDB の活用法

• 増え続けるデータの解析もお任せ- Amazon Redshift と Amazon Kinesis でデータ解析

進化し続けるコンピュートサービス Amazon EC2

多種多様なインスタンスタイプ

GPU一般用途

バランス型メモリ最適化

ストレージと IO最適化

コンピュート最適化

CR1M2CC2C1 HI1 HS1 CG1M1

多種多様なインスタンスタイプ

GPU一般用途 メモリ最適化

ストレージと IO最適化

コンピュート最適化

CR1M2CC2C1 HI1 CG1M1

G2M3 R3C3 I2 HS1T2

M3 インスタンス - 汎用タイプ

• Intel Xeon E5-2670 (Sandy Bridge)

• SSD のインスタンスストレージ

CPU 性能、メモリー、ネットワークのバランスがとれたタイプ

特徴 モデル vCPU メモリ(GiB)

SSDストレージ(GB)

オンデマンド料金(東京 )

m3.medium 1 3.75 1 x 4 $0.101

m3.large 2 7.5 1 x 32 $0.203

m3.xlarge 4 15 2 x 40 $0.405

m3.2xlarge 8 30 2 x 80 $0.810

C3 インスタンス - CPU 最適化

• Intel Xeon E5-2670 v2 (Ivy Bridge)

• SSD インスタンスストレージ• 低レイテンシー、低ジッタ、高い

秒間あたりのパケット性能を持つ拡張されたネットワーク(SR-IOV, VPC のみ )

• クラスタリングサポート

CPU 性能に特化したタイプ。 CPU あたりの料金が最も安い

特徴モデル vCPU メモリ

(GiB)SSDストレージ(GB)

オンデマンド料金(東京 )

c3.large 2 7 2 x 16 $0.128c3.xlarge 4 14 2 x 40 $0.255c3.2xlarge 8 28 2 x 80 $0.511c3.4xlarge 16 55 2 x 160 $1.021c3.8xlarge 32 108 2 x 320 $2.043

R3 インスタンス - メモリ最適化

• Intel Xeon E5-2670 v2 (Ivy Bridge)

• SSD インスタンスストレージ

• 低レイテンシー、低ジッタ、高い秒間あたりのパケット性能を持つ拡張されたネットワーク (SR-IOV, VPC のみ )

メモリに特化したタイプ。メモリ GiB あたりの料金が最も安い

特徴モデル vCPU メモリ

(GiB)SSDストレージ(GB)

オンデマンド料金(東京 )

r3.large 2 15 1 x 32 $0.210r3.xlarge 4 30.05 1 x 80 $0.420r3.2xlarge 8 61 1 x 160 $0.840r3.4xlarge 16 122 1 x 320 $1.680r3.8xlarge 32 244 2 x 320 $3.360

I2 インスタンス - ストレージ最適化

• Intel Xeon E5-2670 v2 (Ivy Bridge)

• SSD インスタンスストレージ• TRIM サポート• 低レイテンシー、低ジッタ、高い秒

間あたりのパケット性能を持つ拡張されたネットワーク(SR-IOV, VPC のみ )

ストレージに最適化されており、高いランダム I/O 性能、 IOPS を提供i2.8xlarge で秒間 365,000 超のランダムリードと秒間 315,000 超のランダムライト

特徴 モデル vCPU メモリ(GiB)

SSDストレージ(GB)

オンデマンド料金(東京 )

i2.xlarge 4 30.05 1 x 800 $1.051

i2.2xlarge 8 61 2 x 800 $2.101

i2.4xlarge 16 122 4 x 800 $4.202

i2.8xlarge 32 244 8 x 800 $8.404

T2 インスタンス – バースト可能汎用タイプ

• Intel Xeon Family• HVM のみ対応

- 安価に HVM を利用できる

- PVM は使えない• 1 分間 CPU を使いきれる

クレジットを 1 時間毎に受け取り

普段はコンピュータパワーをそれほど必要としないが、間欠的に多くのコンピュータリソースが必要となる用途に

特徴 タイプ vCPU メモリ(GiB)

CPUクレジット

オンデマンド料金(東京 )

t2.micro 1 1.0 6 cr/h $0.020

t2.small 1 2.0 12 cr/h $0.040

t2.medium 2 4.0 24 cr/h $0.080

m3.medium(参考)

1 3.75 - $0.101

T2 で負荷をかけた際の CPU クレジット使用量と残高

• CloudWatch で確認可能

ディスク IO も望みのスペックを指定できます

EBS プロビジョンド IOPS

• ディスクの IO 性能 (IOPS) を指定できる• IOPS 値の指定は 100 ~ 4000 で 1 刻みが可能

- (Standard な EBS の IOPS は、約 100 程度 )• 複数ボリュームを組み合わせてさらに高い IO 性能も実現可能

EBS 最適化オプション

• EBS 用にネットワーク帯域を最適化• 確保される帯域は、 500Mbps か 1000Mbps (インスタンスタ

イプ

新規追加された gp2 (General Purpose SSD) ボリューム

Volume Type General Purpose(SSD) Provisioned IOPS(SSD) Magnetic ( 旧 Standard)

ユースケース • 起動ボリューム• 仮想デスクトップ環境• 開発およびテスト環境• 間欠的に負荷がかかる

データベース

• 高い I/O パフォーマンスを継続的に要求するアプリケーション

• 大規模なデータベースなど

• アクセス頻度の低いデータ

• コストを最重要視する場合

ボリュームサイズ

1GiB から 1TiB まで 10GiB から 1TiB まで 1GiB から 1TiB まで

パフォーマンス ・ベースは 1GiB あたり3IOPS・ 3000IOPS までバースト可能

プロビジョニング次第( 1 ボリュームあたりの上限は 4000IOPS )

平均 100IOPS

数百 IOPS までバースト可

料金(東京リージョン)

• 1GB あたり 1ヶ月$0.12

• 1GB あたり 1ヶ月$0.142

• 1 IOPS あたり 1ヶ月$0.114

• 1GB あたり 1ヶ月$0.08

• 100万 I/O リクエストあたり $0.08

gp2 のバースト時のパフォーマンス

• ベースパフォーマンスを超える I/Oが要求されると、一定時間バーストが発生する

• バースト終了後はベースパフォーマンス (1GB あたり 3IOPS )が維持される

• 1TB をプロビジョニングすると常時3000IOPS のパフォーマンスを継続できる(= Provisioned IOPS と同等 )

General Purpose(SSD) ボリュームのパフォーマンス仕様( I/O 負荷継続時、ボリュームサイズ毎)IOPS

IOPS と I/O Credit 残高の関係IOPS

I/O Credit残高

初期状態でI/O Credit 残高は

5,400,000

I/O Credit が残っている間はバース

ト。 3000IOPS出る

バースト中は I/O Credit の残高を取り崩す形とな

残高が 0 になるとバーストは終

残高が 0 になるとI/O性能もベースパフォーマンスに戻る

I/O 負荷がベースパフォーマンスを下回ると Credit が貯金される

再び高負荷が発生すると、 I/O Credit の残高に応じてバース

ベースパフォーマンス(gp2 500GB 時 )

AWS Elastic Beanstalk for Docker2014/04/24 http://bit.ly/1f8Bd7z

Meets

Amazon Linux AMI 2014.03 から Docker をサポート

パフォーマンスの壁を越えてスケールするために

Amazon ElastiCache とは

構築• キャッシュクラスタを数クリックで起動• EC2同様、初期費用無し、時間単位の従量課金移行

• 2種類のエンジン (memcached, redis) をサポート• 既存アプリケーションの変更不要

運用• 可用性を向上させる機能• モニタリング、自動障害検出、復旧、拡張、パッチ管理機

能を提供セキュリティ

• セキュリティグループ、 VPC 対応

gumi さんでのご利用事例

Case Study http://www.slideshare.net/hommatomonori/elasticache-for-redis

アベイラビリティゾーンをまたいだ Replication構成

リードレプリカを複数のアベイラビリティゾーンにデプロイ可能• 同一 AZ のリードレプリカを参照し高速なデータ取得が可能に• プライマリノード側の AZ 障害時のデータ保全が可能に

Availability Zone - a Availability Zone - b

非同期レプリケーション

東京リージョン

SET

GET

SET

GET

App App

リードレプリカ昇格

リードレプリカをプライマリに昇格可能昇格は数分が必要

• ダウンが発生するため、クライント側でエラーハンドリングは必要• アプリ修正不要(プライマリの endpoint が変わらない)

① ① unlink

② SYNC

③ DNS change

Backup & Restore for ElastiCache Redis

スナップショット• 一日1回自動スナップショット。 S3 にデータを保存• 任意のタイミングで手動スナップショット取得可能• 今までご自身で EC2 Redis経由で行ったバックアップが不要となる

2014/4/24

slaveof

Redis

RDB copy

restore

snapshot

Amazon DynamoDB

NoSQL as a Service

超高速・予測可能な一貫したパフォーマンスシームレスなスケーラビリティと低コスト

運用管理必要なし

低レイテンシ、 SSD

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

無限に使えるストレージ

ADMIN

DynamoDB の知られざる強力な機能

• Conditional Update

• 「キーにマッチするレコードが存在したら / しなかったら」や「この値が○○以上 /以下だったら」という条件付き書き込み /更新ができる

• Attribute への Add操作、 Atomic Counter• Attribute が Number型なら足し算 /引き算、 Set型ならそのセットに

対して値を追加

◯☓ ゲームのステート管理

◯☓ ゲーム

{ Id : abecd, Players : [ Alice, Bob ], State : STARTED, Turn : Bob, Top-Right : O}

Game Item

◯☓ ゲーム

AmazonDynamoDB

Alice Bob

◯☓ ゲーム

AmazonDynamoDB

Alice Bob

Update: Top-Left : X Turn : Alice

◯☓ ゲーム – 今のままだとチートが可能

Alice Bob (1)

AmazonDynamoDB

Bob (2) Bob (3)

◯☓ ゲーム – 今のままだとチートが可能

Bob (1)

AmazonDynamoDB

Bob (2)Bob (3)

Update: Turn : Alice Top-Left : X

Update: Turn : Alice Mid : X

State : STARTED,Turn : Bob,Top-Right : O

Update: Turn : Alice Low-Right : X

◯☓ ゲーム – 今のままだとチートが可能

Bob (1)

AmazonDynamoDB

Bob (2)Bob (3)

Update: Turn : Alice Top-Left : X

Update: Turn : Alice Mid : X

State : STARTED,Turn : Alice,Top-Right : O,Top-Left : X,Mid: X,Low-Right: X

Update: Turn : Alice Low-Right : X

Conditional Update を使った楽観的ロック

現在の特定の Attribute に特定の値が入っていた場合にのみ更新を実施条件が合わなかったら更新せずに終了(但し、 1 つのアイテムのみで適用可能)

修正版 ゲーム◯☓

Bob (1)

Amazon DynamoDB

Bob (2)Bob (3)

Update: Turn : Alice Top-Left : XExpect: Turn : Bob Top-Left : null

State : STARTED, Turn : Bob, Top-Right : O

Update: Turn : Alice Mid : XExpect: Turn : Bob Mid : null

Update: Turn : Alice Low-Right : XExpect: Turn : Bob Low-Right : null

修正版 ゲーム◯☓

Bob (1)

AmazonDynamoDB

Bob (2)Bob (3)

State : STARTED, Turn : Bob, Top-Right : O

Update: Turn : Alice Top-Left : XExpect: Turn : Bob Top-Left : null

Update: Turn : Alice Low-Right : XExpect: Turn : Bob Low-Right : null

Update: Turn : Alice Mid : XExpect: Turn : Bob Mid : null

修正版 ゲーム◯☓

Bob (1)

AmazonDynamoDB

Bob (2)Bob (3)

State : STARTED, Turn : Alice, Top-Right : O, Top-Left : X

Update: Turn : Alice Top-Left : XExpect: Turn : Bob Top-Left : null

Update: Turn : Alice Mid : XExpect: Turn : Bob Mid : null

Update: Turn : Alice Low-Right : XExpect: Turn : Bob Low-Right : null

データの解析も AWS なら簡単には初めて大きくスケール

Elastic MapReduce

DynamoDB RedShift

S3

データが S3 にあれば、あとは必要に応じて解析クラスタを起動して利用できる

シンプルなログ解析システムの例

各エンド端末でログをファイルに書き出す定期的に S3 に Upload定期的に Redshift に読み込みBIツールを使って Redshift 解析

2014-01-24,nateware,e4df,login2014-01-24,nateware,e4df,gamestart2014-01-24,nateware,e4df,gameend2014-01-25,nateware,a88c,login2014-01-25,nateware,a88c,friendlist2014-01-25,nateware,a88c,gamestart

Amazon Redshift

リーダーノード• SQL エンドポイント• メタデータの保存• クエリ実行のコーディネート

コンピュートノード• カラムナ型のストレージ• Amazon S3 を介したデータの

ロード、バックアップ、リストア• Amazon DynamoDB からの並列ロード

シングルノードでも利用可能

10 GigE(HPC)

IngestionBackupRestore

SQL Clients/BI Tools

128GB RAM

16TB disk

16 cores

Amazon S3/DynamoDB

JDBC/ODBC

128GB RAM

16TB disk

16 coresCompute Node

128GB RAM

16TB disk

16 coresCompute Node

128GB RAM

16TB disk

16 coresCompute Node

LeaderNode

前のシステムにサーバのログも追加

サーバログも S3 に収集Redshift で読み込んで解析外部解析サービスの利用も可

EC2

外部解析サービス

Tableau + Redshift

DynamoDB のデータも解析に利用

Game のバックエンドに DynamoDBRedshift に直接読み込み可Redshift でうまくデータを結合 EC2

EMR を使ってデータを前処理

EMR でログファイルの ETL 処理EMR で DynamoDB上のデータも前処理

EC2

Amazon Kinesis でリアルタイム分析も

Amazon Kinesisリアルタイムでビッグデータを取り込むためのサービス

Data Sources

App.4

[Machine Learning]

AWS

Endp

oint

App.1

[Aggregate & De-Duplicate]

Data Sources

Data Sources

Data Sources

App.2

[Metric Extraction]

S3

DynamoDB

Redshift

App.3[Sliding Window

Analysis]

Data Sources

Availability Zone

Shard 1

Shard 2

Shard N

Availability Zone

Availability Zone

Kinesis を使ったリアルタイムデータ処理

Kinesis にデータストリームを入力複数の Writer と Reader が共存可もちろんデータの Redshift への読み込みも

EC2

EC2

Spark コネクタもあります

EC2

EC2

FPS のリアルタイム分析

PUT "kills" {"game_id":"e4b5","map":"Boston","killer":38,"victim":39,"coord":"274,591,48"}

PUT "kills" {"game_id":"e4b5","map":"Boston","killer":13,"victim":27,"coord":"101,206,35"}

PUT "kills" {"game_id":"e4b5","map":"Boston","killer":38,"victim":39,"coord":"165,609,17"}

PUT "kills" {"game_id":"e4b5","map":"Boston","killer":6,"victim":29,"coord":"120,422,26"}

PUT "kills" {"game_id":"30a4","map":"Los Angeles","killer":34,"victim":18,"coord":"163,677,18"}

PUT "kills" {"game_id":"30a4","map":"Los Angeles","killer":20,"victim":37,"coord":"71,473,20"}

PUT "kills" {"game_id":"30a4","map":"Los Angeles","killer":21,"victim":19,"coord":"332,381,17"}

PUT "kills" {"game_id":"30a4","map":"Los Angeles","killer":0,"victim":10,"coord":"14,108,25"}

PUT "kills" {"game_id":"6ebd","map":"Seattle","killer":32,"victim":18,"coord":"13,685,32"}

PUT "kills" {"game_id":"6ebd","map":"Seattle","killer":7,"victim":14,"coord":"16,233,16"}

PUT "kills" {"game_id":"6ebd","map":"Seattle","killer":27,"victim":19,"coord":"16,498,29"}

PUT "kills" {"game_id":"6ebd","map":"Seattle","killer":1,"victim":38,"coord":"138,732,21"}

FPS のリアルタイムヒートマップ

イベントを解析しながらユーザにアクションを促すシステムの例

AWS

Endp

oint

Kinesis App.1

Kinesis App.2

Redshift

DynamoDB

Kinesis App.3

Availability Zone

Shard 1Shard 2Shard N

Availability Zone

Availability Zone

RDS

Data analyst

BI tool

まとめ

進化し続けるコンピュートサービス Amazon EC2• 新しいインスタンスタイプ• 新しいディスクオプション• Docker への対応

パフォーマンスの壁を越えてスケールするために• Amazon ElastiCache のアップデート• Amazon DynamoDB の活用法

増え続けるデータの解析もお任せ• Amazon Redshift と Amazon Kinesis でデータ解析

AWS Summit Tokyo 2014

2014 年 7 月 17 日 ( 木 ) ~ 18 日 ( 金 )グランドプリンス新高輪 ( 国際館パミール )来場無料 ( 要事前登録 )http://www.awssummittokyo.com/• 申し込み受付開始通知メール受付開始!

top related