データベースエンジニアの仕事の変化について

サムネイル

はじめに

CTO 室の鈴木利房です。久しぶりのデータベースエンジニアとして今年の 7 月に DMM に入社しました。

前職から含めて 10 年以上データベースエンジニアとして働いてきた私が、今強く感じることがあります。
仕事の内容が大きく変化してしまったと。
年の瀬なので、データベースエンジニアの仕事内容が変化した理由と、今後の働き方に関して思いを馳せてみました。

技術の変化・進展で、今後の自分の仕事・業務の変化を予感しているエンジニアの方々に、すでに大きな変化を経験した者からの経験談として読んでいただければと思います。

ところでデータベースエンジニアって?

データベースを専門とするエンジニアです。
IT 企業でもこの役割の専業エンジニアが存在しない会社は多いと思うので、馴染みがないかも知れません。

従来のデータベースエンジニアの主な仕事

従来のデータベースエンジニアの仕事は、設計・運用・保守・最適化の 4 つを中心に、多岐にわたる業務を担っていました。
そして、中央集権的にデータベースを管理することに重点が置かれてたため、データベース管理者( Database Administrator : DBA )とも呼ばれました。

その具体的な内容を以下に示します。

1. データベースの設計・設置

  • 要件分析に基づいて適切なデータベースの設計
  • データモデリング、スキーマの作成、エンティティ・リレーションシップの定義
  • 適切なハードウェアとソフトウェアの選定・設定

2. データの整合性とセキュリティ

  • データのプライバシーとセキュリティを確保するためのポリシー策定
  • ユーザーアクセス権限の管理と監査
  • セキュリティアップデートの適用、脆弱性管理

3. バックアップとリカバリ

  • 定期的なデータベースのバックアップ計画と実行
  • データリカバリプロセスの設計とテスト
  • 災害復旧計画の策定とメンテナンス

4. アップグレードとメンテナンス

  • データベースシステムソフトウェアの定期的なアップグレード
  • パッチ適用とシステムの最新状態の維持
  • システムメンテナンスの計画と実施

5. トラブルシューティング

  • 不具合やエラーの診断と解決
  • パフォーマンスの問題やシステムダウンタイムの対応
  • エラーログの解析と問題修正

6. 監視とレポート

  • データベースの稼働状況を常時監視
  • 定期的なパフォーマンスレポートや使用状況の報告
  • データベースログの監査と異常の早期検出

7. ドキュメンテーション

  • データベース構成、設定変更、アップグレード履歴の記録
  • 操作手順書やベストプラクティスの策定
  • トラブルシューティングガイドの作成と更新

8. パフォーマンスの最適化

  • クエリの最適化とチューニング
  • インデックスの作成と管理
  • データベースの性能監視とパフォーマンス分析
  • ボトルネックの特定と解消

9. 教育とサポート

  • 開発チームや他の技術スタッフへのトレーニングとサポート
  • ベストプラクティスの共有と知識の伝達

10. データベース関連プロジェクト管理と計画

  • 新しいデータベース技術やツールの評価と導入
  • データベース関連のプロジェクトの計画と実行
  • 企業の戦略に基づいたデータベースのスケーリングと拡張計画

仕事の変化

いくつかの業務が消滅、または移管されました。
要因はクラウド移行とマイクロサービス化です。

クラウド移行で無くなった仕事

最初の変化の要因はクラウド移行でした。 クラウドが、物理的な構築や複雑な設定を自動化しました。

1. データベースの設計・設置の一部

「適切なハードウェアとソフトウェアの選定・設定」する業務は、ほぼ無くなりました。 構築も設定もサイジングもしなくても良いんです。 データベースサーバーの冗長構成の構築にはそれなりの知識が必要でしたし、パラメータの設定も種類が多く難解でした。

しかし、今やその知識が生きる場面は少ないです。

冗長構成の構築は簡単にでき、パラメータの設定はベストプラクティスに則ってあらかじめ適切な値が設定されている項目が多く、あえて細かい変更をしなくても適切に動作してくれます。もちろん利用者側で選択する必要がある重要なパラメータは存在しますが、それほど多くありません。

オンプレでは、長期運用されているデータベースではストレージ容量不足に悩まされてきましたが、クラウドベンダーによっては 128 TiBまで自動拡張するストレージが提供されていたりします。これで容量が不足するって、なかなか無いです。

3. バックアップとリカバリ

この業務も、ほぼ無くなりました。

