先日のCrowdStrike騒動をきっかけに、「エージェント vs エージェントレス」という長年の議論が再び熱を帯びています。この論争は、ピザにパイナップルを乗せるか否かの議論によく似ています。誰もが強い意見を持っていますが、正解は好み次第——この場合はニーズ次第なのです。
私を知る方ならご存じの通り、私は「すべて良し」「すべて悪し」といった二元論を取りません。物事はトレードオフの連続であり、大切なのは何をするか(WHAT)だけでなく、どうやるか(HOW)であることが少なくないのです。
これはエージェント vs エージェントレスの議論にもそのまま当てはまります。「エージェントレスなら常に安心」と考えているなら、多くのメリットを取りこぼしていることになります。特にモニタリング、オブザーバビリティ、そしてFinOpsの領域では顕著です。エージェントレスを選ぶことで手放すことになる利点をいくつか挙げてみましょう。
- 詳細で粒度の高い使用状況メトリクス: エージェントは、システムのパフォーマンス、アプリケーション、プロセスに関する詳細なインサイトを提供します。
- リアルタイム性: エージェントを導入すれば、リアルタイムのモニタリングと即時のインサイトが得られ、問題の早期検知と対応に欠かせません。
- セキュリティの強化: エージェントはデータの発生源で暗号化を行えるため、安全な転送を実現できます。
- 効率性: エージェントはデータをローカルでフィルタリング・処理し、必要な情報だけをバックエンドに送信できます。
- 信頼性: ネットワークやリモート接続への依存という重大な前提を排除できるため、ネットワーク障害時でもデータ収集を継続できます。
ここまでが「WHAT」の話です。私はこれだけのメリットを簡単に手放すつもりはありません。そこで次は「HOW」に目を向け、次のCrowdStrike級の事象を避けるためにエージェントとどう付き合うべきか、そのベストプラクティスを見ていきましょう。

エージェントが何をしているのか、どう動くのかを理解する
エージェントは一様ではありません。リソース消費(全体のキャパシティ、パフォーマンス、コストに影響しうる要素)の面でも、実際に行う処理の面でも、より侵襲性の高いものがあります。まずは、そのエージェントが依拠する技術と挙動をきちんと理解する時間を取りましょう。
たとえばeBPFベースのエージェントは比較的安全とされています。カーネル内のサンドボックス環境で動作し、ロード前にverifierによるチェックを受け、限定的かつ明確に定義された命令セットしか使えないなど、複数のガードレールが備わっているためです。加えて、この技術を積極的にメンテナンス・監査する強力で活発なコミュニティが存在することも安心材料です。
デプロイ戦略
- 段階的アプローチ: エージェントは段階的に展開しましょう。まず非クリティカルなシステムから始め、徐々に全体へと広げていきます。この考え方は初回導入だけでなく、バージョンアップの際にも当てはまります。
- タイミング: デプロイのプロセスに振り回されるのではなく、自らコントロールしましょう。自動更新は避けるべきです。想定外のトラブルは、たいてい最悪のタイミング(何週間も準備してきた大事なデモの最中など)に起こるものです。
ガードレールを必ず設ける
- リソースの制限: エージェントが消費できるリソース量に上限を設け、実行優先度もコントロールしましょう。これにより、重要なサービスのリソースがエージェントに食い潰される事態を防げます。
結論として、エージェントレスにも活躍の場はありますが、エージェントが提供する詳細さ、リアルタイム性、セキュリティ、効率性、信頼性まで代替できるわけではありません。エージェントの挙動を理解し、戦略的にデプロイし、適切なガードレールを設ければ、想定外のトラブルに足をすくわれることなく、その真価を引き出せます。
肝心なのは、エージェントかエージェントレスかという選択そのものではなく、選んだ道をどう実装するかです。正しいアプローチさえあれば、余計な騒動を招くことなく両方の良いところを享受できます。ちなみに私は、ペパロニもパイナップルのピザも大好物です!