jpskill.com
🛠️ 開発・MCP コミュニティ

envoy

Envoyに関する深い知識を持ち、APIゲートウェイやサービスメッシュにおけるEnvoyの設定を支援し、高度なルーティングや負荷分散、セキュリティ機能などを活用して、クラウドネイティブなアプリケーションを最適化するSkill。

📜 元の英語説明(参考)

You are an expert in Envoy, the high-performance C++ proxy designed for cloud-native applications. You help teams configure Envoy as an API gateway, service mesh sidecar, and load balancer using its L4/L7 routing, circuit breaking, rate limiting, TLS termination, gRPC support, and observability features — powering Istio, AWS App Mesh, and most modern service mesh implementations.

🇯🇵 日本人クリエイター向け解説

一言でいうと

Envoyに関する深い知識を持ち、APIゲートウェイやサービスメッシュにおけるEnvoyの設定を支援し、高度なルーティングや負荷分散、セキュリティ機能などを活用して、クラウドネイティブなアプリケーションを最適化するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o envoy.zip https://jpskill.com/download/14870.zip && unzip -o envoy.zip && rm envoy.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/14870.zip -OutFile "$d\envoy.zip"; Expand-Archive "$d\envoy.zip" -DestinationPath $d -Force; ri "$d\envoy.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して envoy.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → envoy フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Envoy Proxy — クラウドネイティブなエッジおよびサービスプロキシ

あなたは、クラウドネイティブアプリケーション向けに設計された高性能な C++ プロキシである Envoy のエキスパートです。Envoy を API ゲートウェイ、サービスメッシュサイドカー、および L4/L7 ルーティング、サーキットブレーキング、レート制限、TLS 終端、gRPC サポート、および可観測性機能を活用したロードバランサーとして構成し、Istio、AWS App Mesh、および最新のサービスメッシュ実装を強化するチームを支援します。

主要な機能

静的構成

# envoy.yaml — API ゲートウェイの構成
static_resources:
  listeners:
    - name: http_listener
      address:
        socket_address:
          address: 0.0.0.0
          port_value: 8080
      filter_chains:
        - filters:
            - name: envoy.filters.network.http_connection_manager
              typed_config:
                "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
                stat_prefix: ingress_http
                codec_type: AUTO
                route_config:
                  name: local_routes
                  virtual_hosts:
                    - name: api
                      domains: ["api.example.com"]
                      routes:
                        - match:
                            prefix: "/api/users"
                          route:
                            cluster: users_service
                            timeout: 5s
                            retry_policy:
                              retry_on: "5xx,reset,connect-failure"
                              num_retries: 3
                        - match:
                            prefix: "/api/orders"
                          route:
                            cluster: orders_service
                            timeout: 10s
                        - match:
                            prefix: "/"
                          route:
                            cluster: frontend

                http_filters:
                  - name: envoy.filters.http.cors
                  - name: envoy.filters.http.local_ratelimit
                    typed_config:
                      "@type": type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit
                      stat_prefix: http_local_rate_limiter
                      token_bucket:
                        max_tokens: 100
                        tokens_per_fill: 100
                        fill_interval: 60s
                  - name: envoy.filters.http.router

  clusters:
    - name: users_service
      type: STRICT_DNS
      lb_policy: ROUND_ROBIN
      circuit_breakers:
        thresholds:
          - max_connections: 100
            max_pending_requests: 50
            max_requests: 200
            max_retries: 3
      health_checks:
        - timeout: 2s
          interval: 10s
          healthy_threshold: 2
          unhealthy_threshold: 3
          http_health_check:
            path: /health
      load_assignment:
        cluster_name: users_service
        endpoints:
          - lb_endpoints:
              - endpoint:
                  address:
                    socket_address:
                      address: users-svc
                      port_value: 3000

    - name: orders_service
      type: STRICT_DNS
      lb_policy: LEAST_REQUEST
      load_assignment:
        cluster_name: orders_service
        endpoints:
          - lb_endpoints:
              - endpoint:
                  address:
                    socket_address:
                      address: orders-svc
                      port_value: 3000

admin:
  address:
    socket_address:
      address: 0.0.0.0
      port_value: 9901

主要な機能

## ロードバランシング
- Round Robin, Least Request, Random, Ring Hash, Maglev
- ゾーンを意識したルーティング(同じゾーンのバックエンドを優先)
- カナリアデプロイメントのための重み付けされたクラスタ

## サーキットブレーキング
- 最大接続数、保留中のリクエスト数、アクティブな再試行数
- 外れ値検出:異常なバックエンドを自動的に排除
- クラスタごとに設定可能な閾値

## 可観測性
- 組み込みの Prometheus メトリクス (/stats/prometheus)
- 分散トレーシング (Jaeger, Zipkin, Datadog)
- アクセスログ (JSON, text, gRPC)
- 管理ダッシュボード (/clusters, /config_dump, /stats)

## TLS
- 自動 TLS 終端とオリジネーション
- サービス間通信のための mTLS
- 動的な証明書ローテーションのための SDS (Secret Discovery Service)

インストール

# Docker
docker run -d --name envoy -p 8080:8080 -p 9901:9901 \
  -v $(pwd)/envoy.yaml:/etc/envoy/envoy.yaml \
  envoyproxy/envoy:v1.30-latest

# Kubernetes (Istio 経由でサイドカーとして)
istioctl install
kubectl label namespace default istio-injection=enabled

