サイドカーパターン

メインコンテナと同じ Pod に補助コンテナを配置し、横断的関心事を分離する設計パターン

Kubernetes設計パターン

サイドカーパターンとは

サイドカーパターンは、メインのアプリケーションコンテナと同じ Pod に補助コンテナを配置し、ログ収集、監視、プロキシなどの横断的関心事をメインから分離する設計パターンである。

サイドカーのユースケース

サイドカー 役割
ログ収集 ログを集約・転送 Fluent Bit
プロキシ トラフィック制御、mTLS Envoy (Istio)
監視 メトリクス収集 ADOT Collector
シークレット 秘密情報の注入 Vault Agent

Kubernetes での定義

apiVersion: v1
kind: Pod
spec:
  containers:
    - name: app
      image: my-app:latest
      ports: [{ containerPort: 8080 }]
    - name: log-collector
      image: fluent/fluent-bit:latest
      volumeMounts:
        - name: logs
          mountPath: /var/log/app
  volumes:
    - name: logs
      emptyDir: {}

サイドカー vs Lambda Layer

観点 サイドカー (ECS/EKS) Lambda Layer
実行環境 別コンテナ 同一プロセス
通信 localhost 関数内呼び出し
用途 プロキシ、ログ収集 共通ライブラリ、ADOT
リソース 独立した CPU/メモリ Lambda のメモリを共有

サイドカーの注意点

注意点 対策
リソース消費 サイドカーの CPU/メモリを制限
起動順序 Init Container で依存を解決
複雑さ 必要なサイドカーだけ追加

現場での応用を知るには関連書籍も役立つ。

関連用語