プロジェクトの基盤チームにてCICDの第一歩である、ビルドのサーバレス化に取り組みました!
現状・課題
複数のチームがmasterブランチから派生して別々のブランチを切り、最後にマージして一つのアプリケーションを作っていく構成となっていた。
各チーム(ブランチ)ごとに環境を作成しており、各環境にECR、EKS等のアプリケーションに必要な構成をデプロイ。ビルドサーバは単一のEC2(Linux)サーバを利用していました。
ビルドサーバのメモリ上限によって、別チームのビルドが終わらない限り他のチームのビルドを実施することができず、困っていたのが当時の状況です。
打ち手
①拡張性:単一のCodeBuildを構築。AWS CLIで引数に環境識別子を必須入力とし、環境ごとに動的にECRへプッシュする向き先を変更可能にしました。
②セキュリティ:SecretsManagerを活用し秘密情報をセキュアに保持し、IAMサービスロールを利用して最小限の権限設計を行いました。
③運用保守性:CloudWatchからDynatraceへリアルタイムログ転送を設定。開発者のトラブルシュートを容易にしました。
結果
開発者は他チームを意識せずビルドが実施可能となり、また1時間のビルド時間を半分に短縮することに成功。
開発効率を大幅に向上することができました!