期間: 2025年4月〜現在(現場に約1年常駐)
カテゴリ: 自社プロダクト
担当工程: 要件定義 / 設計 / コーディング / テスト / 運用・保守
職種・役割: インフラエンジニア(DevOps/FinOps推進)
■ チーム情報・役割
- **体制**: 7名(課長1名、インフラ5名、事務1名)
- **役割**: 自動化・コスト最適化を**1人で主導**。課題特定から設計・実装・保守まで一気通貫で担当。
■ 基盤環境
- **インフラ**: ハイブリッド(オンプレ約200台 + AWS EC2約600台 + GCP)
- **プロダクト**: 広告配信システム(DSP)
---
### 開発・実装内容A: 監視基盤刷新(VictoriaMetrics)
**【概要】Prometheusとの2重構成を解消し、単一基盤へリプレース。サーバー18台削減、年間約450万円を削減。**
- **課題**: 前任者の離職により2重管理が常態化。リソース限界で手動の閾値・容量調整が頻発。
- **打ち手**:
- VictoriaMetrics単一構成への移行を設計・主導(SaaSではなくコスト面からOSSを選択)。
- 不要ラベルのドロップによる**カーディナリティ最適化**を施し、ストレージ効率を大幅改善。
- Bitbucket Pipeline ➔ AWX APIによる**PRベースの自動デプロイ(CI/CD)**を構築。
- 監視対象管理を`dnsmasq`へ移行し、**煩雑なhostsファイル手動更新運用を完全撲滅**。
- **成果**:
- **インフラ削減**: AWS EC2(t4g.xlarge)18台を削減、**年間約450万円のコストカット**。
- **運用工数半減**: 2重管理の解消、手動運用(hosts更新/閾値調整)からの脱却で保守工数を劇的削減。
【使用技術】 VictoriaMetrics, Prometheus, Grafana, AWS EC2, Bitbucket Pipeline, AWX API, systemd
---
### 開発・実装内容B: ログ基盤刷新・トレース導入(VictoriaLogs / Traces)
**【概要】ELK StackからVictoriaLogsへ移行。同基盤にトレースも同居させ、可観測性3本柱を1製品群に統合。**
- **課題**: 旧ELK(x86 3台)が不均一・いびつな構成で稼働。Elasticsearch独自APIによる運用が煩雑。
- **打ち手**:
- VictoriaLogsへの移行および、**ARM 2台の対称クラスタリング構成**を設計。
- 同一基盤にVictoriaTracesを同居させ、**OpenTelemetry互換のトレース収集基盤**を構築。
- チームの認知負荷(K8s経験不足)を考慮し、あえて安定した**systemdネイティブ実装**を選択。
- **成果**:
- **リソース効率化**: x86➔ARM移行とVictoriaの省電力性能により、インフラコストとJVM管理負荷を削減。
- **相関分析の実現**: メトリクス・ログ・トレースの**横断クエリ環境**をGrafana上で実現。
- **SLO計測の土台構築**: トレース活用により、**Datadog APM相当のSLOをOSS中心で計測可能**に。
【使用技術】 VictoriaLogs, VictoriaTraces, OpenTelemetry, Grafana, systemd, ARM, ELB, Ansible
---
### 開発・実装内容C: AWX GitOps基盤構築(K3s + Argo CD)
**【概要】AWX 17(docker-compose)の最新化。K3s + Kustomize + Argo CDによるGitOps基盤へ刷新。**
- **課題**: アーキテクチャ変更の難易度が高く**半年間停滞**。Redisが不安定でジョブ失敗・手動再実行が常態化。
- **打ち手**:
- K3s + Kustomize + Argo CD構成を設計。**1日で全環境のコードベースを確立**し検証完了。
- 「**Gitのタグ書き換え ➔ push**」のみでバージョンアップが完結する宣言的運用を構築。
- DevContainer導入による開発環境の標準化、Ansible-lintによる自動品質チェックを整備。
- **成果**:
- **ジョブ成功率の劇的向上**: Redisの挙動を安定化させ、突発的なジョブ失敗と手動再実行の手間を撲滅。
- **プロジェクトの膠着打破**: 停滞タスクを解消し、**1環境あたり半日で再現・構築可能**な状態へ。
- **ガバナンス強化**: ブラックボックス化していた設定をGit管理下に置き、属人化とリスクを排除。
【使用技術】 AWX, K3s, Argo CD, Kustomize, DevContainer, Ansible-lint, zRAM, External Secrets Operator
---
### 開発・実装内容D: Jenkins刷新・共通コード化(7チーム展開)
**【概要】CentOS EOLに伴うJenkinsOS刷新とバージョンアップ。Ansible Role化し7チームへ水平展開。**
- **課題**: 旧OSのままでは最新ランタイム(Node.js等)が導入不可。7チームが個別管理しており手動移行は事故リスク大。
- **打ち手**:
- 互換性の高いOracle Linux 9を選定。各チームの構成差分を変数(variables)で吸収する**共通Ansible Roleを設計**。
- 手順をパッケージ化し、開発側が隙間時間で移行できる**「セルフサービス型」の移行体験**を確立。
- **成果**:
- **安全な同時並行移行**: 共通コード化で環境差分リスクを排除。**1チームあたり実質1時間、事故ゼロ**で完結。
- **生産性向上**: 開発全体の最新ランタイム導入を可能にし、ビルド・テスト環境のモダン化に寄与。
- **プラットフォーム化**: インフラ側が抱え込まず、開発チームが自律運用できる仕組み(委譲)を実現。
【使用技術】 Jenkins, Ansible, Oracle Linux 9, JDK
---
### 開発・実装内容E: MFAサーバ構築(Go製RADIUSサーバ開発)
**【概要】全社socks5プロキシへのMFA(MailOTP)導入。要件を満たすため、GoでRADIUSサーバを独自開発。**
- **課題**: プロキシがLDAP単一認証でセキュリティに懸念。既存OSS(FreeRADIUS等)は相性問題で検証が難航。
- **打ち手**:
- 導入負荷の低い「privacyIDEA(MailOTP)」を選定。構成をシンプルにするため、**Go言語でRADIUSサーバーをフルスクラッチ開発**。
- 自作したサーバーを別プロジェクト(可観測性基盤)のテストベンチとして扱い、分散トレース設計等も同時に検証。
- **成果**:
- **セキュリティガバナンス強化**: 全社100名強が利用する基盤へのMFA導入を完了。
- **スピード構築**: 既存OSSの泥沼を回避し、自作を選択したことで**極めて軽量・シンプルな認証プロキシを短期間で実現**。
【使用技術】 privacyIDEA, Go, RADIUS, LDAP, OpenLDAP, IPA/Kerberos, systemd
---
### 開発・実装内容F: Grafana 8➔13 段階的アップグレード
**【概要】数百台規模のGrafanaモニターインスタンスの段階的移行、およびGitOps管理への刷新。**
- **課題**: リソース不足で長年放置され技術負債化。Legacy Alerting廃止等の影響で一足飛びの移行が不可。
- **打ち手**:
- 安全性を担保した**段階的マイグレーション戦略(8 ➔ 10.4 ➔ 13)**の計画・Playbookを策定。
- **Grafana Git Syncを導入**。ダッシュボード管理をすべてGitベース(GitOps)に変更。
- 詳細な検証・展開プランを整備した上で、スキルアップを目的としてプロパー社員へ実務を委譲。
- **成果**:
- **変更管理の近代化**: 「誰が・いつ・何を」の変更可視化と、**Git操作による即時ロールバック体制**を確立。
- **チームの自走化貢献**: 設計・手順をお膳立てして委譲したことで、プロパー社員のスキル底上げを牽引。
【使用技術】 Grafana, Ansible, Oracle Linux 9, ARM, Git Sync
---
■ 技術スタック(まとめ)
AWS, GCP, Go, Terraform, Ansible, VictoriaMetrics, VictoriaLogs, VictoriaTraces, Datadog, Prometheus, Grafana, K3s, Argo CD, Kustomize, Helm, AWX, Jenkins, privacyIDEA, LDAP, ECS Fargate, ElastiCache, DevContainer, OpenTelemetry, Bitbucket Pipeline, GitHub Actions