Copyright © GREE, Inc. All Rights Reserved.
TB/Day規模のゲーム向け
データパイプラインを
開発運用する日々
グリー株式会社 開発本部
森田想平
目次
2
● 会社紹介
● データ基盤全般の紹介
● AWSベースのデータ基盤
● GCPベースのデータ基盤
● 開発運用する日々の話
● まとめ
会社紹介
3
社名 グリー株式会社
事業内容 ● ゲーム・ライブエンタメ事業
● 広告・メディア事業
● 投資事業
設立 2004年12月7日
代表者 代表取締役会長兼社長 田中良和
本社所在地 東京都港区六本木 6-10-1 六本木ヒルズ森タワー
従業員数 1,531人(グループ全体・ 2018年6月末現在)
主なグループ企業 ● グリービジネスオペレーションズ株式会社
● グリーベンチャーズ株式会社
● ファンプレックス株式会社
● 株式会社ポケラボ
● リミア株式会社
● 株式会社ExPlay
● Glossom株式会社
● GREE VR Capital, LLC.
● 株式会社Wright Flyer Studios
● 株式会社3ミニッツ
会社紹介
4
開発本部(の一部メンバー)
会社紹介
ゲームプラットフォーム事業
5
ゲーム事業 ライブエンタメ事業 メディア事業
● 横断データ基盤、分析ツールの開発運用
● 事業ごとのデータ基盤、分析ツールの開発運用
目次
6
● 会社紹介
● データ基盤全般の紹介
● AWSベースのデータ基盤
● GCPベースのデータ基盤
● 開発運用する日々の話
● まとめ
Copyright © GREE, Inc. All Rights Reserved.
● ex. シノアリス
● AppStoreトップセールスランキング最高1位
● 最大AWSインスタンス数1000前後(らしい)
● ex. ゲームプラットフォーム事業
● オンプレミスサーバ数千台程度
データ基盤全般の紹介
事業の規模感
ref. https://gamebiz.jp/?p=218802
Copyright © GREE, Inc. All Rights Reserved.
● データ基盤に送信蓄積されるデータ量
● 増加量は数TB/Day 程度
● 現在 1PB前後を管理運用
● 送信されるデータを全て永遠に取っておくわけではない
データ基盤全般の紹介
データの規模感
Copyright © GREE, Inc. All Rights Reserved.
● オンプレミスMySQLサーバ群
● MySQLサーバ : 100台程度(数十TB)
● オンプレミスHadoop
● Hadoopクラスタ : 50台程度(数百TB)
データ基盤全般の紹介
幾つかの世代がある
Copyright © GREE, Inc. All Rights Reserved.
● AWSベースのデータ基盤
● メインのデータ基盤(数百TB)
● 後述します
● GCPベースのデータ基盤
● 最近使い始めた(データ少ない)
● 少しだけ後で触れます
データ基盤全般の紹介
幾つかの世代がある
Copyright © GREE, Inc. All Rights Reserved.
● 旧Sun Microsystemsの専用アプライアンス(Solaris)から汎用IA
サーバ(Ubuntu)へのMySQLマイグレーション
● ZFSの機能(zfs send)にpatchを当てて利用
● オンプレミスHadoopからAWSデータ基盤へのマイグレーション
● データ送信はfluentdのダブルライト
● 過去ログはAWS Snowballデバイス
● バッチジョブは地道に書き換える
データ基盤全般の紹介
レガシーシステムからのマイグレーション
目次
12
● 会社紹介
● データ基盤全般の紹介
● AWSベースのデータ基盤
● GCPベースのデータ基盤
● 開発運用する日々の話
● まとめ
Copyright © GREE, Inc. All Rights Reserved.
AWSベースのデータ基盤
システム構成
Amazon
Kinesis
Amazon
EMR
Amazon
S3
Kinesis
Consumer
API Server
BI Tool
KPI Metric
プロダクトA
プロダクトB
プロダクトC
プロダクトD
Copyright © GREE, Inc. All Rights Reserved.
● S3への重依存
● (オンプレミスと比べた場合の)運用負荷減
● クエリエンジンのステートレス化
● 障害対応やバージョンアップが容易に
AWSベースのデータ基盤
規模感に伴うかんどころ:その1
Copyright © GREE, Inc. All Rights Reserved.
● S3のファイル数が多くなると、クエリ実行時にS3のRead(API呼び出
し)がボトルネックになる
● 定常的にファイルをマージしている
● 遅延ログがあるとマージが難しくなる
● よく使うテーブルに関しては、定常的にカラムナフォーマットで作り直し
ている
AWSベースのデータ基盤
規模感に伴うかんどころ:その2
Copyright © GREE, Inc. All Rights Reserved.
● 会社組織が複雑になると、権限管理が複雑になる
● 書き込みに関しては、プロダクトごとにAWSアカウントがあるので、
IAM Assume Roleという機能を利用する
AWSベースのデータ基盤
規模感に伴うかんどころ:その3
Amazon
Kinesis
Streams
IAM Role
(KinesisへのWrite権限) Amazon EC2
AWS Lambda
1. AssumeRoleで一時的権限を取得
2. Kinesis::PutRecordsでログを送信
データ分析基盤のAWSアカウント プロダクトのAWSアカウント
目次
17
● 会社紹介
● データ基盤全般の紹介
● AWSベースのデータ基盤
● GCPベースのデータ基盤
● 開発運用する日々の話
● まとめ
Copyright © GREE, Inc. All Rights Reserved.
GCPベースのデータ基盤
システム構成
analytics-systemproduction server
Stackdriver
BigQuery Data
Studio
Cloud
Pub/Sub
Cloud
Storage
Cloud
Dataflow
client
Cloud
SQL
Firebase
App
Engine
ios/android
Copyright © GREE, Inc. All Rights Reserved.
● スケーラビリティに関しては、まだ検証フェーズ
● 心配はしていない
GCPベースのデータ基盤
概要
目次
20
● 会社紹介
● データ基盤全般の紹介
● AWSベースのデータ基盤
● GCPベースのデータ基盤
● 開発運用する日々の話
● まとめ
Copyright © GREE, Inc. All Rights Reserved.
システムを
「気持ちよく開発・保守できるかどうか」を
示す言葉(として一部使われている)
開発運用する日々
デベロッパーエクスペリエンス(DX)
ref. https://gfx.hatenablog.com/entry/2018/06/28/100103
Copyright © GREE, Inc. All Rights Reserved.
● セットアップの自動化
● 実行環境(OS)の移植性の最大化
● サーバ・システム管理を不要に
● 継続的デプロイを可能に
● スケールアップを可能に
開発運用する日々
The Twelve-Factor App
ref. https://12factor.net/ja/
Copyright © GREE, Inc. All Rights Reserved.
● (本番と同様)、開発時も依存プロセスが多い
● dockerで各プロセスを管理するが、1つ1つ再起動等するのは手間に
なる
● そこで、docker-compseという複数dockerを管理する仕組みを利用
する
● 一括で起動できる
● コンテナ間の通信や依存関係を設定できる
開発運用する日々
DX向上のための工夫の例
Copyright © GREE, Inc. All Rights Reserved.
● システムコンポーネント(AWSベースデータ基盤の場合)
● Kinesis Consumerアプリケーション(データ配送ロジック)
● API Server(クエリの管理や権限制御)
● Analyticsツール(ワークフロー機能等含む)
● 構成管理・デプロイ・起動
● その他、細かいコード
● バッチジョブ(ファイルマージなど)
● Presto等のUser-Defined Function
開発運用する日々
結局何を開発するのか?主なコーディング対象
Copyright © GREE, Inc. All Rights Reserved.
● プロダクトマネジメント体制
● 仕様策定や利用者問い合わせ対応は別チームのタスク
● 開発ツール
● MacBookとAWS開発専用アカウントを駆使する
● IntelliJ IDEA(IDE)のライセンスは付与
● 日々の作業
● 新規開発、bugfix、障害対応
● お昼は割と社内勉強会やコーディング系の部活
● ごく稀に、海外出張でカンファレンスに参加
開発運用する日々
開発運用体制
Copyright © GREE, Inc. All Rights Reserved.
● (クラウド)データ基盤の開発運用のやりがい
● 様々なミドルウェアや技術にさわれる (Mさん、Yさん)
● 少さなコードで大規模なシステムが動く(Iさん)
● 社内ユーザからダイレクトにFBがもらえる(Mさん)
開発運用する日々
開発メンバーの意見
Copyright © GREE, Inc. All Rights Reserved.
● (クラウド)データ基盤の開発運用で大変なこと
● アラート対応
● マネージドサービスが死んだり調子が悪くなると、待つしかない
● マネージドサービスの利用MWのバージョンがニーズにマッチしな
いと辛い
開発運用する日々
開発メンバーの意見
目次
28
● 会社紹介
● データ基盤全般の紹介
● AWSベースのデータ基盤
● GCPベースのデータ基盤
● 開発運用する日々の話
● まとめ
Copyright © GREE, Inc. All Rights Reserved.
● 開発運用対象が周縁化してる
● 分散ファイルシステムやクエリエンジンなどデータパイプラインの中
心部分はマネージドサービス化が進んでいる
● パイプラインの周縁は開発が必要
● 周縁部は事業依存になりがちなので
● 必要な機能が増え、使えるコンポーネントも多いので、システム構成が
複雑になりがち
● DXを考慮した日々の開発が重要
まとめ
開発運用する日々に対する所感

