$30 off During Our Annual Pro Sale. View Details »

海外展開と負荷試験

gree_tech
PRO
November 11, 2021

 海外展開と負荷試験

GREE Tech Conference 2021 で発表された資料です。
https://techcon.gree.jp/2021/session/Session-6

gree_tech
PRO

November 11, 2021
Tweet

More Decks by gree_tech

Other Decks in Technology

Transcript

  1. 海外展開と負荷試験
    グリーエンターテインメント株式会社
    加藤 雅

    View Slide

  2. グリーエンターテインメント株式会社 エンジニア部 所属
    役職:エンジニアマネージャー
    2017年 ファンプレックス株式会社入社
    サーバーエンジニアとして、いくつかのネイティブアプリの開発に参加
    チーフエンジニアとして、エンジニアのスケジュール調整や育成も経験
    現在は運営タイトルのエンジニアマネージャーとして
    エンジニアのマネジメントやアサイン調整を担当
    自己紹介
    加藤 雅(かとう まさし)

    View Slide

  3. アプリ海外展開事例の紹介

    View Slide

  4. プリンセスコネクト!Re:Dive の英語版

    View Slide

  5. 本日のアジェンダ
    ● 開発内容やインフラ構成の紹介
    ● 負荷試験の概要
    ● 負荷試験で発生した事例の紹介
    ● リリース後の結果
    ● まとめ

    View Slide

  6. プリンセスコネクト!Re:Dive英語版の
    開発体制およびインフラ構成

    View Slide

  7. IPホルダー
    パブリッシャー ディベロッパー
    3社共同運営

    View Slide

  8. ● クラウドサービス
    ○ Amazon Web Services
    ● インフラ構成
    ○ LAMP(Linux, Apache, MySQL, PHP)
    ● 分析ツール
    ○ Google Cloud BigQuery
    インフラ構成

    View Slide

  9. インフラ構成

    View Slide

  10. ● タイムマシン運営
    運営形式

    View Slide

  11. Q1.プリンセスコネクト!Re:Dive 英語版の
    開発期間に関して

    View Slide

  12. Q1.開発期間はどのくらいでしょう?
    ● 3ヶ月
    ● 6ヶ月
    ● 9ヶ月
    ● 12ヶ月

    View Slide

  13. 開発期間はどのくらいでし
    ょう?
    ⓘ Start presenting to display the poll results on this slide.

    View Slide

  14. Q1.開発期間はどのくらいでしょう?
    ● 3ヶ月
    ● 6ヶ月
    ● 9ヶ月
    ● 12ヶ月

    View Slide

  15. 開発期間6ヶ月(2020年)
    6月 7月 8月 9月 10月 11月 12月 1月
    α版開発期間
    β版開発期間
    RC版開発期間
    ソフトローンチ
    グローバル
    ローンチ

    View Slide

  16. 開発期間6ヶ月(2020年)
    6月 7月 8月 9月 10月 11月 12月 1月
    α版開発期間
    β版開発期間
    RC版開発期間
    ソフトローンチ
    グローバル
    ローンチ
    ・開発環境構築
    ・各種最適化

    View Slide

  17. 開発期間6ヶ月(2020年)
    6月 7月 8月 9月 10月 11月 12月 1月
    α版開発期間
    β版開発期間
    RC版開発期間
    ソフトローンチ
    グローバル
    ローンチ
    ・翻訳対応
    ・LQA
    ・開発環境構築
    ・各種最適化

    View Slide

  18. 開発期間6ヶ月(2020年)
    6月 7月 8月 9月 10月 11月 12月 1月
    α版開発期間
    β版開発期間
    RC版開発期間
    ソフトローンチ
    グローバル
    ローンチ
    ・本番環境構築
    ・負荷試験
    ・翻訳対応
    ・LQA
    ・開発環境構築
    ・各種最適化

    View Slide

  19. 開発期間6ヶ月(2020年)
    6月 7月 8月 9月 10月 11月 12月 1月
    α版開発期間
    β版開発期間
    RC版開発期間
    ソフトローンチ
    グローバル
    ローンチ
    ・本番環境構築
    ・負荷試験
    ・翻訳対応
    ・LQA
    ・開発環境構築
    ・各種最適化
    ・翻訳対応
    ・LQA
    ・開発環境構築
    ・各種最適化
    ・限定地域にリリース

    View Slide

  20. 開発期間6ヶ月(2020年)
    6月 7月 8月 9月 10月 11月 12月 1月
    α版開発期間
    β版開発期間
    RC版開発期間
    ソフトローンチ
    グローバル
    ローンチ
    ・本番環境構築
    ・負荷試験
    ・翻訳対応
    ・LQA
    ・開発環境構築
    ・各種最適化
    ・翻訳対応
    ・LQA
    ・開発環境構築
    ・各種最適化
    ・全世界リリース!
    ・限定地域にリリース

    View Slide

  21. 開発期間6ヶ月(2020年)
    6月 7月 8月 9月 10月 11月 12月 1月
    グローバル
    ローンチ
    ・全世界リリース!
    α版開発期間
    β版開発期間
    RC版開発期間
    ソフトローンチ
    ● 日本国内でのリリースとは異なるアクセス状況が見込まれる
    ● グローバルに最適化した本番環境の準備が重要になる

    View Slide

  22. 開発期間6ヶ月(2020年)
    6月 7月 8月 9月 10月 11月 12月 1月
    α版開発期間
    β版開発期間
    RC版開発期間
    ソフトローンチ
    グローバル
    ローンチ
    ・本番環境構築
    ・負荷試験
    ・翻訳対応
    ・LQA
    ・開発環境構築
    ・各種最適化
    ・翻訳対応
    ・LQA
    ・開発環境構築
    ・各種最適化
    ・全世界リリース!
    ・限定地域にリリース

    View Slide

  23. プリンセスコネクト!Re:Dive 英語版の
    負荷試験の概要

    View Slide

  24. ● 最適化した本番インフラ構成の動作検証
    ● インフラ構成のボトルネックの洗い出し
    ● 分析ツールや監視ツールの機能テスト
    負荷試験を実施する理由

    View Slide

  25. ● 使用したツール
    ○ JMeter
    ● 選定理由
    ○ Webに情報が多い
    ○ セットアップが簡単
    ○ 他プロダクトでの実績あり
    負荷試験の準備

    View Slide

  26. 負荷試験のシナリオ
    ● シナリオとは
    ○ ある操作や処理の一連の流れ
    ○ チュートリアルなどの想定されるリクエストフロー

    View Slide

  27. 負荷試験のシナリオ
    ● シナリオとは
    ○ ある操作や処理の一連の流れ
    ○ チュートリアルなどの想定されるリクエストフロー
    ● どの程度の負荷が掛かるかの事前確認
    ● インフラ構成のボトルネックを洗い出す

    View Slide

  28. 負荷試験の実行シナリオ
    ● リセマラフロー
    ○ チュートリアル完了までの各API
    ● クエスト周回
    ○ いくつかのクエストを周回実行する
    ● アリーナの対戦相手更新
    ○ 対戦相手更新を実行する

    View Slide

  29. プリンセスコネクト!Re:Dive 英語版の
    負荷試験で発生した事例の紹介

    View Slide

  30. 負荷試験で発生した事例の紹介
    ● 負荷試験実施時のlocalhostのmemcached挙動
    ● localhostで使用していたmemcachedが高負荷の数値を示す
    ● インフラ構成時のPIDファイル設定ミスにより、キャッシュデータが
    正しく生成されていなかった
    ● 挙動的には正常に動いているように見え、負荷試験実施まで検知できず

    View Slide

  31. 負荷試験で発生した事例の紹介
    ● 負荷試験実施時のlocalhostのmemcached挙動
    ● localhostで使用していたmemcachedが高負荷の数値を示す
    ● インフラ構成時のPIDファイル設定ミスにより、キャッシュデータが
    正しく生成されていなかった
    ● 挙動的には正常に動いているように見え、負荷試験実施まで検知できず
    ● localhostの設定を見直し、データが正しく生成されることを確認

    View Slide

  32. 負荷試験で発生した事例の紹介
    ● シナリオ実行サーバーの調整
    ● シナリオを実行しても、サーバーに負荷をうまい具合にかけられない
    ● シナリオ実行サーバーのメモリ不足やjavaのGC影響により、高負荷が掛からない状態

    View Slide

  33. 負荷試験で発生した事例の紹介
    ● シナリオ実行サーバーの調整
    ● シナリオを実行しても、サーバーに負荷をうまい具合にかけられない
    ● シナリオ実行サーバーのメモリ不足やjavaのGC影響により、高負荷が掛からない状態
    ● シナリオ実行サーバーのスペックアップ(c4.2xlarge => m4.2xlarge)
    ● javaのGC周りの設定見直し
    ● シナリオ実行サーバー側もCPUなどをモニタリングできるように対応

    View Slide

  34. 負荷試験で発生した事例の紹介
    ● 負荷試験中のサーバー費用に関して
    ● 試験中は、リリース想定の台数やインスタンスクラスで稼働させる
    ● 原因調査や土日などで、試験を実施していない間は費用かからないように調整が必要

    View Slide

  35. 負荷試験で発生した事例の紹介
    ● 負荷試験中のサーバー費用に関して
    ● 試験中は、リリース想定の台数やインスタンスクラスで稼働させる
    ● 原因調査や土日などで、試験を実施していない間は費用かからないように調整が必要
    ● 試験期間の中でも、実施期間/調査期間などスケジュール割りを行っておく

    View Slide

  36. プリンセスコネクト!Re:Dive 英語版の
    負荷試験を行ったことで得たこと

    View Slide

  37. 負荷試験を行ったことで得たこと
    ● ウェブサーバーの台数の最適化
    ○ 初期に想定していた台数の1/4の台数で調整

    View Slide

  38. 負荷試験を行ったことで得たこと
    ● ウェブサーバーの台数の最適化
    ○ 初期に想定していた台数の1/4の台数で調整
    ● サーバーの潜在能力の確認
    ○ 理論値でどの程度の接続数まで耐えられるか

    View Slide

  39. プリンセスコネクト!Re:Dive 英語版の
    リリース後の結果

    View Slide

  40. リリース後の結果
    インフラ障害無く
    無事リリース!

    View Slide

  41. リリース後の結果
    ● 約160ヶ国に配信
    ● リリース2ヶ月で200万DL達成!

    View Slide

  42. Q2.プリンセスコネクト!Re:Dive 英語版の
    運営初月のリソースダウンロード量

    View Slide

  43. Q2.運営初月のリソースダウンロード量は何バイト?
    (CDNのダウンロード量)
    ● 3GB
    ● 3TB(3,000GB)
    ● 3PB(3,000,000GB)
    ● 3EB(3,000,000,000GB)

    View Slide

  44. 運営初月のリソースダウン
    ロード量は何バイト?
    ⓘ Start presenting to display the poll results on this slide.

    View Slide

  45. Q2.運営初月のリソースダウンロード量は何バイト?
    (CDNのダウンロード量)
    ● 3GB
    ● 3TB(3,000GB)
    ● 3PB(3,000,000GB)
    ● 3EB(3,000,000,000GB)

    View Slide

  46. リリース後の結果
    3.4ペタバイト(PB)

    View Slide

  47. まとめ

    View Slide

  48. ● 負荷試験を行う大切さ
    まとめ

    View Slide

  49. ● 負荷試験を行う大切さ
    ● 蓄積されてきた知見の重要性
    まとめ

    View Slide

  50. ● 負荷試験を行う大切さ
    ● 蓄積されてきた知見の重要性
    ● グローバル展開の可能性
    まとめ

    View Slide

  51. ● 負荷試験を行う大切さ
    ● 蓄積されてきた知見の重要性
    ● グローバル展開の可能性
    まとめ
    グリーエンターテインメントHPの TECH BLOG でも紹介しています!
    https://gree-entertainment.com/topics/3235/

    View Slide

  52. この開発で得た知見を
    今後の開発に活かし
    ゲーム市場を盛り上げていきたい!

    View Slide

  53. 53

    View Slide