HARUMI
戻る

2026 / 03

Camunda 8.8 フルスタックの運用

Home lab infrastructure個人運用——調査と実装

成果接続の再利用が原因であり接続の古さではないと特定し、調整を積み増すのではなく、検証されていなかったポリシーそのものを撤去しました。

概要

Camunda 8 の全構成(Zeebe、Operate、Tasklist、Optimize、Web Modeler、Keycloak)を単一の公開ドメインの背後で運用し、実は逆効果だった「接続処理の修正」を診断・撤回した記録。

背景

14 個の単一レプリカサービスへ接続ポリシーを追加した後、外部アクセスが遅く感じられるようになりました。

システム

778REQUESTS
697CONNECTIONS

Tasklist182 requests / 88 connections

commonHttpProtocolOptions.maxRequestsPerConnection: 1

問題は、追加した「修正」だった。

The fix was the problem.

Evidence over guesswork.

課題

「外部アクセスが重い」という報告を追跡した結果、数週間前に未確認のまま追加されていた接続再利用ポリシーに行き着きました。14 個のバックエンドサービスに対し、接続数とリクエスト数がほぼ 1:1 になるよう強制していたのです。

調査

最初の仮説

毎回新しい接続を作れば古い経路を避け、外部アクセスが改善すると考えました。

当初の判断根拠を鵜呑みにせず、Envoy の /clusters 統計で実際の効果を直接検証しました。「修正済み」サービスは 778 リクエストに対し 697 接続、比較対象の除外サービスは通常の接続再利用で 88 接続に対し 182 リクエストという結果に。対象の 14 サービスはすべて単一レプリカだったため、そもそもリクエストごとに新規接続を強制するロードバランシング上の根拠は存在しませんでした。

証拠

commonHttpProtocolOptions:
  maxRequestsPerConnection: 1

Envoy の実測は 778 リクエストに 697 接続。Tasklist は 182 リクエストを 88 接続で再利用していました。

退けた修正

リクエストごとに新しい接続を強制する設定(maxRequestsPerConnection: 1)は確かに障害パターンを消しましたが、実測すると接続の再利用そのものを壊すことで消していました——778 リクエストに対し 697 接続、一方 Tasklist は 182 リクエストを 88 接続で処理。修正は誤った理由で効いており、その代償は 14 サービスにまたがる不要な接続の作り直しでした。

判断

追加調整を重ねず、検証されていなかったポリシーを撤去しました。

結果

再調整ではなく完全に撤去。判断根拠と Envoy の証拠を記録に残すことで、同じ「未確認の判断」が知らぬ間に再導入されないようにしました。

次に変えること

現在の制約: これはこのクラスターで得た運用上の証拠であり、一般化できる性能ベンチマークではありません。

次の一手: 今後の経路変更に備え、Envoy 統計を再現可能な形で採取します。

関連する記録

778 リクエストに 697 接続

技術構成

Camunda 8.8 · Zeebe · Keycloak · Elasticsearch · Envoy / kgateway

次のプロジェクト

このラボ全体を支えるクラスターの運用