## プロジェクト概要
複数のBtoB SaaSを運営する事業会社で、数十のAWSアカウントを横断するSRE基盤の設計・運用をリードしています。インフラを数十のCDKプロジェクト・運用マイクロサービスとしてIaC管理する体制を構築しました。加えて生成AI(Amazon Bedrock等)を運用パイプラインそのものに組み込み、「SREが手作業でやっていた業務をシステムに置き換える」ことに一貫して取り組んでいます。
## 役割・体制
- SREグループのマネージャー兼プレイヤー(自身含め7名のグループ)
- 全社体制:アプリケーションエンジニア約40名
- 責任範囲:インフラ設計・運用、可用性、セキュリティ、コスト最適化、権限管理、チームの採用・育成
## 背景・課題
サービスとAWSアカウントが増え続ける一方でSREは増員できず、アカウント数に比例して増える運用負荷(監視設定・権限管理・脆弱性対応)がスケールしないという構造的な問題を抱えていました。
- 数十アカウント × 複数サービスの監視設定が手作業で、追加・削除のたびに設定ドリフトが発生
- プロジェクトごとにデプロイ手順もリソース命名も異なり、属人化とヒューマンエラーの温床になっていた
- セキュリティ検知は日次の手動トリアージ依存で、対応リードタイムが長期化
- 100名超のSSO権限管理を手作業で行っており、都度都度の権限変更依頼が頻発
「人を増やして捌く」のではなく、運用そのものをコード化・自動化して線形増加を断ち切る方針を立て、以下を推進しました。
## 実際の取り組み
### 1. インフラのIaC集約とデプロイ作業の統一
- 分散していたインフラコードをモノレポに集約し、AWS CDK(TypeScript)へ統一。現在は数十のCDKプロジェクトを単一リポジトリで管理しています
- 全CDKプロジェクト共通の対話型デプロイCLI(Python製)を自作。差分確認 → チェンジセット作成 → 承認後に実行というガードレールを標準化し、プロジェクトごとにバラバラだったデプロイ手順を一本化しました
- pre-commit フックによる静的解析・フォーマットチェックを整備し、規約違反をレビュー前に機械的に排除しました
### 2. 共通監視基盤のマルチアカウント展開
- CloudWatch アラーム・SNS・Slack連携を共通CDKスタックとして実装し、数十アカウントへ一括展開しました
- 監視項目をアカウント単位でフラグ制御(本番/非本番、夜間停止の有無、監視対象サービスの要否)できる設計にし、1アカウント追加=設定ファイル数行の追記で監視が揃う状態にしました
- 「対象外になったアラームの自動削除」「展開失敗時の通知」まで実装し、設定ドリフトが起きない状態を維持しています
- CloudWatch Synthetics による外形監視を主要サービス全体へ展開し、内部監視より先にユーザー影響を検知できる体制を構築しました
- 夜間停止する環境では停止時間帯のアラームを自動的に無効化する仕組みを組み込み、意味のないアラート通知をゼロにしました
### 3. 生成AIを組み込んだ運用自動化基盤の内製
単発の「AI活用」ではなく、SREの定常業務そのものをAIエージェントに委譲する仕組みを複数構築しました。
- Slack起点のAIコーディングBot(内製):Slackメンションで AWS Lambda 上の Claude Code を起動し、自然言語の依頼からコード実装・レビュー・PR作成までを完結させます。エラー監視SaaSとの連携も組み込み、「エラーの原因を調べて直して」までSlack上で完結できる状態にしました
- コンテナ脆弱性の自動修正パイプライン:Amazon Inspector がコンテナイメージの脆弱性を検知すると、EventBridge → SQS → Lambda(Dockerコンテナ)→ Bedrock 上の生成AIエージェントが修正PRを自動作成し、課題管理システムへのチケット起票まで行います。20以上のリポジトリを対象に「検知 → 修正PR」を無人化しました
- セキュリティ検知対応の全自動パイプライン:Security Hub の新規検知を定期取得し「1コントロール = 1チケット」で自動起票(重複防止つき)→ チームでの要否判定 → 対象リポジトリへ draft PR を自動生成 → PRマージを Webhook で検知して該当 Finding を自動クローズ、という流れを構築。管理対象アカウント全体について、起票からクローズまでを一本のパイプラインに閉じました
- SBOM横断検索基盤:GitHub Dependency Graph と Amazon Inspector の SBOM を日次で収集し、Glue で正規化・Parquet化して Athena から全社横断でクエリできるようにしました。Log4shell 級のライブラリ脆弱性が出た際の影響範囲調査をSQL一発にしました
- なぜ内製したか:既製の脆弱性管理ツールは自社のアカウント構成・課題管理・モノレポ構造に噛み合わず、「検知して通知する」で止まってしまうためです。修正PRの生成とチケットのクローズまで含めて閉じたかったので、生成AIエージェントを実行基盤の一部として組み込む構成を選択しました
### 4. 権限管理の自動化・効率化
- 100名超のユーザーと数十のグループ・権限セットからなる IAM Identity Center 構成を全面的にCDKでコード化し、権限変更をPRレビューの対象にしました
- 権限の付け替えに関して依頼が来るとPR作成までを自動で行う仕組みを構築しました
- Admin権限を常時保有させず、申請・承認を起点に時限付きで払い出すフローを構築し、恒久的なAdmin権限保有者をゼロにしました
- 本番データベースへのアクセスも同様の承認ワークフローに載せ替えました
### 5. コスト最適化
- 社内リソースの棚卸しとReserved Instance / Savings Plansの検討・導入
- 未使用の開発環境をSlackから容易に停止/再開可能とする仕組みを構築し、開発環境コストを約半分程度削減しました
- 開発環境のコンテナサービスを対象とした夜間・休日の自動停止基盤を構築し、非稼働時間帯のコンピュートコストを削減しました(停止中はアラームも連動して無効化)
- コンテナのメモリ予約値やインスタンスタイプを実測ベースで環境ごとに調整しました
- 無料利用枠の使用状況監視、コスト比較レポートの自動生成を実装し、月次コストレビューを定例化しました
- 結果:AWS月額コストを数千万円単位で削減
### 6. 開発生産性・信頼性向上の取り組み
- レビュー依頼と GitHub の PR イベントを紐づけ、レビュー状況を Slack スレッドへ自動通知する仕組みを構築し、レビュー待ちの放置を可視化しました
- CDN のキャッシュキー設計を見直し、動的レスポンスのキャッシュ起因の不具合を解消しました
- 依存ランタイムのEOL検出、クラウド側メンテナンスイベントの自動チェックなど、「気づけなかったら事故になる」領域を機械化しました
- 迅速な認知、対応が求められる昨今のサプライチェーン攻撃に関して、人依存となっていた情報収集をAIで日次調査、通知を行う仕組みを構築しました
### 7. チームマネジメント
- SREメンバー6名のマネジメント(採用・1on1・評価・育成・タスク管理)を担っています
- 年次の障害対応訓練を企画・運営しています。模擬的な管理コンソール画面とログ投入スクリプト、訓練専用環境まで自作し、実際にログを調査してもらう実践形式のシナリオを設計しました
## 成果
| 指標 | Before | After |
| --- | --- | --- |
| 監視基盤の展開 | アカウントごとに個別設定・ドリフトあり | 数十アカウントへコードで一括展開 |
| 外形監視 | 未整備 | 主要サービス全体をカバー |
| 脆弱性検知 → 修正PR | 全て手動 | 20以上のリポジトリで自動生成 |
| セキュリティ検知対応 | 日次の手動トリアージ | 起票〜クローズまで自動化 |
| ライブラリ脆弱性の影響調査 | リポジトリを個別確認 | 全社横断でSQL一発 |
| 恒久Admin権限保有者 | 常時保有あり | 0名(時限払い出しに移行) |
| 退職者の権限削除 | 手動・漏れリスクあり | 検知から削除・IaC修正PRまで自動 |
| IaC管理下のプロジェクト | 分散・手順もバラバラ | 数十プロジェクトを統一管理 |
| AWS月額コスト | — | 数千万円単位での削減 |
## この経験から提供できる価値
- 「アカウントやサービスが増えても運用工数が増えない仕組み」をゼロから設計・実装できます。マルチアカウント環境のガバナンス、監視・セキュリティ・権限管理の標準化を、ドキュメントではなくコードとして展開してきました
- 生成AIを「便利ツール」ではなく本番運用パイプラインの構成要素として組み込んだ実績があります。Bedrock上でAIエージェントを動かし、脆弱性修正PRの生成やセキュリティ検知対応を無人化するところまで実装・運用しています
- プレイヤーとマネージャーを兼任してきたため、手を動かしながらチームを立ち上げられます。少人数のSREチームで「何を自動化し、何を捨てるか」の優先順位づけが最も得意とするところです