Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TB / Day規模のゲーム向けデータパイプラインを開発運用する日々
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
gree_tech
PRO
September 18, 2018
Technology
470
0
Share
TB / Day規模のゲーム向けデータパイプラインを開発運用する日々
WebDB Forum 2018で発表された資料です。
http://db-event.jpn.org/webdbf2018/
gree_tech
PRO
September 18, 2018
More Decks by gree_tech
See All by gree_tech
変わるもの、変わらないもの :OSSアーキテクチャで実現する持続可能なシステム
gree_tech
PRO
0
3.8k
マネジメントに役立つ Google Cloud
gree_tech
PRO
0
43
今この時代に技術とどう向き合うべきか
gree_tech
PRO
3
2.6k
生成AIを開発組織にインストールするために: REALITYにおけるガバナンス・技術・文化へのアプローチ
gree_tech
PRO
0
310
安く・手軽に・現場発 既存資産を生かすSlack×AI検索Botの作り方
gree_tech
PRO
0
320
生成AIを安心して活用するために──「情報セキュリティガイドライン」策定とポイント
gree_tech
PRO
1
2k
あうもんと学ぶGenAIOps
gree_tech
PRO
0
440
MVP開発における生成AIの活用と導入事例
gree_tech
PRO
0
470
機械学習・生成AIが拓く事業価値創出の最前線
gree_tech
PRO
0
330
Other Decks in Technology
See All in Technology
FASTでAIエージェントを作りまくろう!
yukiogawa
4
180
制約を設計する - 非決定性との境界線 / Designing constraints
soudai
PRO
4
590
Physical AI on AWS リファレンスアーキテクチャ / Physical AI on AWS Reference Architecture
aws_shota
1
280
非同期・イベント駆動処理の分散トレーシングの繋げ方
ichikawaken
1
250
TUNA Camp 2026 京都Stage ヒューリスティックアルゴリズム入門
terryu16
0
650
JEDAI認定プログラム JEDAI Order 2026 受賞者一覧 / JEDAI Order 2026 Winners
databricksjapan
0
460
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
qa
0
670
Tour of Agent Protocols: MCP, A2A, AG-UI, A2UI with ADK
meteatamel
0
190
FlutterでPiP再生を実装した話
s9a17
0
240
Cursor Subagentsはいいぞ
yug1224
2
130
OpenClawでPM業務を自動化
knishioka
2
360
【Oracle Cloud ウェビナー】データ主権はクラウドで守れるのか?NTTデータ様のOracle Alloyで実現するソブリン対応クラウドの最適解
oracle4engineer
PRO
3
130
Featured
See All Featured
Joys of Absence: A Defence of Solitary Play
codingconduct
1
330
Information Architects: The Missing Link in Design Systems
soysaucechin
0
860
Designing Experiences People Love
moore
143
24k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
120
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.8k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
450
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
YesSQL, Process and Tooling at Scale
rocio
174
15k
How to train your dragon (web standard)
notwaldorf
97
6.6k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
200
We Have a Design System, Now What?
morganepeng
55
8.1k
Thoughts on Productivity
jonyablonski
76
5.1k
Transcript
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-system
production 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を考慮した日々の開発が重要 まとめ 開発運用する日々に対する所感