スナップショットを自動的に取ってくれますし、リカバリーも簡単に確実にできます。MySQL ではちょっと面倒だった特定時点まで戻す PITR ( Point-In-Time Recovery ) も、コンソールから簡単に実施できてしまいます。
バックアップ先の容量に悩んだり、バックアップ所要時間が 12 時間を越えるようになり先々のことが心配になったり、とオンプレ時代は悩み多い場面が多かったのですが、悩む必要が無くなりました。

4. アップグレードとメンテナンス

スケジュールの部署間調整や、メンテナンスの実施・内容を計画する業務は残っています。ですが、実施は本当に簡略化されました。

クラウド環境のデータベースサーバーはマネージドサービスの採用が一般化しており、パッチ適用、アップグレードは自動化されています。
ダウンタイムをゼロにしてサービスを継続したいという野望を持たず、メンテナンス入りさせるなら、非常に簡単にできてしまいます。

アップグレード前のアプリケーション接続検証用データベースサーバーの用意も、スナップショットからの復元で簡単にできます。
オンプレ時代の苦労が嘘みたいです。

6. 監視とレポート

データベースの状態を可視化する仕組みがあらかじめ組み込まれていることで、どれを警告させるのかを選ぶだけになりました。
レポートも NewRelic や Datadog などを使っていれば、一カ所で確認できます。

マイクロサービス化で無くなった仕事

次なる変化の要因はマイクロサービス化です。
データベースサーバーの共用利用は無くなり、各チームが責任を持って自分達のサービス用のデータベースを運用しています。
今やデータベースの設計・保守・運用・最適化のほとんどの仕事を担当するのは、DBA ではなく開発チームです。

では何が残ったのか

次の 2 つは開発チームで解決できなかった場合や、人手が足りない場合に声がかかります。

5.トラブルシューティング
8.パフォーマンスの最適化

そして、次の 2 つの仕事が DBA の主な仕事になったと感じます。

9.教育とサポート
10.データベース関連プロジェクト管理と計画

具体的には次のような内容です。

  • データベース運用支援
  • クエリチューニング支援
  • データモデリング支援
  • データベースの新機能、新しいプロダクトの検証

開発チームを支援していて感じるのは、当然ですが、彼らはデータベースのスペシャリストではないという点です。
大規模なデータベースではちょっとした操作が障害の起因になることがあります。サービス稼働中のインデックスの作成やテーブル定義の変更は、サービス影響の有無が分かりにくいため、自分の考えた手順で合っているのか不安を感じるのも分かります。
クラウドベンダーがサポートするのはデータベースサーバーそのものだけであり、データベース内で動かす内容までは面倒を見てくれません。 そこにデータベースエンジニアの役割が残っていると感じます。

DBA の A が、Administrator から Adviser に変化してきたって所でしょうか。

DMM ではデータベース管理の全てを開発チームが行っていますが、組織によってはセキュリティ上、重要なところは DBA チームが管理するという形態もよくあります。ガバナンスを重視するか、独立性を重視するかの違いではないかと思います。

今後は何が原因でどんな仕事が無くなりそうか

ご察しの通り、AI が要因で運用周りの業務は大部分が無くなりそうな雰囲気です。
クラウド化で無くなった業務も、現状はまだスマートさに欠けており、完全にクラウド任せにはできていません。ですが、人間が今までデータから推論して実施してきたことは、どんどん AI が学習して代替してくれるでしょう。

自分の仕事が無くなることに対して感じていること

仕事が無くなる不安よりも、無くなって良かったって思いの方が強いです。
技術の進歩で無くなっていく仕事は、無くなるべき仕事だと思っています。

というのも、その仕事に取られていた時間で別のことができるようになりました。
ソフトウェアエンジニアであること自体は変わらないので、別の仕事をやるだけです。
技術の進歩は、新しいチャンスへの扉でもあると感じています。

データベースエンジニアという職種自体が無くなる日もいつかやってくるでしょう。

それは、やっとデータベースが誰にでも扱えるレベルに到達したという意味になります。 無限にスケールして、自律的に動いて、ダウンタイムが無く、あらゆるクエリが瞬時に返ってくる、しかも低コストな。そんなサービスのある世界の到来を夢見ています。

技術の進歩は、終わりではなく新しい始まりです。データベースエンジニアという職種がなくなる日は、私たちが新しい技術を用いて別の役割を担う日でもあります。変化に順応し続けることで、未来のITを支える存在でありたいと考えています。

技術の進化に対する不安よりも、変化を受け入れ、適応していく力がこれからのエンジニアには求められます。自らのスキルを磨き、新しい可能性を追求する旅を一緒に楽しみましょう!

さいごに

DMMグループでは、一緒に働いてくれる仲間を募集しています!
ご興味のある方は、ぜひ下記の募集ページをご確認ください!

dmm-corp.com