『Envoy 高度設定』で本番運用を最適化
Envoy は基本設定だけでも強力だが、WASM Filter・Rate Limit・Circuit Breaker 等の高度機能で真価を発揮します。本記事では編集部の視点で、実務での活用を公開情報をもとに整理します。Envoy Proxy 実践 もご参考に。
WASM Filter
(1) Rust/AssemblyScript で書ける。(2) カスタムロジックを Envoy に注入。(3) 動的更新:再起動不要。(4) sandbox 実行:安全性。(5) 商用フィルタも配布可能。WebAssembly 実践 もご参考に。
Global Rate Limit
(1) RLS (Rate Limit Service):別サーバー。(2) Redis ベース。(3) descriptor:ルール定義。(4) 分散環境でも一貫。(5) 動的更新。API レート制限 もご参考に。
Circuit Breaker
(1) max_connections:上流接続上限。(2) max_pending_requests。(3) max_requests。(4) max_retries。(5) 障害伝播防止。
Outlier Detection
(1) 異常エンドポイント自動隔離。(2) 5xx 連続で eject。(3) 段階的復帰。(4) レイテンシ閾値。(5) health check 連動。
Retry Policy
(1) retry_on:条件指定。(2) num_retries。(3) exponential backoff。(4) per_try_timeout。(5) retry budget:全体上限。冪等性設計 もご参考に。
Hot Restart
(1) 無停止での Envoy 更新。(2) 2 プロセス間で接続移行。(3) 新しい設定の検証。(4) ロールバック容易。(5) 本番運用必須。
監視と統計
(1) admin endpoint:/stats。(2) Prometheus エクスポート。(3) Datadog 統合。(4) access log カスタマイズ。(5) 分散トレーシング。Observability 実践 もご参考に。
失敗しがちなパターン
(1) 設定ミス:YAML 複雑。(2) WASM Filter のメモリリーク。(3) Rate Limit が単一障害点。(4) Circuit Breaker 過剰:正常リクエスト遮断。(5) 監視不足。対策は、(1)Schema validation、(2)WASM テスト、(3)RLS HA、(4)観察+調整、(5)stats 自動取得、です。