見習いDBREの奮闘記
これは DBRE Advent Calendar 2024 カレンダーの 15日目の記事です
はじめに
今回初めてDBREのアドカレに投稿させていただきます。
私は株式会社ZOZOでバックエンドエンジニアとして働いていますが、今年からDBRE:Database Reliability Engineerとしての活動も始めました。
実は、以下のテックブログで紹介されている開発メンバーの中に、私も含まれています。
ZOZOTOWNのDBRE活動に開発メンバーを招いた経緯とその結果
これまではバックエンドエンジニアとして、テーブル設計やクエリの最適化をしていましたが、DB全体の負荷や全体最適化という視点は持っていませんでした。
そんな中、「SREのメンバーと一緒にDBRE活動をやってみたい人はいないか?」という募集があり、真っ先に手を挙げました。不安はありましたが、先輩DBREや同期に支えられながら楽しく活動を続けています。
この記事では、DBREとして1年間活動して感じたことや学び・取り組みについて共有したいと思います。
基幹DBのパフォーマンス向上
開発メンバーがDBREに参画することになった背景には、基幹DBのパフォーマンス悪化やトラブル・問い合わせの増加がありました。
以前のDBRE体制では、ボトルネッククエリに対してスポット的な修正対応は行っていたものの、定期的な負荷監視や継続的なチューニングは十分に行えていない状況でした。
そんな中で、開発チームから自分と同期のDBREが参画し、対象の基幹DBで実行されているクエリを定期的に監視し、問題があれば開発チームにフィードバックするという体制が整いました。
- 基幹DBで実行されているクエリの定期的な監視を実施。
- 問題のあるクエリを特定し、開発チームへフィードバックを行う。
- インデックスの追加やクエリの修正を依頼
まだまだ改善の余地はありますが、開発メンバーがDBREとして参画したことで、基幹DBのパフォーマンス改善が着実に前進していると感じています。
今後も、より効率的なクエリの実行や負荷低減に向けて、継続的に取り組んでいきます。
自チームのマイクロサービスDBのチューニングを推進
DBREの活動としては基幹DB(SQL Server)のパフォーマンス向上がメインでしたが、活動の幅を広げ、自チームが運用するマイクロサービスDB:Aurora MySQLのチューニングも推進しています。
具体的な改善ステップについては以下ブログで紹介しています。
Aurora MySQLにおけるクエリの改善ステップ
SQL Serverのパフォーマンス改善で学んだ知識や手法は、Aurora MySQLのチューニングにも応用できることが多くあります。
今年から本格運用を開始したマイクロサービスにおいて、徐々に性能劣化が見られるようになったタイミングで、適切なチューニングを進めています。
今後も、SQL ServerとAurora MySQL双方で得た知見を活かしながら、安定したDBパフォーマンスの維持と向上に取り組んでいきます。
アラート通知の改善
基幹DBのパフォーマンス改善がメインテーマではありますが、活動を続ける中で「もっと色んなことにチャレンジしたい!」という気持ちが強くなり、幅広い改善に取り組んでいます。
その一つが、バッチアプリのアラート通知改善です。従来のアラートは内容が不明瞭かつ通知先も不適切で、エラー対応が遅れがちでした。そこで、アラート内容を明確化し、通知改善に取り組みました。
改修は大規模ではありませんでしたが、手が回っていなかった部分に着手したことで、アラート対応の効率化や運用改善の意識向上につながりました。
DBREでの活動が楽しい
これは完全に感想ですが…w
DBREとして活動する中で、DBの知識が深まるだけでなく、自分のチューニングや改善がそのままシステムのパフォーマンス向上に直結することに大きなやりがいを感じています。
技術的に向上すべき点は多いですが、自分のスキルアップやチームへの貢献を実感できることが、DBRE活動の楽しさにつながっていると感じます。
今後の展望
DBRE Advent Calendar 2024の1日目:@tomomo1015のDBREをやめてみてわかる、DBREとは何だったのかにあった、「DBREは文化」という言葉はとても響きました。
- DBが生み出す価値を最大化するために(目的)
- より信頼性・可用性・パフォーマンスを高めるために(目的)
目的に対して、価値を生み出せるようにできることからコツコツと。
より良いDBの文化を作り上げていく為に、 自分ができることを積み重ねながら、DBREの先輩方から得た知識やスキルを開発メンバーにも還元する役割を担っていきたいと思います。
- インデックスの仕組み
- パフォーマンスチューニングのノウハウ
- テーブル設計における正規化・非正規化
などなど、開発メンバーに標準化して伝えたいことはたくさんあるので、開発チーム全体に対しての勉強会や技術共有会をどんどん開催したいと思っています。
また、日頃のDBREとしての活動・チューニング実績はテックブログ等の形でしっかりと外部にも発信していけるようにしたいと思います。
最後に
DBREとしての日々のチューニングやDBの最適化は一見すると地味な作業ではありますが、その一つひとつの改善が、自社サービスのパフォーマンス向上や信頼性向上につながっているのかなという実感があります。
今後も、DBREの一員として、より良いDBの文化を築き上げ、チームやサービスに貢献できるよう、日々精進していきます。