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
DBRE(Database Reliability Engineering) 始めました ~ ...
Search
_awache
June 07, 2019
Technology
4
1.7k
DBRE(Database Reliability Engineering) 始めました ~ Make it visible / No Ops, More Code ~
2019-06-07 MySQL Casual Talks vol.11 のスライドです
https://mysql-casual.connpass.com/event/131551/
_awache
June 07, 2019
Tweet
Share
More Decks by _awache
See All by _awache
Restarting_SRE_Road_to_SRENext_.pdf
_awache
1
410
SREKaigi.pdf
_awache
2
6k
Practical_Tips_for_Using_Confluence__Jira__and_Findy_Team__Right_Now.pdf
_awache
2
450
【関西DB勉強会】 ~ 全部見せます ~KINTO テクノロジーズの DBRE とは
_awache
2
3.1k
KTC_DBRE.pdf
_awache
1
630
_オープニング__GitLabに学ぶ_世界最先端のリモート組織のつくりかた_そーだいなる輪読会キックオフ.pdf
_awache
0
120
[Opening] DBRE Summit 2023
_awache
0
570
CUS-11_AWS-Summit-2023_DBRE_Practice.pdf
_awache
1
3.1k
DBRE 活動と information_schema
_awache
1
2.2k
Other Decks in Technology
See All in Technology
高速なプロダクト開発を実現、創業期から掲げるエンタープライズアーキテクチャ
kawauso
2
6.2k
Witchcraft for Memory
pocke
1
720
Geminiとv0による高速プロトタイピング
shinya337
0
220
Delegating the chores of authenticating users to Keycloak
ahus1
0
130
モバイル界のMCPを考える
naoto33
0
390
2025-07-06 QGIS初級ハンズオン「はじめてのQGIS」
kou_kita
0
120
OpenHands🤲にContributeしてみた
kotauchisunsun
1
510
ドメイン特化なCLIPモデルとデータセットの紹介
tattaka
2
550
asken AI勉強会(Android)
tadashi_sato
0
160
自律的なスケーリング手法FASTにおけるVPoEとしてのアカウンタビリティ / dev-productivity-con-2025
yoshikiiida
1
11k
赤煉瓦倉庫勉強会「Databricksを選んだ理由と、絶賛真っ只中のデータ基盤移行体験記」
ivry_presentationmaterials
0
110
生成AI時代 文字コードを学ぶ意義を見出せるか?
hrsued
1
760
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
Why Our Code Smells
bkeepers
PRO
337
57k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Typedesign – Prime Four
hannesfritz
42
2.7k
Visualization
eitanlees
146
16k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
How GitHub (no longer) Works
holman
314
140k
Code Reviewing Like a Champion
maltzj
524
40k
The Language of Interfaces
destraynor
158
25k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
How to Ace a Technical Interview
jacobian
277
23k
Transcript
Database Reliability Engineering 始めました ~ Make it visible / No
Ops, More Code ~ http://www.bizreach.jp プラットフォーム基盤推進室 Database Reliability Engineer Group
Hello!! *********** 1. row ********** name: 粟田 啓介 nickname: あわっち
title: DBRE twitter: @_awache 1 rows in set (0.00 sec) mysql > SELECT * FROM me \G
README ✅ この資料は @_awache という個人の独断と偏見により作成したものです 。 ✅ 所属する組織の意見を代表するものではありません 。 ✅
合法性や安全性、情報の正確性についても保証できません。 カジュアルな会(のはず)なので内容もノリも軽めです。 カシュっとしながら 楽しんでいただければと思いますmm mysql-casual だけど MySQL のこと少なめです。 ✅ Theme by Template Park. >https://template-parks.com/
DBRE 始めました
Mission プラットフォームを通してエンジニアリングとプロ ダクトを成長させ続けられる会社を促進すること Vision Make it Visible 品質、生産性を見える化することで、 課題の発見と健全な成長を促す No
Ops, More Code エンジニアに対して開発と事業成長に 注力できる環境を提供する 組織理念 エンジニアが成長でき、居続けたいと思う会社にする 優秀なエンジニアが集まり、育て、居続けられる環境を作ることで 世の中により多くの価値を提供できる プラットフォーム基盤推進室
(直近の) DBRE Group’s Value ◦ BizReach の DBRE の存在意義 ➢
Platform を提供することで Mission/Vision を具現化 ▪ まずは3大非機能要件の共通化を行い各事業に提供 • Provisioning • Monitoring • Backup ▪ Platform 化の価値 • 機能要件に注力できるリソース確保・生産性向上 • ナレッジを使いまわせることによる社内の人材流動性向上
Provisioning Platform Backup/ Masking Platform Monitoring Platform BizReach として最低限必要なパッケージが揃った DBを素早く提供
MySQL パラメータセッティング 管理ユーザーとアプリケーションユーザー設定 … etc プロダクトから切り離された環境を構築 定期的なバックアップ データのマスクを行う 他部署はマスクされたデータを参照できる 定量モニタリングに必要なデータを Datadogに連携 人材の横断的な移動を可能にする まず Platform 化したかったこと
Platform Builders ◦ 事業に対して Database Platform の提供 ➢ 個別最適を行わない
▪ 個別機能を開発しないではない ▪ 個別の機能をいかに Platform として昇華させるか ➢ ただやるだけだとつまらない ▪ やりたいことは既に枯れたこと ▪ How の部分を今っぽく作れたら楽しくね?
Backup Platform
Backup Platform ◦ 雑なイメージ Product Account Platform Account 本番 Database
① Share ② Restore ③ mysqldump ④ S3 UPLOAD ⑤ Restore Test
セキュリティ関連① ◦ Restore をする時点で 監査 Log を全出力 ➢ 同じ会社内とはいえ他事業のデータ
▪ 自分たちの身を守るためにも、そして事業の方々に 安心して任せてもらえるようにするためにも • Database に対する監査ログを出力 • AWS アカウントそのものに対するログも全て保存 • 誰からでもそのログはオープンに見えるような仕組みづくりに今後 取り掛かる
セキュリティ関連② ◦ Restore をする時点でランダムパスワード ➢ RestoreしたDatabaseにはヒトはアクセスしない ▪ 毎回ランダムで生成されたパスワードで起動
• 必要な処理が完了すればいい • システム的にパスワードが保持されているだけでいい > response = client.modify_db_cluster( > DBClusterIdentifier='string', > MasterUserPassword='string', > ApplyImmediately=True, > )
セキュリティ関連③ ◦ 必要な処理が終わったら全てお掃除 ➢ DB Instance から作らせてもらったSnapshotまで ▪ 不要に情報を保持しておかない
▪ Snapshotの保持数に制限もあるので事業の運用に与える影 響を最小限に抑える
Parallel に dump ◦ Backup にかかる時間を短縮 ➢ アプリケーションからのアクセスない ▪
つまり更新されないので • information_schema からテーブルリスト引っ張って • その後、テーブル単位でパラレルに dump (うちでは TRIGGER や VIEW を基本的に使ってないのでシンプルに)
Restore Test ◦ Backupしても戻せなければただのゴミ ➢ 同じ Instance 内に Restore して確認
▪ 基本同じはず ▪ ここまで終わればあとはよほどのことがない限り 触る必要がないので S3に塩漬けておく
Masking Platform
Masking Platform ◦ Platform として資産を使い回し Product Account Platform Account 本番
Database ① Share ② Restore ③ data masking ④ S3 UPLOAD 違うのは ここだけ
Masking の運用① ◦ Masking Data の使い方 ➢ Masking されたデータはマーケティング用途で使用
▪ tsv 形式でファイル出力してS3にPUT ▪ そのファイルをマーケティングチームが取りに来て ▪ マーケティング用の BigQuery に入れる • 安心してください、個人情報はマスクしています • そして権限ある人しか見れないようにしています
Masking の運用② ◦ 僕たちの責任範囲 ➢ 事業から指定されたようにMaskingをすること ▪ Masking Rule
等は事業側で決める • git 上に設定ファイルを commit してもらってそれを使用 • 誰がいつ変更したのかの証跡を追えるように 責任範囲を明確にすることで自分たちの身を守ることも忘れずに
Masking の運用③ ◦ (ごく近い) 将来的な展望 ➢ Masking したデータを Restore した
DB に反映 ➢ SnapShot を取得 ➢ 各事業アカウントにShare ➢ それを起動するだけで鮮度の高い検証環境を作れる
Masking Platform ◦ 雑なイメージ Product Account Platform Account 本番 Database
① Share ② Restore ③ data masking ④ S3 UPLOAD ⑤ UPDATE ⑥ Create Snapshot ⑦ Share 検証用 Masking DB
Provisioning Platform
Provisioning Platform ◦ インスタンスの起動に関しては王道 ➢ Terraform などで構築(割愛) ◦
これからはローカル環境構築も重点的に ➢ 本番環境のパラメータグループから必要な情報を取得して ▪ バージョンとか文字コードとか SQL モードとか 検討中 ➢ my.cnf を動的に作って ➢ 前日と変わっていたら git に commit ▪ docker-compose でサービス指定したらいい感じにあげれるようにしたい
Finally
DBRE の概念 ◦ DBREとは ➢ Database に於けるモノゴトを ` Reliability Engineering
` という側面 から解決していく ▪ Databaseに対する専門知識 ▪ Database Professional としての判断 を用いて再帰性のあるプロセスや戦略決定に落とし込むこと ➢ DBRE の概念を実行するヒト、役割は DBREs
まだ僕たちの旅は始まったばかり ◦ DBREについても勉強中 ➢ そもそも自分たちでもうまく消化できてない部分も多い ▪ 社内の有志で DBRE 本輪読会をやってます
(スラング多すぎて翻訳辛い) ▪ 100% これが正しいなんて定義するには時間がかかるし 会社 にフィットさせるにはもっと時間がかかる • `こうあるべき` ということに固執しすぎず柔軟に 私達なりの DBRE を進化させます
僕たちの活動 ◦ アプローチ ➢ 基本的な部分は今までと変わらない ▪ 環境分離、Backup/Restore、Security、構成管理 , etc.
➢ 変わっているのはそれを取り巻く環境 ▪ DevOps思想の醸成、Cloud・コンテナ技術の爆発的な発展 ▪ Application に求められるスピード ▪ ほとんどを自動化し Engineering によって解決できる土壌が揃ってきてい る
僕たちだけやれるとは思えない ◦ なぜなら ➢ パラメーターは有限 ➢ 装備も有限 もちろん全部できたら
最強なんだろうけど。。 ならどうする?
1. 社内で仲間を集う ◦ 自分の足りないところを仲間で補い合う ➢ 各々得意な分野を伸ばしていきつつ ➢ 周りの力を借りて同時に周辺の知識を少しづつ蓄えていく
2. 社外で仲間を集う① ◦ AWS の SA さんとか ➢ うちの担当は控えめに言って 最
& 高 ➢ 稚拙な状態での計画も一緒に叩き直してくれる
3. 社外で仲間を集う② ◦ MySQL 業界には 神 な方々がいっぱい ➢ Slack や
Twitter で呟くといろんなAPIが反応してくれる ➢ そして優しく送り出してくれる ➢ つまり楽しい
一緒に旅をしてくれる仲間を募集中 ◦ DBRE グループはできてまだ4ヶ月 ➢ やらなければいけないこと、やりたいことはたくさん ➢ 今はまだこれまであるべきものを形にしているだけ
➢ 新しいことも手をつけていきたい ➢ 興味がある方はご連絡くださいmm
Thanks!! @_awache Contact me!