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
330
SREKaigi.pdf
_awache
2
5.6k
Practical_Tips_for_Using_Confluence__Jira__and_Findy_Team__Right_Now.pdf
_awache
2
430
【関西DB勉強会】 ~ 全部見せます ~KINTO テクノロジーズの DBRE とは
_awache
2
2.9k
KTC_DBRE.pdf
_awache
1
600
_オープニング__GitLabに学ぶ_世界最先端のリモート組織のつくりかた_そーだいなる輪読会キックオフ.pdf
_awache
0
110
[Opening] DBRE Summit 2023
_awache
0
560
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
ゆるくはじめるSLI・SLO
yatoum
1
100
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2025年版)
infiniteloop_inc
13
45k
水耕栽培に全部賭けろ
mutsumix
0
140
転職したらMCPサーバーだった件
nwiizo
13
9.1k
Amplifyとゼロからはじめた AIコーディング。失敗と気づき
mkdev10
1
160
Kaigi Effect 2025 #rubykaigi2025_after
sue445
0
170
SONiCにて使用されているSAIの実際
sonic
0
150
非root化Androidスマホでも動く仮想マシンアプリを試してみた
arkw
0
130
LangfuseではじめるAIアプリのLLMトレーシング
codenote
0
200
20250514 1Passwordを使い倒す道場 vol.1
east_takumi
0
140
激動の一年を通じて見えてきた「技術でリードする」ということ
ktr_0731
8
8k
雑に疎通確認だけしたい...せや!CloudShell使ったろ!
alchemy1115
0
240
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.2k
Product Roadmaps are Hard
iamctodd
PRO
53
11k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.4k
Optimising Largest Contentful Paint
csswizardry
37
3.2k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Writing Fast Ruby
sferik
628
61k
The Language of Interfaces
destraynor
158
25k
Building Applications with DynamoDB
mza
94
6.4k
Code Review Best Practice
trishagee
68
18k
Faster Mobile Websites
deanohume
307
31k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
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!