Upload
takashi-honda
View
2.232
Download
4
Embed Size (px)
DESCRIPTION
AWS Summit Tokyo 2014のTC-09セッションで発表した資料です。 こちらは後半部分です。 タイトル:TC-09「AutoScale×ゲーム ~運用効率化への取り組み~」について === イベント概要 === AWS Summit Tokyo 2014について 開催日:2014年7月17日(木)~18日(金) 9:15 ~ 19:00 会場:グランドプリンスホテル新高輪 (国際館パミール) 主催:アマゾン データ サービス ジャパン株式会社 サイトURL:http://www.awssummittokyo.com/ スケジュール:http://www.awssummittokyo.com/schedule.html セッション紹介:http://www.awssummittokyo.com/session.html#tc9 前半=>http://www.slideshare.net/megadreams14/aws-summit-tokyo-2014-tc09
Citation preview
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
ゲーム事業本部 恋愛ゲームチーム 藤原 涼!ゲームインフラチーム 本田 恭!
2014年07月18日
AutoScale × ゲーム ~運用効率化への取り組み~
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
運用効率化に向けたAWS導入背景から運用のお話
AWSをさらに活用するための技術的なお話
~後半~
~前半~
Agenda
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
1:アバター合成サーバの負荷対策
2:ログ収集の効率化
3:まとめ
Agenda
~後半~
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
自己紹介
本田 恭 (ほんだ たかし)- 2012年新卒入社 (3年目)
- Twitter @Altsencturely
好きなAWSのサービス- S3
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
1:アバター合成サーバの負荷対策
2:ログ収集の効率化
3:まとめ
Agenda
~後半~
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
アバター合成サーバの 負荷対策
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
恋愛ソーシャルゲームとは
アバターなどを 着せ替えて可愛く コーディネイトできる
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
アバター画像の基本的な仕組み
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
ある
画像のレスポンス
ない
画像のレスポンス
画像の存在確認 画像の存在確認
画像の生成 (ImageMagick)
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
これまでの環境
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
これまでの環境
Image Image Image
NAS
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
サーバ間で同じ画像は作成されない
これまでの環境
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
AWSのAutoScale運用を行う場合
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
Image Image Image
S3
AWSの場合1
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
AWSの場合1
・S3のマウント先への書き込みに時間がかかる
・サーバ高負荷時にマウントが外れる
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
AWSの場合1
・
・サーバ高負荷時にマウントが外れる
S3のマウントはNASの様にいかない
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
画像A
画像Aリクエスト
画像Aが ないので作成
AWSの場合2
Image Image
Image LoadBarancer
1 2
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
画像を余分に作成することの問題点
CPUロードアベレージ
サーバを増やしても負荷が減らない
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
画像を余分に作成することの問題点
安定運用できない
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
アバター合成サーバの安定運用 ||
合成の回数を減らす
安定運用のために
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
サーバ間で画像ファイルを共有
アバター合成サーバの安定運用 ||
合成の回数を減らす
安定運用のために
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
http://shoreditchworks.com/sw/wp-content/uploads/2013/10/orange-ant-glusterfs.png
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
マスターレスな分散ファイルシステム
GlusterFSとは
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
マスターレスとは
特定のサーバに依存しないクラスタ構成
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
nodeA
nodeB nodeCGlusterFS-Cluster
マスターレスとは
ノード間で同期
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
nodeA
nodeB nodeCGlusterFS-Cluster
ノード間で同期
マスターレスとは
単一障害点が存在しない
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
1. ルート以外のパーティションでEBSをマウント
2. GlusterFSのクラスタ構築 (peer probe)
3. ファイルシステムを構築
4. 作成したファイルシステムをマウント
AWS上でGlusterFSの構築手順
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
1. ルート以外のパーティションでEBSをマウント
2. GlusterFSのクラスタ構築 (peer probe)
3. ファイルシステムを構築
4. 作成したファイルシステムをマウント
AWS上でGlusterFSの構築手順
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
nodeA 172.31.0.1
nodeB 172.31.0.2
nodeC 172.31.0.3
クラスタ構築
GlusterFS-Cluster
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
nodeA 172.31.0.1
nodeB 172.31.0.2
nodeC 172.31.0.3
追加 peer probe
クラスタ構築
GlusterFS-Cluster
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
nodeA 172.31.0.1
nodeB 172.31.0.2
nodeC 172.31.0.3
追加peer probeクラスタのメンバが追加する
クラスタ構築
GlusterFS-Cluster
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
GlusterFSのクラスタのメンバ(nodeAまたはnodeB)が メンバ追加コマンドを実行
# gluster peer probe nodeCまたは
# gluster peer probe 172.31.0.3
peer probeの違い
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
Number of Peers: 2 !
Hostname: nodeB Uuid: xxxxxxxx-xxxx-xxxx State: Peer in Cluster (Connected) !
Hostname: nodeC Uuid: xxxxxxxx-xxxx-xxxx State: Peer in Cluster (Connected)
# gluster peer status
peer probeの違い
Number of Peers: 2 !
Hostname: 172.31.0.2 Uuid: xxxxxxxx-xxxx-xxxx State: Peer in Cluster (Connected) !
Hostname: 172.31.0.3 Uuid: xxxxxxxx-xxxx-xxxx State: Peer in Cluster (Connected)
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
AWSだとIPが自動で割り当てられる
AutoScale時のpeer probe
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
サーバを一意に特定できるホスト名の方が管理しやすい
AutoScale時のpeer probe
AWSだとIPが自動で割り当てられる
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
# gluster peer probe HOSTNAME
サーバを一意に特定できるホスト名の方が管理しやすい
AutoScale時のpeer probe
AWSだとIPが自動で割り当てられる
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
1. GlusterFSのクラスタの生きているノードが クラスタに追加
2. IPアドレスではなくホスト名を使用
GlusterFS構築の注意点
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
AutoScaleに対応させるためには
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
1. GlusterFSのクラスタの生きているノードの自動判別
2. クラスタ内での自動名前解決
GlusterFSのAutoScale対応
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
nodeA 172.31.0.1
nodeB 172.31.0.2
nodeC 172.31.0.3
追加 peer probe
クラスタの自動構築
GlusterFS-Cluster
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
nodeA 172.31.0.1
nodeB 172.31.0.2
nodeC 172.31.0.3
1. SSH
クラスタの自動構築
GlusterFS-Cluster
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
nodeA 172.31.0.1
nodeB 172.31.0.2
nodeC 172.31.0.3
1. SSH
2. peer probe
クラスタの自動構築
GlusterFS-Cluster
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
GlusterFSのAutoScale対応
1. GlusterFSのクラスタの生きているノードの自動判別
2. クラスタ内での自動名前解決
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
案1 GlusterFSのステータスを使う
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
Number of Peers: 2 !
Hostname: nodeB Uuid: xxxxxxxx-xxxx-xxxx State: Peer in Cluster (Connected) !
Hostname: nodeC Uuid: xxxxxxxx-xxxx-xxxx State: Peer in Cluster (Connected)
# gluster peer status
GlusterFSのステータスを使う
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
・・・
GlusterFSのステータスを使う
gluster-peer-status
nodeB?
nodeC?
ホスト名がわからない
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
案1 GlusterFSのステータスを使う
名前解決されていないため構築できない
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
案2 AWS APIを使う
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
・・・
1. 情報取得
AWS API
http://cdn.blog.celingest.com/wp-content/uploads/2013/09/aws-s3-512x215.png
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
・・・
2. SSH
AWS API
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
・・・
3. 情報取得
AWS API
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
peer probe
・・・
AWS API
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
・・・
AWS API
名前解決出来ていない
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
不完全なクラスタが構築される
案2 AWS APIを使う
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
• Chef Server API
!
• Zabbix API
!
• 内部DNS
その他の案
http://recipe.kc-cloud.jp/wp-content/uploads/2013/04/20130405_02_01.gif
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
単一障害点を作ってしまう
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
1. GlusterFSのクラスタの生きているノードの自動判別
2. クラスタ内での自動名前解決
GlusterFSのAutoScale対応
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
1. GlusterFS自動判別
2. クラスタ内での自動名前解決
GlusterFS
GlusterFSのクラスタ内で完結
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
S E R Fhttp://pocketstudio.jp.s3.amazonaws.com/log3/wp-content/uploads/2013/11/serf-logo.png
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
マスターレスなクラスタ構成 ゴシッププロトコル
Serfとは
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
$ serf join nodeA
Serfのクラスタ
nodeA 172.31.0.1
nodeB 172.31.0.2
nodeC 172.31.0.3
Serf-Cluster
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
Serfのクラスタ
nodeA 172.31.0.1
nodeB 172.31.0.2
nodeC 172.31.0.3
自分からクラスタに参加できる
Serf-Cluster
$ serf join nodeA
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
Serf-Cluster
member-join
nodeA nodeB nodeC
ゴシッププロトコルとは
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
Serf-Cluster
nodeA nodeB nodeC
ゴシッププロトコルとは
member-join
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
Serf-Cluster
nodeA nodeB nodeC
ゴシッププロトコルとは
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
Serf-Cluster
nodeA nodeB nodeC
ゴシッププロトコルとは
伝播して同じ状態に
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
クラスタ内の名前解決を自動化
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
クラスタメンバ情報で生存確認
$ serf members nodeA 172.31.0.1:7946 alive nodeB 172.31.0.2:7946 alive nodeC 172.31.0.3:7946 alive
Serfで自動名前解決
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
Serfで自動名前解決
member-join
$ serf members nodeA 172.31.0.1:7946 alive nodeB 172.31.0.2:7946 alive nodeC 172.31.0.3:7946 alive
/etc/hosts
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
/etc/hosts
member-join
$ serf members nodeA 172.31.0.1:7946 alive nodeB 172.31.0.2:7946 alive nodeC 172.31.0.3:7946 aliveクラスタ内の名前解決の自動化
Serfの便利な点
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
Serfのクラスタをマスターレスに構築
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
serf-members
172.31.0.1 172.31.0.2
172.31.0.3 172.31.0.4
http://s3-blog.the-new-it.com.s3.amazonaws.com/wp-content/uploads/2014/01/WPandS3Logos.png
Serfのクラスタをマスターレス
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
172.31.0.1 172.31.0.2
172.31.0.3 172.31.0.4
serf-members
serf-members nodeA 172.31.0.1:7946 alive nodeB 172.31.0.2:7946 alive nodeC 172.31.0.3:7946 alive nodeD 172.31.0.4:7946 failed
Serfのクラスタをマスターレス
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
172.31.0.1 172.31.0.2
172.31.0.3 172.31.0.4
$ serf join nodeA
Serfのクラスタをマスターレス
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
172.31.0.1 172.31.0.2
172.31.0.3 172.31.0.4
$ serf join nodeA
Serfのクラスタをマスターレス
マスターレスにクラスタ構築
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
S3の耐障害性 !
最大 99.999999999% の耐久性と 99.99% の可用性
安定してどこからでも使える
S3を使う理由
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
Serf × S3
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
クラスタの名前解決クラスタの追加/削除時に/etc/hostsが 修正されメンバ間は名前解決可能
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
1. GlusterFSのクラスタの生きているノードの自動判別
2. クラスタ内での自動名前解決
GlusterFSのAutoScale対応
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
GlusterFSのAutoScale対応の仕組み
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
Serf-Cluster
nodeA nodeB nodeC
GlusterFS-Cluster
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
nodeA nodeB nodeC
serf-members
Serf-Cluster
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
Serf-Cluster
serf-members nodeA 172.31.0.1:7946 alive nodeB 172.31.0.2:7946 alive
nodeA nodeB nodeC$ serf join nodeB
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
Serf-Cluster
member-joinmember-joinmember-join
nodeA nodeB nodeC
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
nodeA nodeB nodeC
GlusterFS-Cluster
Serf-Cluster
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
nodeA nodeB nodeC
1. SSH
2. peer probe
GlusterFS-Cluster
Serf-Cluster
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
nodeA nodeB nodeC
serf-members
GlusterFS-Cluster
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
GlusterFSのマスターレスな構築
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
GlusterFS × Serf × S3
http://www.gluster.org/images/antmascot.png
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
AutoScaleに対応
GlusterFSの導入
Webサーバと同じ様にスケールアウト
ファイル共有により無駄なアバター合成 削減し負荷の軽減
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
1:アバター合成サーバの負荷対策
2:ログ収集の効率化
3:まとめ
Agenda
~後半~
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
ログ収集の効率化
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
http://excalemedia.s3.amazonaws.com/wp-content/uploads/2014/02/fluentd2.png
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
なぜFluentdを使うの?
AutoScaleだと サーバが削除された時ログも消える
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
Fluentdの運用を出来るだけ楽に !
中継サーバのリソースを十分に使う
Fluentdの要件
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
分析用VPCタイトル毎のVPC
Server
Redshift
Elasticsearch
Fluentd Fluentd Fluentd Fluentd
Server Server Server
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
Redshift
Elasticsearch
Fluentd Fluentd Fluentd Fluentd
分析用VPCタイトル毎のVPC
Fluentd 中継
Fluentd 中継
Server Server Server Server
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
Redshift
Elasticsearch
分析用VPCタイトル毎の
Fluentd 中継
Fluentd Fluentd Fluentd Fluentd
Server Server Server Server
Fluentd 中継
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
https://blog.linode.com/wp-content/uploads/2014/01/docker.png
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
Redshift
Elasticsearch
Fluentd 中継
分析用VPCタイトル毎のVPC
Fluentd 中継
Fluentd Fluentd Fluentd Fluentd
Server Server Server Server
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
分析用VPCタイトル毎の
Fluentd 中継
Fluentd 中継
Fluentd 中継
Fluentd Fluentd Fluentd Fluentd
Server Server Server Server
Fluentd 中継
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
Redshift
Elasticsearch
Fluentd 中継
分析用VPCタイトル毎のVPC
Fluentd 中継
Fluentd 中継
Fluentd 中継
Fluentd Fluentd Fluentd Fluentd
Server Server Server Server
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
Fluentd × Docker × Jenkins
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
運用効率化
リソースの活用
JenkinsでFluentdの増減を管理
中継サーバのリソースを無駄なく利用
One more thing…
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
http://tctechcrunch2011.files.wordpress.com/2010/07/github-logo.png
Chef Serverspec
Docker
JMeter
JMeter負荷
Vagrant
JMeter
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
まとめ
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
AWSの価値とは
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
AWSの機能を使えばやりたいことが簡単にすぐに導入できる
試験的・部分的な利用から本番運用まで
幅広い利用をサポート
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
APIを使って自分たちの体制に合わせて最適化可能
海外等の普段手が回らない部分までカバー
運用コスト削減
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.
すべての開発者が、するキモチのような心やすまる運用を。
AWSが私達にくれたもの
Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.