Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AutoScale×ゲーム ~運用効率化への取り組み~

4,073 views

Published on

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

Published in: Engineering
  • Be the first to comment

AutoScale×ゲーム ~運用効率化への取り組み~

  1. 1. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. ゲーム事業本部 恋愛ゲームチーム 藤原 涼! ゲームインフラチーム 本田 恭! 2014年07月18日 AutoScale × ゲーム ∼運用効率化への取り組み∼
  2. 2. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 運用効率化に向けたAWS導入背景から運用のお話 AWSをさらに活用するための技術的なお話 ∼後半∼ ∼前半∼ Agenda
  3. 3. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 1:アバター合成サーバの負荷対策 2:ログ収集の効率化 3:まとめ Agenda ∼後半∼
  4. 4. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 自己紹介 本田 恭 (ほんだ たかし) - 2012年新卒入社 (3年目) - Twitter @Altsencturely 好きなAWSのサービス - S3
  5. 5. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 1:アバター合成サーバの負荷対策 2:ログ収集の効率化 3:まとめ Agenda ∼後半∼
  6. 6. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. アバター合成サーバの 負荷対策
  7. 7. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 恋愛ソーシャルゲームとは アバターなどを 着せ替えて可愛く コーディネイトできる
  8. 8. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. アバター画像の基本的な仕組み
  9. 9. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. ある 画像のレスポンス ない 画像のレスポンス 画像の存在確認 画像の存在確認 画像の生成 (ImageMagick)
  10. 10. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. これまでの環境
  11. 11. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. これまでの環境 Image Image Image NAS
  12. 12. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. サーバ間で同じ画像は作成されない これまでの環境
  13. 13. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. AWSのAutoScale運用を行う場合
  14. 14. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. Image Image Image S3 AWSの場合1
  15. 15. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. AWSの場合1 ・S3のマウント先への書き込みに時間がかかる ・サーバ高負荷時にマウントが外れる
  16. 16. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. AWSの場合1 ・ ・サーバ高負荷時にマウントが外れる S3のマウントはNASの様にいかない
  17. 17. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 画像A 画像Aリクエスト 画像Aが ないので作成 AWSの場合2 Image Image Image LoadBarancer 1 2
  18. 18. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 画像を余分に作成することの問題点 CPUロードアベレージ サーバを増やしても負荷が減らない
  19. 19. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 画像を余分に作成することの問題点 安定運用できない
  20. 20. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. アバター合成サーバの安定運用 ¦¦ 合成の回数を減らす 安定運用のために
  21. 21. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. サーバ間で画像ファイルを共有 アバター合成サーバの安定運用 ¦¦ 合成の回数を減らす 安定運用のために
  22. 22. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. http://shoreditchworks.com/sw/wp-content/uploads/2013/10/orange-ant-glusterfs.png
  23. 23. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. マスターレスな分散ファイルシステム GlusterFSとは
  24. 24. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. マスターレスとは 特定のサーバに依存しないクラスタ構成
  25. 25. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. nodeA nodeB nodeC GlusterFS-Cluster マスターレスとは ノード間で同期
  26. 26. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. nodeA nodeB nodeC GlusterFS-Cluster ノード間で同期 マスターレスとは 単一障害点が存在しない
  27. 27. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 1. ルート以外のパーティションでEBSをマウント 2. GlusterFSのクラスタ構築 (peer probe) 3. ファイルシステムを構築 4. 作成したファイルシステムをマウント AWS上でGlusterFSの構築手順
  28. 28. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 1. ルート以外のパーティションでEBSをマウント 2. GlusterFSのクラスタ構築 (peer probe) 3. ファイルシステムを構築 4. 作成したファイルシステムをマウント AWS上でGlusterFSの構築手順
  29. 29. 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
  30. 30. 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
  31. 31. 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
  32. 32. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. GlusterFSのクラスタのメンバ(nodeAまたはnodeB)が メンバ追加コマンドを実行 # gluster peer probe nodeC または # gluster peer probe 172.31.0.3 peer probeの違い
  33. 33. 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)
  34. 34. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. AWSだとIPが自動で割り当てられる AutoScale時のpeer probe
  35. 35. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. サーバを一意に特定できるホスト名の方が管理しやすい AutoScale時のpeer probe AWSだとIPが自動で割り当てられる
  36. 36. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. # gluster peer probe HOSTNAME サーバを一意に特定できるホスト名の方が管理しやすい AutoScale時のpeer probe AWSだとIPが自動で割り当てられる
  37. 37. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 1. GlusterFSのクラスタの生きているノードが    クラスタに追加 2. IPアドレスではなくホスト名を使用 GlusterFS構築の注意点
  38. 38. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. AutoScaleに対応させるためには
  39. 39. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 1. GlusterFSのクラスタの生きているノードの自動判別 2. クラスタ内での自動名前解決 GlusterFSのAutoScale対応
  40. 40. 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
  41. 41. 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
  42. 42. 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
  43. 43. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. GlusterFSのAutoScale対応 1. GlusterFSのクラスタの生きているノードの自動判別 2. クラスタ内での自動名前解決
  44. 44. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 案1 GlusterFSのステータスを使う
  45. 45. 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のステータスを使う
  46. 46. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. ・・・ GlusterFSのステータスを使う gluster-peer-status nodeB? nodeC? ホスト名がわからない
  47. 47. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 案1 GlusterFSのステータスを使う 名前解決されていないため構築できない
  48. 48. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 案2 AWS APIを使う
  49. 49. 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
  50. 50. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. ・・・ 2. SSH AWS API
  51. 51. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. ・・・ 3. 情報取得 AWS API
  52. 52. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. peer probe ・・・ AWS API
  53. 53. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. ・・・ AWS API 名前解決出来ていない
  54. 54. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 不完全なクラスタが構築される 案2 AWS APIを使う
  55. 55. 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
  56. 56. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 単一障害点を作ってしまう
  57. 57. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 1. GlusterFSのクラスタの生きているノードの自動判別 2. クラスタ内での自動名前解決 GlusterFSのAutoScale対応
  58. 58. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 1. GlusterFS 自動判別 2. クラスタ内での自動名前解決 GlusterFS GlusterFSのクラスタ内で完結
  59. 59. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. S E R F http://pocketstudio.jp.s3.amazonaws.com/log3/wp-content/uploads/2013/11/serf-logo.png
  60. 60. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. マスターレスなクラスタ構成 ゴシッププロトコル Serfとは
  61. 61. 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
  62. 62. 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
  63. 63. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. Serf-Cluster member-join nodeA nodeB nodeC ゴシッププロトコルとは
  64. 64. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. Serf-Cluster nodeA nodeB nodeC ゴシッププロトコルとは member-join
  65. 65. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. Serf-Cluster nodeA nodeB nodeC ゴシッププロトコルとは
  66. 66. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. Serf-Cluster nodeA nodeB nodeC ゴシッププロトコルとは 伝播して同じ状態に
  67. 67. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. クラスタ内の名前解決を自動化
  68. 68. 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で自動名前解決
  69. 69. 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
  70. 70. 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の便利な点
  71. 71. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. Serfのクラスタをマスターレスに構築
  72. 72. 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のクラスタをマスターレス
  73. 73. 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のクラスタをマスターレス
  74. 74. 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のクラスタをマスターレス
  75. 75. 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のクラスタをマスターレス マスターレスにクラスタ構築
  76. 76. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. S3の耐障害性 ! 最大 99.999999999% の耐久性と 99.99% の可用性 安定してどこからでも使える S3を使う理由
  77. 77. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. Serf × S3
  78. 78. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. クラスタの名前解決 クラスタの追加/削除時に/etc/hostsが 修正されメンバ間は名前解決可能
  79. 79. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 1. GlusterFSのクラスタの生きているノードの自動判別 2. クラスタ内での自動名前解決 GlusterFSのAutoScale対応
  80. 80. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. GlusterFSのAutoScale対応の仕組み
  81. 81. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. Serf-Cluster nodeA nodeB nodeC GlusterFS-Cluster
  82. 82. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. nodeA nodeB nodeC serf-members Serf-Cluster
  83. 83. 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
  84. 84. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. Serf-Cluster member-joinmember-joinmember-join nodeA nodeB nodeC
  85. 85. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. nodeA nodeB nodeC GlusterFS-Cluster Serf-Cluster
  86. 86. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. nodeA nodeB nodeC 1. SSH 2. peer probe GlusterFS-Cluster Serf-Cluster
  87. 87. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. nodeA nodeB nodeC serf-members GlusterFS-Cluster
  88. 88. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. GlusterFSのマスターレスな構築
  89. 89. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. GlusterFS × Serf × S3 http://www.gluster.org/images/antmascot.png
  90. 90. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. AutoScaleに対応 GlusterFSの導入 Webサーバと同じ様にスケールアウト ファイル共有により無駄なアバター合成 削減し負荷の軽減
  91. 91. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 1:アバター合成サーバの負荷対策 2:ログ収集の効率化 3:まとめ Agenda ∼後半∼
  92. 92. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. ログ収集の効率化
  93. 93. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. http://excalemedia.s3.amazonaws.com/wp-content/uploads/2014/02/fluentd2.png
  94. 94. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. なぜFluentdを使うの? AutoScaleだと サーバが削除された時ログも消える
  95. 95. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. Fluentdの運用を出来るだけ楽に ! 中継サーバのリソースを十分に使う Fluentdの要件
  96. 96. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 分析用VPCタイトル毎のVPC Server Redshift Elasticsearch Fluentd Fluentd Fluentd Fluentd Server Server Server
  97. 97. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. Redshift Elasticsearch Fluentd Fluentd Fluentd Fluentd 分析用VPCタイトル毎のVPC Fluentd 中継 Fluentd 中継 Server Server Server Server
  98. 98. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. Redshift Elasticsearch 分析用VPCタイトル毎の Fluentd 中継 Fluentd Fluentd Fluentd Fluentd Server Server Server Server Fluentd 中継
  99. 99. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. https://blog.linode.com/wp-content/uploads/2014/01/docker.png
  100. 100. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. Redshift Elasticsearch Fluentd 中継 分析用VPCタイトル毎のVPC Fluentd 中継 Fluentd Fluentd Fluentd Fluentd Server Server Server Server
  101. 101. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 分析用VPCタイトル毎の Fluentd 中継 Fluentd 中継 Fluentd 中継 Fluentd Fluentd Fluentd Fluentd Server Server Server Server Fluentd 中継
  102. 102. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. Redshift Elasticsearch Fluentd 中継 分析用VPCタイトル毎のVPC Fluentd 中継 Fluentd 中継 Fluentd 中継 Fluentd Fluentd Fluentd Fluentd Server Server Server Server
  103. 103. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. Fluentd × Docker × Jenkins
  104. 104. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. 運用効率化 リソースの活用 JenkinsでFluentdの増減を管理 中継サーバのリソースを無駄なく利用
  105. 105. One more thing…
  106. 106. 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
  107. 107. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. まとめ
  108. 108. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. AWSの価値とは
  109. 109. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. AWSの機能を使えばやりたいことが簡単にすぐに導入できる 試験的・部分的な利用から本番運用まで 幅広い利用をサポート
  110. 110. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. APIを使って自分たちの体制に合わせて最適化可能 海外等の普段手が回らない部分までカバー 運用コスト削減
  111. 111. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved. すべての開発者が、 するキモチのような 心やすまる運用を。 AWSが私達にくれたもの
  112. 112. Copyright 2014 CYBIRD Co., Ltd. All Rights Reserved.

×