## #プロジェクト経験概要
データベースのCPU高騰・スロークエリ課題に対し、原因調査からクエリ/インデックス最適化を一気通貫で主導してインフラコスト削減を実現。さらに、改修に伴い必要となった大規模テーブル変更のための深夜メンテナンスにおいて、手順のmake/Runbook化と作業自動化を完遂したプロジェクト。
## #チーム情報
* 役割:インフラ・バックエンドエンジニア(課題特定からメンテ主導まで担当)
* チーム構成:開発2名
## #取組内容1:AWS Auroraのスロークエリ分析およびデータベースパフォーマンス最適化
### 【概要】
スロークエリの徹底分析、複合インデックス設計、およびアプリケーション層の改修によるデータベース負荷の劇的低減とインフラコスト削減
### 【どのような機能の開発・実装か】
クエリ改修、最適な複合インデックスの設計・適用、不要なデータロード処理のリファクタリング。
### 【課題・問題点】
データベースのCPU高騰エラーが頻発しており、特定の画面等でUXに関わるほどレスポンスが極めて重く(最大34秒)、UXを著しく損なっていた。また、スパイク的な負荷に伴いサーバー(またはDB)が頻繁にオートスケールし、無駄なクラウドインフラ費用が発生し続けていることも課題であった。
### 【打ち手・使用した技術】
* AWS Performance Insightsやクエリログを徹底解析し、ボトルネックとなっているスロークエリおよび原因箇所を特定。
* アプリケーション側の不要データ取得処理を削減するとともに、データアクセスパターンに合わせた最適な複合インデックスを追加・検証。
* 使用技術・ツール:AWS Aurora (MySQL), PHP, CakePHP, Performance Insights, Redash, Docker
### 【成果】
* 特定画面のレスポンスを **34sec から 177ms へ劇的に短縮(99.4%削減)**。
* その他重かった主要クエリを数十ms〜数百ms単位へ改善(例: 7.26sec → 222ms [96.9%削減]、240ms → 47ms [80.4%削減])。
* データベースのCPU高騰を抑え込んだことで過剰なオートスケールを防止し、**クラウド利用費用(インフラコスト)の削減**を実現。
* システム全体の安定運用と快適なUXを両立させた。
## #取組内容2:深夜メンテナンスの主導およびリリース手順の標準化・自動化
### 【概要】
大規模テーブル変更に伴う深夜メンテナンスの主導、Make/Runbook化による作業標準化およびオペレーションの自動化
### 【どのような機能の開発・実装か】
スロークエリ改善に伴うDB構造変更やメンテナンス作業において、コマンド一発で実行可能な Makefile / 詳細手順書(Runbook)の作成、およびGitHub Actionsを活用したメンテナンス作業の自動ワークフロー構築。
### 【課題・問題点】
取組1のスロークエリ改修の過程で大規模テーブルの変更が必要となり、安全な適用のために深夜メンテナンスの実施が必要となった。しかし、当時のメンテ・リリース手順は手動かつ特定個人に属人化しており、オペレーション負荷とリリースミスのリスクが非常に高かった。
### 【打ち手・使用した技術】
* 事前に緻密なRunbookを作成し、複雑な実行コマンドやメンテナンス切り替え処理を make 化して作業を標準化・簡略化。
* 実行プロセスを makeファイル 等で自動化し、インフラ知識が浅いメンバーでも安全かつ確実に実行できる体制を構築。
* 使用技術・ツール:AWS, GitHub Actions, Makefile, Docker
### 【成果】
* 深夜メンテナンス当日のトラブルゼロを達成し、予定より1時間前倒しで作業を完了。
* 属人化を排除し、誰でも安全に作業を実行できる体制を確立。社内共有セッションを通じてチーム全体にノウハウを展開した。