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
redash patche at dmm
Search
tannai
September 03, 2019
Technology
750
0
Share
redash patche at dmm
tannai
September 03, 2019
More Decks by tannai
See All by tannai
akibago-2018-10-30
yuukigoodman
0
83
serverless-design-and-streaming-date-processing-service
yuukigoodman
0
990
alexa-changes-development-process
yuukigoodman
0
1.6k
VUIとAlexaによるちょっと未来の体験の話2
yuukigoodman
0
870
regrowth2016alexa
yuukigoodman
0
1.3k
Rails App Deployment with CodeDeploy
yuukigoodman
0
1.5k
cognito-userpools-in-production
yuukigoodman
4
8.8k
aws-lambda-in-practice
yuukigoodman
2
2k
serverless-from-today
yuukigoodman
2
2.2k
Other Decks in Technology
See All in Technology
扱える不確実性を増やしていく - スタートアップEMが考える「任せ方」
kadoppe
0
320
AIが書いたコードを信じられない問題 〜レビュー負荷を下げるために変えたこと〜 / The AI Code Trust Gap: Reducing the Review Burden
bitkey
PRO
8
1.4k
Do Ruby::Box dream of Modular Monolith?
joker1007
1
350
AgentCore×VPCでの設計パターンn選と勘所
har1101
3
300
レビューしきれない?それは「全て人力でのレビュー」だからではないでしょうか
amixedcolor
0
350
AWS Agent Registry の基礎・概要を理解する/aws-agent-registry-intro
ren8k
3
390
Standards et agents IA : un tour d’horizon de MCP, A2A, ADK et plus encore
glaforge
0
190
Rapid Start: Faster Internet Connections, with Ruby's Help
kazuho
2
760
[OpsJAWS 40]リリースしたら終わり、じゃなかった。セキュリティ空白期間をAWS Security Agentで埋める
sh_fk2
3
250
AI와 협업하는 조직으로의 여정
arawn
0
510
Amazon S3 Filesについて
yama3133
2
220
AgentCore Managed Harness を使ってみよう
yakumo
2
200
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.8k
Done Done
chrislema
186
16k
Being A Developer After 40
akosma
91
590k
Designing Experiences People Love
moore
143
24k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
27
3.4k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
140
Building Adaptive Systems
keathley
44
3k
A Soul's Torment
seathinner
6
2.7k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
200
How STYLIGHT went responsive
nonsquared
100
6.1k
Transcript
© DMM.com DMM.comにおける Redashパッチ事情 プラットフォーム事業本部ビッグデータ部DREチーム 丹内優紀 1
© DMM.com • 丹内優紀 • 2018年11月 中途入社 • ビッグデータ部DREチーム所属 • データ分析基盤の運用をしてます
• Redashの運用もやってます! 2 自己紹介
None
© DMM.com DMM.comのRedash運用状況 • 社員1527人中、アカウント保有者547人 • クエリ実行者 266人 4
© DMM.com DMM.comのRedash運用状況 • ダッシュボード数 884 • クエリ数 12370 5
© DMM.com DMM.comのRedash運用状況 • ホスト情報 • CPU 8コア • メモリ
64GB • disk 60GB • Docker/Portainerを使用 • Redash v4 6
© DMM.com 7 _人人人人人人_ > Redash v4 <  ̄YYYYYY ̄
© DMM.com アップデートを阻むもの、それは・・・ パッチ! 8
© DMM.com 本日の発表の趣旨 Redashの利用が活発になると、新しい要求が出てきます。 環境が急激に変化するDMM.comでは、パッチを当てることで幾つかの要 求に応えてきました。 パッチは必ずしも良いと言えるものではありません。 パッチの裏にある要求を持ち帰って頂けると幸いです。 9
© DMM.com データソースの名前やIDを コメント出力するパッチ 10
None
その数だけ事業部が!!
© DMM.com 背景 • Redashで事業部ごとのクエリ実行状況を把握したい。 • 事業部ごとの消費リソース(特にAthena代)を知りたい。 => 分析環境の管理業務を容易に! 13
© DMM.com パッチの内容(バックエンド) コメント出力部分に追加 14
© DMM.com パッチの結果 クエリにコメントが出力された! 15
© DMM.com パッチの結果 部署ごとの利用金額ダッシュボードができた! 16
© DMM.com クエリ実行時に partition keyを強制するパッチ 17
© DMM.com 背景 データ増えるけどリソース増えないので パーティション指定してほしい! 18
© DMM.com パッチの内容 クエリをパースして正規表現で探す 19
© DMM.com パッチの結果 where句で Partition Key 必須になった! (ついでにlimit句も必須にした) 20
© DMM.com パラメータ付きクエリを viewerも閲覧できるパッチ 21
© DMM.com 背景 • 閲覧権限では、「クエリを編集して実行・保存」ができない。 • 「Fork」もできない • 「パラメータ付きクエリ」はダッシュボードの閲覧すらできない。 =>
閲覧したい! 22
© DMM.com パッチの内容(フロントエンド) 23 閲覧権限でもクエリ実行ボタンを押せるようにする
© DMM.com パッチの内容(フロントエンド) 閲覧権限ではforkボタンを表示しない 24
© DMM.com パッチの内容(バックエンド) バックエンドで弾かない 25
© DMM.com パッチの結果 26
© DMM.com 人によってテーブルを 出し分けるパッチ 27
© DMM.com 背景 おかねのデータは限られた人だけ見れるようにしたい! 28
© DMM.com 背景補足 今回は横断部署の分析環境についてお話しています。 分析環境から触れられるDBには個人情報が入っていません。 従って、全ての分析者にデータを公開する方針で運営しています。 一方で事業部が独立していて、お金に関わるデータを公開しにくい 場合もあります。 できるだけ横断の分析環境を使って欲しいので、 必要なセキュリティを実装することでデータを入れてもらいます。
29
© DMM.com パッチの前に • データ基盤のセキュリティは次のような観点で考えられる。 • 認証:アクセスする人物の確認 • 認可:アクセスする権限の確認 •
監査:アクセスした事実の記録 • RedashのGoogleログイン機能で認証を実現する • データソース毎の機能で認可を実現する 30
© DMM.com パッチの内容 31 Prestoへの認可
© DMM.com パッチの内容(オンプレPresto) • Prestoにテーブルセキュリティ設定を追加 • Redashにスキーマ閲覧制限設定を追加 これらを hive-security.json ファイルで実現する
32
© DMM.com パッチの内容(オンプレPresto) • Prestoはhiveテーブルを参照する設定にしている。 • その設定は hive-security.json ファイルで行っている。 •
同じファイルをRedashのpyhiveにもパッチ。 33
© DMM.com 34 これがずっと続く パッチの内容(オンプレPresto)
© DMM.com パッチの内容 35 Athenaへの認可
© DMM.com パッチの内容(Athena) IAMでアクセス可能なテーブルを制御する ※AWS Glueを併用しています 36
© DMM.com パッチの内容(Athena) 部署ごとにできるIAM UserとPolicyの管理が必要 37
© DMM.com パッチを外すには 38
© DMM.com 対応方針 • PRを送る • 諦める(特にUIが関わるもの) • Redash以外で実現する 39
© DMM.com Redash以外でアクセス制御を実現する方法 http://pivotalhd.docs.pivotal.io/docs/knox-gateway-administration-guide.html 40 Hadoopにセキュリティ設定を寄せる
© DMM.com 教訓とまとめ 41
© DMM.com 教訓 • パッチは最後の手段にする。 • 要求を見つけて長期的な計画のもと利用環境を整備する。 • 運用コストをかけてまで実現したいことなのかを考える。 42
© DMM.com まとめ • 様々な立場の人がRedashを使うと、新しい要求が出てきます。 • Redashに限らず、パッチを含め状況の変化に対応しつつ、 システムを運用しやすいものにしていきましょう! 43
© DMM.com 最後に そんなDMMでは一緒に基盤を良くし てくれる人を探しています! https://dmm-corp.com/recruit/359 もちろん分析してくれる人も、 他の職種も募集中です! 44
© DMM.com おしまい