Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AI Agent SaaS を支える自社仮想化基盤への挑戦と実運用 / ai-agent-...

AI Agent SaaS を支える自社仮想化基盤への挑戦と実運用 / ai-agent-saas-virtualization

Avatar for GMO Flatt Security

GMO Flatt Security

July 11, 2026

More Decks by GMO Flatt Security

Other Decks in Technology

Transcript

  1. $ whoami OJI (@OldBigBuddha) SWE @ GMO Flatt Security Inc.

    社内用仮想化基盤 “Sunaba(すなば)” を作ってます 未踏 ‘26 クリエータ seccamp ‘23 修了 © 2025 GMO Flatt Security Inc. All Rights Reserved.
  2. 目次 会社紹介 / Takumi とは AI Agent SaaS とは AI

    Agent SaaS に求められる実行基盤 Flatt 内製仮想化基盤「Sunaba(すなば)」 アーキテクチャ・技術のお話 監視について デプロイメントについて © 2025 GMO Flatt Security Inc. All Rights Reserved.
  3. AI Agent “の” SaaS 開発者的には Devin が一番想像しやすい プロンプトを投げたらオンラインでかガチャガチャ処理してくれるヤツ AI Agent

    を SaaS として提供するには気にすることが沢山 LLM の提供側が不安定なときにどうする?? 複数の model をタスクごとに切り分けたい場合はどうする? AI が使う knowledge はどこに置く? そもそも AI Agent をどこで実行する? 今回は AI Agent の実行基盤にフォーカスしてお話します © 2025 GMO Flatt Security Inc. All Rights Reserved.
  4. 過去: K8s を使って顧客ごとの Pod を常設していた メリット 既存の K8s の上で動く K8s

    という成熟したエコシステムに身を委ねられる デメリット 1顧客に対して常時 1 Pod 以上が起動するため、
 顧客の利用状況に関わらず費用が発生する コンテナでは隔離が不十分 © 2025 GMO Flatt Security Inc. All Rights Reserved.
  5. Takumi においてコンテナ分離では何が不十分だったか 将来的にはツールとしてコンテナ(Docker)を使いたかった DinD はなるべく避けたい…… kernel panic を起こすとその Pod が動いている

    Node ごとダウンする コンテナエスケープも怖い (とはいえVMでもエスケープも発生しえるので、銀の弾丸はない) © 2025 GMO Flatt Security Inc. All Rights Reserved.
  6. Takumi においてコンテナ分離では何が不十分だったか 任意コード実行を許容するとコンテナエスケープの可能性がある kernel panic を起こすとその Pod が動いている host ごとダウンする

    ホワイトボックス診断だけ(実装を読むだけ)のときはこの形式で耐えた ブラックボックス診断など任意コード実行が伴うサービスの提供には適さない © 2025 GMO Flatt Security Inc. All Rights Reserved.
  7. なので “Sunaba(すなば)” をフルスクラッチで作った Flatt 内製のKVMベースの仮想化基盤 任意のタイミングで任意の数の VM を動かせる もちろん削除も任意のタイミング VM

    の起動はリクエストを投げてから約 5秒 ピーク時は週次で約 100万 VMs を捌ける 開発期間は3〜4か月、移行含めて約半年 現在は Takumi の AI Agent 機能がすべて
 Sunaba 上で走っています © 2025 GMO Flatt Security Inc. All Rights Reserved.
  8. トピック 1: Firecracker を採用 AWS が OSS で開発している KVM ベースのハイパーバイザー

    語弊100%で雑に紹介すると超軽量な QEMU AWS Lambda のバックエンドで使われている 最近は Lambda MicroVM を提供しているのは
 Lambda の裏がもともと VM だった+VM隔離の需要が
 増えたからだと予想している © 2025 GMO Flatt Security Inc. All Rights Reserved.
  9. トピック 1: Firecracker を採用 国内で Firecracker の採用事例が今のところ公開情報では無さそう 良かった点 VM の起動が爆速

    思想からスリムなのでセキュリティの観点的にありがたい 辛い点 先行事例がないので常に試行錯誤 VM だけど Live migration がない ※firecracker は Live migration を必要とする長命VMの運用を前提としていないため © 2025 GMO Flatt Security Inc. All Rights Reserved.
  10. トピック 2: CoW(Copy-on-Write)で VM ごとの容量を削減&起動高速化 Read-Only の部分は VM 間で共有できる =>

    容量削減 Read-Only の部分は file copy ではなく symbolic link => file copy と比較して爆速 = VM の起動が高速 © 2025 GMO Flatt Security Inc. All Rights Reserved.
  11. トピック 3: auto scale 「Sunaba 全体であと何台 VM を生成できるか?」を閾値として自動でスケール in/out 共に

    完全自動化 リクエストが全然ない ときはnode を減らして 維持費削減 リクエストが多いときは node を増やしてなるべく 枯渇しないように リクエストが多いときは node を増やしてなるべく 枯渇しないように © 2025 GMO Flatt Security Inc. All Rights Reserved.
  12. Sunabaの”期待通り動いている”はどう定義するか 正直試行錯誤中 VM 内で何が起きているかまではトラックできない まずはこれらをSLIとして定義 リクエストに対するリソース不足率 各 VM の起動にかかった時間 +

    error rate とか latency みたいな一般的なもの Sunaba はかなり実験的な基盤なので、SLO は一旦仮ぎめ程度 リソース不足はインスタンスの起動時間x2まで許容する VM の起動時間の目標時間は作るVMに依存よるので一律定義が難航…… ここらへんは今後の課題 © 2025 GMO Flatt Security Inc. All Rights Reserved.
  13. Sunaba のデプロイメント Sunaba は VM という stateful なものを持っている => 旧バージョンのインスタンスを即削除はできない

    (すべてのAI Agent が停止していることを担保しなくてはいけない) Sunabaは基盤なのでリリース時のダウンタイムを許容できない => 少しでも異常があればまずは動く状態に戻すことを優先する 内製なので ArgoCD なんて便利なものは存在しない => 自分たちでデプロイ手順を設計し、その上で自動化を行う © 2025 GMO Flatt Security Inc. All Rights Reserved.
  14. VMPool の Drain 削除したいインスタンスには VM を新規で作らない B/Gデプロイメント完了後、スケールインのとき kubectl drain と動きはほぼ一緒

    何台動いているか?は インスタンス(VMPool)が自己申告 VM が0台かつ Drain 状態のときに始めて削除が走る 当然この機構も自作 © 2025 GMO Flatt Security Inc. All Rights Reserved.