AIを使用し、開発環境をスクラップ&ビルドで大幅刷新!チーム全体の開発生産性を劇的に向上させた取り組み – YOUTRUST Tech Blog

こんにちは!SREに転生して一年が過ぎた墨です!

YOUTRUST
/ X

今回は弊社の開発環境(Dev環境)を根本から見直し、チーム全体の開発生産性向上とコスト最適化を実現した取り組みをご紹介します。

現状分析:レガシーなインフラ運用の限界

弊社のインフラ環境

まず、弊社の環境構成を整理します。今回見直しを行ったのはDevelopment環境です。

環境 用途 構成
Production ユーザーへサービスを提供する環境 コンテナオーケストレーション: Fargate
DB: RDS
ビルド&デプロイ: CodePipeline
Sandbox インフラ構成が関わる重要機能の検証用 Production同等のインフラ構成
Development ローカル開発後のQA・動作確認用途 全てEC2の単一インスタンス内で管理

課題

変更前の構成を図にまとめると以下のようになります。

旧Dev環境構成図

一見シンプルで問題なさそうに見えますが、長期運用により以下の課題が深刻化していました!

モダンなインフラ設計への転換

これらの課題を根本から解決すべく、以下の設計思想で新環境を構築しました。

新Dev環境構成図

🎯 設計の5つの柱

  • 操作の民主化
    • 専用Webシステムを構築し、非エンジニアでも直感的にデプロイ操作が可能
  • スクラップ&ビルドアーキテクチャ
    • Fargateを採用し、コンテナの都度起動・廃棄でクリーンな環境を担保
    • データ蓄積によるディスク枯渇問題を根本解決
  • 疎結合による拡張性確保
    • DBとコンテナを分離(EC2内包 → RDS外出し)
    • 1対1関係をN対N関係に変更し、複数環境の同時利用を実現
    • 環境変数でDB接続先を動的切り替え
  • レイヤー別完全分離
    • ネットワーク層(ALB、Route53)
    • データ層(RDS、S3、CloudFront)
    • アプリケーション層(Fargate)
    • 各レイヤーの疎結合化により、複数ユーザーが同時利用しても相互影響なし
  • 自動廃棄によるコスト最適化
    • EventBridge + Lambda + DynamoDBの組み合わせで、深夜に自動廃棄フラグが立った環境を自動クリーンアップ
    • Fargateの従量課金モデルと相まって、コスト削減を実現

開発生産性を支える管理ツール

PdMやCSチームなど非エンジニアが日常的に使用することを前提に、直感的なGUI操作が可能なWebシステムを構築しました。

AIを活用した新規開発アプローチ

普段開発業務を行わない私でも、AIを効果的に活用することで、わずか2週間で基本機能を完成させることができました。
以下がその開発フローです。

  1. UI設計の高速化
    • v0を使用し、社内ダッシュボードを30分で作成
  2. 開発ガードレールの整備
    • .cursorまたは.claudeディレクトリに命名規則・コーディング規約を明記
    • AIが一貫した品質でコード生成するための土台作り
  3. 仕様書ベース開発
    • Kiro等の専用エージェントで機能別仕様書を作成
    • 明確な仕様書により、AIへの指示精度が飛躍的に向上
  4. バックエンド開発: 仕様書を元に機能毎に並列開発
    • 仕様書をベースに機能単位で並列開発を実行

🛠️ 実装した主要機能

  • ダッシュボード: 全環境の状況を一目で把握
  • Fargate管理: 起動・廃棄・ブランチ切り替え・スケジュール起動
  • ECSタスク実行: ランタスクの簡単実行
  • リソース管理: DB・CloudFront・S3の複製機能
  • ネットワーク管理: ALB等の設定変更
  • API管理: OpenAPIのRedoclyによる参照・更新機能
    ダッシュボードとFargate管理画面

AI開発の感想

実際に開発し、機能に対してどのように作成するかが頭にないとAIに正確に指示を出すことは難しいと感じました。
事前にライブラリの選定や処理順序などを仕様書に落とし込むと開発スピードが上がると思われます。
また、既存プロダクトの開発にAIを組み込むのはコードベースのリファクタなど事前準備が必要ですが、0から1の新規開発についてはスピードやコード整備についてもAIを最初期から導入した方がよりメリットが多いと実感しました。

まとめ

得られた定量・定性的成果

  • 定量的改善

    • 環境利用率: 従来の9個の環境固定 → 必要に応じて動的スケール(理論上無制限)
    • コスト削減: EC2常時稼働からFargateオンデマンド利用により、深夜・休日自動起動により約60%削減🎉
    • ディスク枯渇等インシデント対応削減: 月1〜2回発生 → ゼロ化(スクラップ&ビルドにより根本解決)
  • 定性的改善

    • 開発者体験の向上: 環境待ち時間の完全解消により、開発フローが中断されない
    • 運用負荷の大幅軽減: 手動での環境変数更新作業が不要に
    • 本番環境との整合性確保: ビルド方式統一により、デプロイ時のエラーリスクを排除

感想

AIの民主化により、今やインフラメインのSREでも短期間で開発ツールの構築が現実的になりました。
開発生産性向上は全社的な競争力に直結します。この機会に、ぜひ上司に「開発生産性を向上させる取り組み」を提案してみてはいかがでしょうか?
技術の力で、チーム全体の生産性を底上げする。これこそが、現代のSREに求められる価値創造の一つだと確信しています。


YOUTRUSTではエンジニアを募集しています!
興味がある方はカジュアル面談からでもOKなのでぜひ✨

herp.careers




Source link

関連記事

コメント

この記事へのコメントはありません。