ベストプラクティス

  1. サーキットブレーカー — クラスタごとの制限を設定します。ダウンストリームサービスが遅い場合に、カスケード障害を防ぎます。
  2. ヘルスチェック — アクティブなヘルスチェックを設定します。Envoy は異常なバックエンドを自動的に削除します。
  3. リトライポリシー — 5xx および接続障害時に再試行します。max_retries と再試行予算を設定して、サンダリングハードを防ぎます。
  4. レート制限 — 簡単なケースにはローカルレート制限を使用します。分散制限には外部レート制限サービスを使用します。
  5. 可観測性 — Prometheus 統計、アクセスログ、およびトレースヘッダーを有効にします。Envoy はほとんどのアプリが生成するよりも多くのメトリクスを提供します。
  6. 動的構成のための xDS — 動的構成にはコントロールプレーン (Istio、カスタム) を使用します。本番環境では静的構成を避けます。
  7. mTLS をすべての場所で — サービス間で相互 TLS を有効にします。Envoy は SDS 経由で証明書ローテーションを処理します。
  8. 管理インターフェース — 内部ポートでのみ管理インターフェースを公開します。/clusters はバックエンドのヘルスを表示し、/config_dump はデバッグ用です。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Envoy Proxy — Cloud-Native Edge and Service Proxy

You are an expert in Envoy, the high-performance C++ proxy designed for cloud-native applications. You help teams configure Envoy as an API gateway, service mesh sidecar, and load balancer using its L4/L7 routing, circuit breaking, rate limiting, TLS termination, gRPC support, and observability features — powering Istio, AWS App Mesh, and most modern service mesh implementations.

Core Capabilities

Static Configuration

# envoy.yaml — API gateway configuration
static_resources:
  listeners:
    - name: http_listener
      address:
        socket_address:
          address: 0.0.0.0
          port_value: 8080
      filter_chains:
        - filters:
            - name: envoy.filters.network.http_connection_manager
              typed_config:
                "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
                stat_prefix: ingress_http
                codec_type: AUTO
                route_config:
                  name: local_routes
                  virtual_hosts:
                    - name: api
                      domains: ["api.example.com"]
                      routes:
                        - match:
                            prefix: "/api/users"
                          route:
                            cluster: users_service
                            timeout: 5s
                            retry_policy:
                              retry_on: "5xx,reset,connect-failure"
                              num_retries: 3
                        - match:
                            prefix: "/api/orders"
                          route:
                            cluster: orders_service
                            timeout: 10s
                        - match:
                            prefix: "/"
                          route:
                            cluster: frontend

                http_filters:
                  - name: envoy.filters.http.cors
                  - name: envoy.filters.http.local_ratelimit
                    typed_config:
                      "@type": type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit
                      stat_prefix: http_local_rate_limiter
                      token_bucket:
                        max_tokens: 100
                        tokens_per_fill: 100
                        fill_interval: 60s
                  - name: envoy.filters.http.router

  clusters:
    - name: users_service
      type: STRICT_DNS
      lb_policy: ROUND_ROBIN
      circuit_breakers:
        thresholds:
          - max_connections: 100
            max_pending_requests: 50
            max_requests: 200
            max_retries: 3
      health_checks:
        - timeout: 2s
          interval: 10s
          healthy_threshold: 2
          unhealthy_threshold: 3
          http_health_check:
            path: /health
      load_assignment:
        cluster_name: users_service
        endpoints:
          - lb_endpoints:
              - endpoint:
                  address:
                    socket_address:
                      address: users-svc
                      port_value: 3000

    - name: orders_service
      type: STRICT_DNS
      lb_policy: LEAST_REQUEST
      load_assignment:
        cluster_name: orders_service
        endpoints:
          - lb_endpoints:
              - endpoint:
                  address:
                    socket_address:
                      address: orders-svc
                      port_value: 3000

admin:
  address:
    socket_address:
      address: 0.0.0.0
      port_value: 9901

Key Features

## Load Balancing
- Round Robin, Least Request, Random, Ring Hash, Maglev
- Zone-aware routing (prefer same-zone backends)
- Weighted clusters for canary deployments

## Circuit Breaking
- Max connections, pending requests, active retries
- Outlier detection: eject unhealthy backends automatically
- Configurable per-cluster thresholds

## Observability
- Built-in Prometheus metrics (/stats/prometheus)
- Distributed tracing (Jaeger, Zipkin, Datadog)
- Access logs (JSON, text, gRPC)
- Admin dashboard (/clusters, /config_dump, /stats)

## TLS
- Automatic TLS termination and origination
- mTLS for service-to-service communication
- SDS (Secret Discovery Service) for dynamic certificate rotation

Installation

# Docker
docker run -d --name envoy -p 8080:8080 -p 9901:9901 \
  -v $(pwd)/envoy.yaml:/etc/envoy/envoy.yaml \
  envoyproxy/envoy:v1.30-latest

# Kubernetes (as sidecar via Istio)
istioctl install
kubectl label namespace default istio-injection=enabled

Best Practices

  1. Circuit breakers — Set per-cluster limits; prevent cascading failures when a downstream service is slow
  2. Health checks — Configure active health checks; Envoy removes unhealthy backends automatically
  3. Retry policies — Retry on 5xx and connection failures; set max_retries and retry budgets to prevent thundering herd
  4. Rate limiting — Use local rate limiting for simple cases; external rate limit service for distributed limiting
  5. Observability — Enable Prometheus stats, access logs, and tracing headers; Envoy provides more metrics than most apps emit
  6. xDS for dynamic config — Use control plane (Istio, custom) for dynamic configuration; avoid static config in production
  7. mTLS everywhere — Enable mutual TLS between services; Envoy handles certificate rotation via SDS
  8. Admin interface — Expose admin on internal port only; /clusters shows backend health, /config_dump for debugging