2017年10月4日水曜日

AWS Summit Tokyo 2016 | 【ディライトワークス様登壇】Fate/Grand Order における、ディライトワークス流 AWS 導入&活用術

【ディライトワークス様登壇】Fate/Grand Order における、ディライトワークス流 AWS 導入&活用術 (今井 守生,田村 祐樹)

参加時のメモ

Fate/Grand Order
ディライトワークス
 500万DL

元々はMicroSrvice Azure
2015/07 リリース
2015/10 移行を決定
2015/12 移行を実施

会社の立ち上げ直後 (最初のプロダクト?
クライアントサイドはUnity(C#)
サーバサイドもC# コードの共通化、学習コスト
----
2,000-3000 r/s
10,000 qps (read)
4,000 qps(write

IIS(Game Server)
mysql 5.6
redis 2.8
----
ログイン時に同期
- ユーザアクションをトリガーで差分同期
- フレンド情報に関してのみ一定期間毎に同期

ボトルネックはMysql
- commit時に0.5sec slowquery
  数秒おきにI/O性能が落ちていた
  Premium Storage(P30)を使うことで解決
- レプリ遅延
  salveをRAID 0に変更
  I/Oバリア機能を無効化
  I/Oスケジューラを cfg->noop
  => 参照をmasterに向ける
- DBサーバのメモリ枯渇でswap頻発

前部れのないサーバダウンが1ヶ月に3回(Redis 2回、Mysqlで1回)
 - 冗長構成をとってなかった。。
 - IaaS毎のダウンタイム比較するとAzureは結構長かった
------------------------
windows Server 12 R2
elastic beanstalk

30サーバ
3,000-5000 r/s
20,000 qps (read)
8,000 qps(write

スカイアーチネットワークに移管を助力。今も運用業務を
---------
Z-forward-forヘッダ
Azure依存コードの置き換え
iPhonのproxyでAWS環境に向けてリリーズ済バイナリでテストプレイ
深夜メンテ、Azure->AWSのレプリを逆に張り替える(切り戻し

innod_db_read_thread/write_thread を増やした。
-> ○○○○○(名前忘れた)のパラメータを0に設定したら、スレッド詰まって死亡した。適切に上限設定しておく
公式ドキュメントをよもう! ブログは理由が書かれてないことあるので注意

JJUG CCC 2015 Spring | M-6 MQTTの使いどころ 〜軽量プロトコルで低コストにデータを集めよう〜

M-6 MQTTの使いどころ 〜軽量プロトコルで低コストにデータを集めよう〜 遊佐 浩史 (株式会社アルゴ)

一昨年のJJUG参加時のメモ。


phaho(Eclipse M2M)
- http://m2m.demos.ibm.com/whiteboard/
- https://projects.eclipse.org/projects/technology.paho
- http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mm.tc.doc/tc10100_.htm?lang=ja
MQTT 3.1.1 (OASIS 標準化)
-----------------------------
TCP/IP
Pubsub protocol
ツリー型のトピック
小さなヘッダーサイズ
- 2~4バイト (httpは100byte~1000byte)

QOS:0 到達保証なし
QOS:1 到達保証あり
QOS:2 一度の到達の保証あり(重複なし)
- Brokerががんばる必要がある
http://www.slideshare.net/BryanBoyd/mqtt-austin-api
http://sssslide.com/speakerdeck.com/voluntas/chu-metefalse-mqtt
------------------------------
MQTTの規格上暗号化通信は定められていない
- SSL/TLS上で行う必要がある
- 2段階認証等は遅れている
------------------------------
MQTTライブラリ
- https://eclipse.org/paho/
専用のm2リポジトリ上で公開されている
repoeclipse.org/content/repositorities/paho-release/
------------------------------
http://mqtt-helper.mybluemix.net/
web上のclient
------------------------------
Webサービスへの適用
http://www.slideshare.net/gschmutz/io-t-architekturv10
------------------------------

http://www.itmedia.co.jp/news/articles/1110/31/news023.html
https://www.facebook.com/notes/facebook-engineering/building-facebook-messenger/10150259350998920

マイクロサービスアーキテクチャ(MSA)キャッチアップ

[MSA 概要]
http://martinfowler.com/articles/microservices.html
http://martinfowler.com/bliki/MicroservicePremium.html
http://monkey.org/~marius/funsrv.pdf

[MSA Runtime]
https://www.typesafe.com/products/conductr
https://istio.io/

[MSA Practice]
http://www.slideshare.net/knoldus/finagle-by-twitter-engineer/
https://engineering.riotgames.com/news/chat-service-architecture-persistence
http://monkey.org/~marius/scala2015.pdf
http://monkey.org/~marius/redux.html
http://okapies.hateblo.jp/entry/2014/11/25/010416

[MSA Tools]
https://github.com/Netflix/
https://github.com/openzipkin/
https://twitter.github.io/finagle/