TB / Day規模のゲーム向けデータパイプラインを開発運用する日々

  • 1.
    Copyright © GREE,Inc. All Rights Reserved. TB/Day規模のゲーム向け データパイプラインを 開発運用する日々 グリー株式会社 開発本部 森田想平
  • 2.
    目次 2 ● 会社紹介 ● データ基盤全般の紹介 ●AWSベースのデータ基盤 ● GCPベースのデータ基盤 ● 開発運用する日々の話 ● まとめ
  • 3.
    会社紹介 3 社名 グリー株式会社 事業内容 ●ゲーム・ライブエンタメ事業 ● 広告・メディア事業 ● 投資事業 設立 2004年12月7日 代表者 代表取締役会長兼社長 田中良和 本社所在地 東京都港区六本木 6-10-1 六本木ヒルズ森タワー 従業員数 1,531人(グループ全体・ 2018年6月末現在) 主なグループ企業 ● グリービジネスオペレーションズ株式会社 ● グリーベンチャーズ株式会社 ● ファンプレックス株式会社 ● 株式会社ポケラボ ● リミア株式会社 ● 株式会社ExPlay ● Glossom株式会社 ● GREE VR Capital, LLC. ● 株式会社Wright Flyer Studios ● 株式会社3ミニッツ
  • 4.
  • 5.
    開発本部(の一部メンバー) 会社紹介 ゲームプラットフォーム事業 5 ゲーム事業 ライブエンタメ事業 メディア事業 ●横断データ基盤、分析ツールの開発運用 ● 事業ごとのデータ基盤、分析ツールの開発運用
  • 6.
    目次 6 ● 会社紹介 ● データ基盤全般の紹介 ●AWSベースのデータ基盤 ● GCPベースのデータ基盤 ● 開発運用する日々の話 ● まとめ
  • 7.
    Copyright © GREE,Inc. All Rights Reserved. ● ex. シノアリス ● AppStoreトップセールスランキング最高1位 ● 最大AWSインスタンス数1000前後(らしい) ● ex. ゲームプラットフォーム事業 ● オンプレミスサーバ数千台程度 データ基盤全般の紹介 事業の規模感 ref. https://gamebiz.jp/?p=218802
  • 8.
    Copyright © GREE,Inc. All Rights Reserved. ● データ基盤に送信蓄積されるデータ量 ● 増加量は数TB/Day 程度 ● 現在 1PB前後を管理運用 ● 送信されるデータを全て永遠に取っておくわけではない データ基盤全般の紹介 データの規模感
  • 9.
    Copyright © GREE,Inc. All Rights Reserved. ● オンプレミスMySQLサーバ群 ● MySQLサーバ : 100台程度(数十TB) ● オンプレミスHadoop ● Hadoopクラスタ : 50台程度(数百TB) データ基盤全般の紹介 幾つかの世代がある
  • 10.
    Copyright © GREE,Inc. All Rights Reserved. ● AWSベースのデータ基盤 ● メインのデータ基盤(数百TB) ● 後述します ● GCPベースのデータ基盤 ● 最近使い始めた(データ少ない) ● 少しだけ後で触れます データ基盤全般の紹介 幾つかの世代がある
  • 11.
    Copyright © GREE,Inc. All Rights Reserved. ● 旧Sun Microsystemsの専用アプライアンス(Solaris)から汎用IA サーバ(Ubuntu)へのMySQLマイグレーション ● ZFSの機能(zfs send)にpatchを当てて利用 ● オンプレミスHadoopからAWSデータ基盤へのマイグレーション ● データ送信はfluentdのダブルライト ● 過去ログはAWS Snowballデバイス ● バッチジョブは地道に書き換える データ基盤全般の紹介 レガシーシステムからのマイグレーション
  • 12.
    目次 12 ● 会社紹介 ● データ基盤全般の紹介 ●AWSベースのデータ基盤 ● GCPベースのデータ基盤 ● 開発運用する日々の話 ● まとめ
  • 13.
    Copyright © GREE,Inc. All Rights Reserved. AWSベースのデータ基盤 システム構成 Amazon Kinesis Amazon EMR Amazon S3 Kinesis Consumer API Server BI Tool KPI Metric プロダクトA プロダクトB プロダクトC プロダクトD
  • 14.
    Copyright © GREE,Inc. All Rights Reserved. ● S3への重依存 ● (オンプレミスと比べた場合の)運用負荷減 ● クエリエンジンのステートレス化 ● 障害対応やバージョンアップが容易に AWSベースのデータ基盤 規模感に伴うかんどころ:その1
  • 15.
    Copyright © GREE,Inc. All Rights Reserved. ● S3のファイル数が多くなると、クエリ実行時にS3のRead(API呼び出 し)がボトルネックになる ● 定常的にファイルをマージしている ● 遅延ログがあるとマージが難しくなる ● よく使うテーブルに関しては、定常的にカラムナフォーマットで作り直し ている AWSベースのデータ基盤 規模感に伴うかんどころ:その2
  • 16.
    Copyright © GREE,Inc. All Rights Reserved. ● 会社組織が複雑になると、権限管理が複雑になる ● 書き込みに関しては、プロダクトごとにAWSアカウントがあるので、 IAM Assume Roleという機能を利用する AWSベースのデータ基盤 規模感に伴うかんどころ:その3 Amazon Kinesis Streams IAM Role (KinesisへのWrite権限) Amazon EC2 AWS Lambda 1. AssumeRoleで一時的権限を取得 2. Kinesis::PutRecordsでログを送信 データ分析基盤のAWSアカウント プロダクトのAWSアカウント
  • 17.
    目次 17 ● 会社紹介 ● データ基盤全般の紹介 ●AWSベースのデータ基盤 ● GCPベースのデータ基盤 ● 開発運用する日々の話 ● まとめ
  • 18.
    Copyright © GREE,Inc. All Rights Reserved. GCPベースのデータ基盤 システム構成 analytics-systemproduction server Stackdriver BigQuery Data Studio Cloud Pub/Sub Cloud Storage Cloud Dataflow client Cloud SQL Firebase App Engine ios/android
  • 19.
    Copyright © GREE,Inc. All Rights Reserved. ● スケーラビリティに関しては、まだ検証フェーズ ● 心配はしていない GCPベースのデータ基盤 概要
  • 20.
    目次 20 ● 会社紹介 ● データ基盤全般の紹介 ●AWSベースのデータ基盤 ● GCPベースのデータ基盤 ● 開発運用する日々の話 ● まとめ
  • 21.
    Copyright © GREE,Inc. All Rights Reserved. システムを 「気持ちよく開発・保守できるかどうか」を 示す言葉(として一部使われている) 開発運用する日々 デベロッパーエクスペリエンス(DX) ref. https://gfx.hatenablog.com/entry/2018/06/28/100103
  • 22.
    Copyright © GREE,Inc. All Rights Reserved. ● セットアップの自動化 ● 実行環境(OS)の移植性の最大化 ● サーバ・システム管理を不要に ● 継続的デプロイを可能に ● スケールアップを可能に 開発運用する日々 The Twelve-Factor App ref. https://12factor.net/ja/
  • 23.
    Copyright © GREE,Inc. All Rights Reserved. ● (本番と同様)、開発時も依存プロセスが多い ● dockerで各プロセスを管理するが、1つ1つ再起動等するのは手間に なる ● そこで、docker-compseという複数dockerを管理する仕組みを利用 する ● 一括で起動できる ● コンテナ間の通信や依存関係を設定できる 開発運用する日々 DX向上のための工夫の例
  • 24.
    Copyright © GREE,Inc. All Rights Reserved. ● システムコンポーネント(AWSベースデータ基盤の場合) ● Kinesis Consumerアプリケーション(データ配送ロジック) ● API Server(クエリの管理や権限制御) ● Analyticsツール(ワークフロー機能等含む) ● 構成管理・デプロイ・起動 ● その他、細かいコード ● バッチジョブ(ファイルマージなど) ● Presto等のUser-Defined Function 開発運用する日々 結局何を開発するのか?主なコーディング対象
  • 25.
    Copyright © GREE,Inc. All Rights Reserved. ● プロダクトマネジメント体制 ● 仕様策定や利用者問い合わせ対応は別チームのタスク ● 開発ツール ● MacBookとAWS開発専用アカウントを駆使する ● IntelliJ IDEA(IDE)のライセンスは付与 ● 日々の作業 ● 新規開発、bugfix、障害対応 ● お昼は割と社内勉強会やコーディング系の部活 ● ごく稀に、海外出張でカンファレンスに参加 開発運用する日々 開発運用体制
  • 26.
    Copyright © GREE,Inc. All Rights Reserved. ● (クラウド)データ基盤の開発運用のやりがい ● 様々なミドルウェアや技術にさわれる (Mさん、Yさん) ● 少さなコードで大規模なシステムが動く(Iさん) ● 社内ユーザからダイレクトにFBがもらえる(Mさん) 開発運用する日々 開発メンバーの意見
  • 27.
    Copyright © GREE,Inc. All Rights Reserved. ● (クラウド)データ基盤の開発運用で大変なこと ● アラート対応 ● マネージドサービスが死んだり調子が悪くなると、待つしかない ● マネージドサービスの利用MWのバージョンがニーズにマッチしな いと辛い 開発運用する日々 開発メンバーの意見
  • 28.
    目次 28 ● 会社紹介 ● データ基盤全般の紹介 ●AWSベースのデータ基盤 ● GCPベースのデータ基盤 ● 開発運用する日々の話 ● まとめ
  • 29.
    Copyright © GREE,Inc. All Rights Reserved. ● 開発運用対象が周縁化してる ● 分散ファイルシステムやクエリエンジンなどデータパイプラインの中 心部分はマネージドサービス化が進んでいる ● パイプラインの周縁は開発が必要 ● 周縁部は事業依存になりがちなので ● 必要な機能が増え、使えるコンポーネントも多いので、システム構成が 複雑になりがち ● DXを考慮した日々の開発が重要 まとめ 開発運用する日々に対する所感