Translimitにおける
AWS活用術
松下 雅和 (@matsukaz)
株式会社トランスリミット CTO
2016.09.27
@matsukaz
松下 雅和
株式会社トランスリミットCTO
カメラ, 折りたたみ自転車,テニス, 卓球, ボウリング
AWS歴 5年
自己紹介
2015年7月 リリース2014年5月 リリース
累計DL数 4,000万突破!
事業内容はゲーム開発 (海外ユーザ比率95%以上)
株式会社トランスリミット
Brain Dots紹介
Brain Wars紹介
アーキテクチャ選定の
ポイント
アジェンダ
Brain Dots紹介
Brain Wars紹介
アーキテクチャ選定の
ポイント
アジェンダ
サービス紹介
リアルタイム対戦型の脳トレ
x3
バトル開始
マッチング
20秒3ラウンドの
脳トレ対戦
ゲームは30種類
合計スコアで
勝敗決定
毎週月曜0時に
ランキング確定
http://translimit.co.jp/services/brainwars.html
全体アーキテクチャ
WorkDocs
MySQL
ELB
EC2
EC2
S3
OpsWorks
ElastiCache
(Redis)
DynamoDB
RDS
(MySQL)
SES SNS SQS
EC2
SNS
Route 53
Slack
リアルタイム対戦
Socket Server
API Server
Admin Server
CloudWatch SNS Lambda
Google
BigQuery
x6
SNS
SQS
IAM EC2
Localization
Server
APK
Google
Analytics
WorkDocs
MySQL
ELB
EC2
EC2
S3
OpsWorks
ElastiCache
(Redis)
DynamoDB
RDS
(MySQL)
SES SNS SQS
EC2
SNS
Route 53
Slack
リアルタイム対戦
Socket Server
API Server
Admin Server
CloudWatch SNS Lambda
Google
BigQuery
x6
SNS
SQS
IAM EC2
Localization
Server
APK
Easy Deployment,
Auto Scale
(Load & Time)
ユーザデータゴースト用
バトルログ
ランキング,
一時データ
プロフィール画像,
言語ファイル, etc
Google
Analytics
プレイ中
WorkDocs
MySQL
ELB
EC2
EC2
S3
OpsWorks
ElastiCache
(Redis)
DynamoDB
RDS
(MySQL)
SES SNS SQS
EC2
SNS
Route 53
Slack
リアルタイム対戦
Socket Server
API Server
Admin Server
CloudWatch SNS Lambda
Google
BigQuery
x6
SNS
SQS
IAM EC2
Localization
Server
APK
メール送信 送信失敗時
Google
Analytics
メール送信
WorkDocs
MySQL
ELB
EC2
EC2
S3
OpsWorks
ElastiCache
(Redis)
DynamoDB
RDS
(MySQL)
SES SNS SQS
EC2
SNS
Route 53
Slack
リアルタイム対戦
Socket Server
API Server
Admin Server
CloudWatch SNS Lambda
Google
BigQuery
x6
SNS
SQS
IAM EC2
Localization
Server
APK
プッシュ通知
device token登録 fabric,
rake tasks
Google
Analytics
プッシュ通知
ChatOps!
WorkDocs
MySQL
ELB
EC2
EC2
S3
OpsWorks
ElastiCache
(Redis)
DynamoDB
RDS
(MySQL)
SES SNS SQS
EC2
SNS
Route 53
Slack
リアルタイム対戦
Socket Server
API Server
Admin Server
CloudWatch SNS Lambda
Google
BigQuery
x6
SNS
SQS
IAM EC2
Localization
Server
APK
fabric,
rake tasks
画像削除
名前変更, BAN,
コイン付与, …
Google
Analytics
通報、問い合わせ対応
ChatOps!
WorkDocs
MySQL
ELB
EC2
EC2
S3
OpsWorks
ElastiCache
(Redis)
DynamoDB
RDS
(MySQL)
SES SNS SQS
EC2
SNS
Route 53
Slack
リアルタイム対戦
Socket Server
API Server
Admin Server
CloudWatch SNS Lambda
Google
BigQuery
x6
SNS
SQS
IAM EC2
Localization
Server
APK
fabric,
rake tasks
ビルド
Auto Scale
Dynamic
DynamoDB
クラッシュレポート
ログ分析
パフォーマンス監視
アラート通知
デプロイ
アクセス分析
Google
Analytics
その他運用
ChatOps!
利用中のサービスたち
EC2
ELB
OpsWorks
SES
SNS
SQS
CloudWatch
Lambda
MySQL
ElastiCache (Redis)
DynamoDB
RDS (MySQL)
IAM
WorkDocs
Route 53
S3
Google BigQuery
Google Analytics
Brain Dots紹介
Brain Wars紹介
アーキテクチャ選定の
ポイント
アジェンダ
サービス紹介
線や図形を描き、赤と青の
ボールをぶつける描く脳トレ
http://translimit.co.jp/services/braindots.html
ver.2からユーザが自由に
ステージ作成可能に!
全体アーキテクチャ
WorkDocs
ELB
EC2
S3
OpsWorks
ElastiCache
(Redis)
RDS
(Aurora)
EC2
SNS
Route 53
Slack
API Server
AdminServer
CloudWatch SNS Lambda
Google BigQuery SNSSQS
IAM EC2
Localization
Server
APK
Cognito
Game Center iCloud KVS
iOS
Google Play
Saved Games
Google Play
Game Services
Android
+
Everyplay
Aurora
Google
Analytics
IPA
SNS SQS EC2
WorkDocs
ELB
EC2
S3
OpsWorks
ElastiCache
(Redis)
RDS
(Aurora)
EC2
SNS
Route 53
Slack
API Server
AdminServer
CloudWatch SNS Lambda
Google BigQuery SNSSQS
IAM EC2
Localization
Server
APK
Cognito
Game Center iCloud KVS
iOS
Google Play
Saved Games
Google Play
Game Services
Android
+
Everyplay
Aurora
Google
Analytics
IPA
SNS SQS EC2
言語ファイル
ステージ
クリアデータ
ステージ
クリアデータ
ベーシックステージプレイ中
リプレイ共有
WorkDocs
ELB
EC2
S3
OpsWorks
ElastiCache
(Redis)
RDS
(Aurora)
EC2
SNS
Route 53
Slack
API Server
AdminServer
CloudWatch SNS Lambda
Google BigQuery SNSSQS
IAM EC2
Localization
Server
APK
Cognito
Game Center iCloud KVS
iOS
Google Play
Saved Games
Google Play
Game Services
Android
+
Everyplay
Aurora
Google
Analytics
IPA
SNS SQS EC2
プロフィール画像, etc
Easy Deployment,
Auto Scale (Load)
ユーザデータ,
ステージデータ
ステージの
クリア率算出
ランキング
イベントや
オリジナルステージ
利用時のみアクセス
rake worker
オリジナルステージプレイ中
リプレイ共有
WorkDocs
ELB
EC2
S3
OpsWorks
ElastiCache
(Redis)
RDS
(Aurora)
EC2
SNS
Route 53
Slack
API Server
AdminServer
CloudWatch SNS Lambda
Google BigQuery SNSSQS
IAM EC2
Localization
Server
APK
Cognito
Game Center iCloud KVS
iOS
Google Play
Saved Games
Google Play
Game Services
Android
+
Everyplay
Aurora
Google
Analytics
IPA
SNS SQS EC2
プッシュ通知
device token登録
fabric,
rake tasks
プッシュ通知
ChatOps!
WorkDocs
ELB
EC2
S3
OpsWorks
ElastiCache
(Redis)
RDS
(Aurora)
EC2
SNS
Route 53
Slack
API Server
AdminServer
CloudWatch SNS Lambda
Google BigQuery SNSSQS
IAM EC2
Localization
Server
APK
Cognito
Game Center iCloud KVS
iOS
Google Play
Saved Games
Google Play
Game Services
Android
+
Everyplay
Aurora
Google
Analytics
IPA
SNS SQS EC2
fabric,
rake tasks
アイテム付与,
BAN, …
rake worker
通報、問い合わせ対応
ChatOps!
WorkDocs
ELB
EC2
S3
OpsWorks
ElastiCache
(Redis)
RDS
(Aurora)
EC2
SNS
Route 53
Slack
API Server
AdminServer
CloudWatch SNS Lambda
Google BigQuery SNSSQS
IAM EC2
Localization
Server
APK
Cognito
Game Center iCloud KVS
iOS
Google Play
Saved Games
Google Play
Game Services
Android
+
Everyplay
Aurora
Google
Analytics
IPA
SNS SQS EC2 パフォーマンス監視
アラート通知
クラッシュレポート
デプロイ
ビルドアクセス分析
コンテンツ
アップロード
その他運用
ChatOps!
利用中のサービスたち
EC2
ELB
OpsWorks SNS
SQS
CloudWatch
Lambda
MySQL
ElastiCache (Redis)
RDS (Aurora)
IAM
WorkDocs
Route 53
S3
Cognito
Google BigQuery
Google Analytics
Brain Dots紹介
Brain Wars紹介
アーキテクチャ選定の
ポイント
アジェンダ
• スタートアップ & ゲーム開発の話
• 可能な限りコストは抑えたい
• スピード感大事
• 事業インパクトの大きさで判断する
• 頑張らない運用
前提として
• サーバ/インフラだけでアーキテクチャ設計しない
• クライアント含めてトータルで考える
• サーバ/インフラを用意しないのも選択の一つ
• プラットフォームの機能や外部サービスを利用
• SQSやLambdaなど積極的にサーバーレス化
クライアント含めたアーキテクチャ
• インフラは落ちる前提で頑張りすぎない
• 落ちても影響を最小限に留めて安眠運用
• 障害を許容するアーキテクチャ
• Brain Warsのゴーストバトル(DynamoDB)
• Brain Dotsのオフラインプレイ

(AppleやGoogleのプラットフォーム機能)
インフラに完璧を求めない
• 全世界にいるユーザを対象に
• AWSのリージョンはOregonを中心に
• 簡単に多言語対応可能な仕組み
• プッシュ通知は言語/タイムゾーン別に分割、

適切な通知内容/タイミングで
グローバル
• オートスケールを最大限活用
• 使えるサービスは新しいものでも積極的に採用
• コストが見合わないものは自作する
コスト削減
• オートスケールを最大限活用
• 使えるサービスは新しいものでも積極的に採用
• コストが見合わないものは自作する
• |д゚)<AWSにこだわらない

|彡サッ
コスト削減
HAPPY AWS LIFE !!!
(๑•̀ㅂ•́)‫و‬
宣伝
ただいま
メンバー募集中!
お待ちしております!
https://www.wantedly.com/companies/translimit
http://translimit.co.jp/recruit.html

TranslimitにおけるAWS活用術