MCP HubMCP Hub
스킬 목록으로 돌아가기

configure-api-gateway

pjt222
업데이트됨 2 days ago
1 조회
17
2
17
GitHub에서 보기
개발aiapi

정보

이 스킬은 여러 백엔드 서비스에 대한 통합 진입점을 제공하기 위해 API 게이트웨이(Kong 또는 Traefik)를 배포하고 구성합니다. 인증, 속도 제한, 요청/응답 변환, 라우팅, 로드 밸런싱과 같은 핵심 기능을 처리합니다. 마이크로서비스에 대한 중앙 집중식 API 관리, 버전 관리 또는 상세 트래픽 분석이 필요할 때 사용하세요.

빠른 설치

Claude Code

추천
기본
npx skills add pjt222/agent-almanac -a claude-code
플러그인 명령대체
/plugin add https://github.com/pjt222/agent-almanac
Git 클론대체
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/configure-api-gateway

Claude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요

문서


name: configure-api-gateway description: > API-Gateway (Kong oder Traefik) deployen und konfigurieren fuer API-Traffic-Management, Authentifizierung, Rate-Limiting, Anfrage-/Antwort- Transformation und Routing. Behandelt Plugin-Konfiguration, Upstream-Services, Consumer-Management und Integration mit bestehender Infrastruktur. Einsatz wenn mehrere Backend-Services einen einheitlichen API-Endpunkt benoetigen, zentrale Authentifizierung oder Rate-Limiting erforderlich ist, API- Versionierung implementiert werden soll oder detaillierte Analysen und Load-Balancing fuer Microservices benoetigt werden. locale: de source_locale: en source_commit: 6f65f316 translator: claude-sonnet-4-6 translation_date: 2026-03-16 license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: devops complexity: intermediate language: multi tags: api-gateway, kong, traefik, rate-limiting, authentication, routing, middleware

API-Gateway konfigurieren

API-Gateway fuer zentralisiertes API-Traffic-Management und Richtliniendurchsetzung deployen und konfigurieren.

Wann verwenden

  • Mehrere Backend-Services benoetigen einheitlichen API-Endpunkt mit konsistenten Richtlinien
  • Zentrale Authentifizierung/Autorisierung fuer API-Zugriff erforderlich
  • Rate-Limiting und Kontingent-Management ueber APIs hinweg benoetigt
  • Anfragen/Antworten transformieren ohne Backend-Services zu aendern
  • API-Versionierung und Deprecation-Strategien implementieren
  • Detaillierte API-Analysen und Monitoring benoetigt
  • Service-Discovery und Load-Balancing fuer Microservices erforderlich

Eingaben

  • Erforderlich: Kubernetes-Cluster oder Docker-Umgebung
  • Erforderlich: Auswahl des API-Gateways (Kong oder Traefik)
  • Erforderlich: Backend-Service-Endpunkte als Proxy-Ziele
  • Optional: Authentifizierungs-Provider (OAuth2, OIDC, API-Keys)
  • Optional: Rate-Limiting-Anforderungen (Anfragen pro Minute/Stunde)
  • Optional: Benutzerdefinierte Middleware- oder Plugin-Konfigurationen
  • Optional: TLS-Zertifikate fuer HTTPS-Endpunkte

Vorgehensweise

Siehe Erweiterte Beispiele fuer vollstaendige Konfigurationsdateien und Vorlagen.

Schritt 1: API-Gateway installieren

API-Gateway mit Datenbank (Kong) oder dateibasierter Konfiguration (Traefik) deployen.

Fuer Kong mit PostgreSQL:

# kong-deployment.yaml (excerpt - see EXAMPLES.md for complete file)
apiVersion: v1
kind: Namespace
metadata:
  name: kong
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kong
  namespace: kong
spec:
  replicas: 2
  # ... (PostgreSQL, migrations, services - see EXAMPLES.md)

Fuer Traefik:

# traefik-deployment.yaml (excerpt - see EXAMPLES.md for complete file)
apiVersion: v1
kind: Namespace
metadata:
  name: traefik
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: traefik
  namespace: traefik
spec:
  replicas: 2
  # ... (RBAC, ConfigMap, services - see EXAMPLES.md)

Vollstaendige Deployment-Manifeste unter EXAMPLES.md verfuegbar.

Deployen:

kubectl apply -f kong-deployment.yaml  # OR traefik-deployment.yaml
kubectl wait --for=condition=ready pod -l app=kong -n kong --timeout=300s
kubectl get svc -n kong kong-proxy  # Get load balancer IP

Erwartet: Gateway-Pods laufen mit 2 Replikas. LoadBalancer-Service hat externe IP zugewiesen. Admin-API erreichbar (Kong: Port 8001, Traefik: Dashboard-Port 8080). Health-Checks bestehen.

Bei Fehler:

  • Pod-Logs pruefen: kubectl logs -n kong -l app=kong
  • Datenbankverbindung pruefen (Kong): kubectl logs -n kong kong-migrations-<hash>
  • Service-Account-Berechtigungen pruefen (Traefik): kubectl get clusterrolebinding traefik -o yaml
  • Pruefen ob Ports bereits belegt: kubectl get svc --all-namespaces | grep 8000

Schritt 2: Backend-Services und Routen konfigurieren

Upstream-Services definieren und Routen zur API-Exponierung erstellen.

Fuer Kong (mit decK fuer deklarative Konfiguration):

# Install decK CLI
curl -sL https://github.com/Kong/deck/releases/download/v1.28.0/deck_1.28.0_linux_amd64.tar.gz | tar -xz
sudo mv deck /usr/local/bin/

# Create kong.yaml with services, routes, upstreams
# (see EXAMPLES.md for complete configuration)
deck sync --kong-addr http://localhost:8001 -s kong.yaml
curl -i http://localhost:8001/routes  # Verify routes

Fuer Traefik (mit IngressRoute CRD):

# traefik-routes.yaml (excerpt)
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
  name: user-api-route
spec:
  entryPoints: [websecure]
  routes:
  - match: Host(`api.example.com`) && PathPrefix(`/api/users`)
    # ... (see EXAMPLES.md for full configuration)

Routen anwenden:

kubectl apply -f traefik-routes.yaml
curl -H "Host: api.example.com" https://GATEWAY_IP/api/users

Vollstaendige Routing-Konfigurationen unter EXAMPLES.md verfuegbar.

Erwartet: Routen leiten Traffic korrekt an Backend-Services weiter. Gewichtetes Routing verteilt Traffic gemaess Konfiguration. Health-Checks ueberwachen Backend-Service-Gesundheit.

Bei Fehler:

  • Pruefen, ob Backend-Services laufen: kubectl get svc -n default
  • DNS-Aufloesung pruefen: kubectl run test --rm -it --image=busybox -- nslookup user-service.default.svc.cluster.local
  • Gateway-Logs pruefen: kubectl logs -n kong -l app=kong --tail=50
  • Konfiguration validieren: deck validate -s kong.yaml

Schritt 3: Authentifizierung und Autorisierung implementieren

Authentifizierungs-Plugins/-Middleware fuer API-Sicherheit konfigurieren.

Fuer Kong (API-Key- und JWT-Authentifizierung):

# kong-auth-config.yaml (excerpt)
consumers:
- username: mobile-app
  custom_id: app-001

keyauth_credentials:
- consumer: mobile-app
  key: mobile-secret-key-123

plugins:
- name: key-auth
  service: user-api
  # ... (see EXAMPLES.md for full configuration)
deck sync --kong-addr http://localhost:8001 -s kong-auth-config.yaml
curl -i -H "apikey: mobile-secret-key-123" http://GATEWAY_IP/api/users

Fuer Traefik (BasicAuth und ForwardAuth Middleware):

# traefik-auth-middleware.yaml (excerpt)
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
  name: basic-auth-middleware
spec:
  basicAuth:
    secret: basic-auth
    removeHeader: true
# ... (see EXAMPLES.md for OAuth2, rate limiting)
kubectl apply -f traefik-auth-middleware.yaml
curl -u user1:password https://GATEWAY_IP/api/protected

Vollstaendige Authentifizierungs-Konfigurationen unter EXAMPLES.md verfuegbar.

Erwartet: Nicht authentifizierte Anfragen geben 401 zurueck. Gueltige Credentials erlauben Zugriff. Rate-Limiting gibt 429 nach Ueberschreiten des Schwellenwerts zurueck. JWT-Tokens werden korrekt validiert. ACL setzt Gruppenberechtigungen durch.

Bei Fehler:

  • Consumer-Erstellung pruefen: curl http://localhost:8001/consumers
  • Plugin aktiviert pruefen: curl http://localhost:8001/plugins | jq .
  • Mit Verbose testen: curl -v fuer Antwort-Header pruefen
  • JWT validieren: jwt.io zum Dekodieren des Tokens verwenden

Schritt 4: Anfrage-/Antwort-Transformation konfigurieren

Middleware zum Transformieren von Anfragen und Antworten hinzufuegen.

Fuer Kong:

# kong-transformations.yaml (excerpt)
plugins:
- name: request-transformer
  service: user-api
  config:
    add:
      headers: [X-Gateway-Version:1.0, X-Request-ID:$(uuid)]
    remove:
      headers: [X-Internal-Token]
- name: correlation-id
  # ... (see EXAMPLES.md for full configuration)
deck sync --kong-addr http://localhost:8001 -s kong-transformations.yaml

Fuer Traefik:

# traefik-transformations.yaml (excerpt)
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
  name: add-headers
spec:
  headers:
    customRequestHeaders:
      X-Gateway-Version: "1.0"
    # ... (see EXAMPLES.md for circuit breaker, retry, chain)
kubectl apply -f traefik-transformations.yaml
curl -v https://GATEWAY_IP/api/users | grep X-Gateway

Vollstaendige Transformations-Konfigurationen unter EXAMPLES.md verfuegbar.

Erwartet: Anfrage-Header werden wie konfiguriert hinzugefuegt/entfernt. Antwort-Header enthalten Gateway-Metadaten. Grosse Anfragen werden mit 413 abgelehnt. Circuit-Breaker loest bei wiederholten Fehlern aus. Retries erfolgen bei voruebertgehenden Fehlern.

Bei Fehler:

  • Middleware-Reihenfolge in der Kette pruefen
  • Auf Header-Konflikte mit Backend-Services pruefen
  • Transformationen einzeln testen, bevor sie verknuepft werden
  • Logs auf Transformations-Fehler pruefen

Schritt 5: Monitoring und Analysen aktivieren

Metriken, Logging und Dashboards fuer API-Sichtbarkeit konfigurieren.

Kong-Monitoring einrichten:

# kong-monitoring.yaml (excerpt)
plugins:
- name: prometheus
  config:
    per_consumer: true
- name: http-log
  service: user-api
  # ... (see EXAMPLES.md for Datadog, file-log configuration)
deck sync --kong-addr http://localhost:8001 -s kong-monitoring.yaml

# Deploy ServiceMonitor (see EXAMPLES.md)
kubectl apply -f kong-servicemonitor.yaml
curl http://localhost:8100/metrics

Traefik-Monitoring (integriert):

# ServiceMonitor (excerpt - see EXAMPLES.md for Grafana dashboard)
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: traefik-metrics
spec:
  endpoints:
  - port: metrics
    path: /metrics
    interval: 30s
kubectl port-forward -n traefik svc/traefik-dashboard 8080:8080
# Open http://localhost:8080/dashboard/

Vollstaendige Monitoring-Konfigurationen unter EXAMPLES.md verfuegbar.

Erwartet: Prometheus scraped Gateway-Metriken erfolgreich. Dashboards zeigen Anfrage-Raten, Latenz-Perzentile, Fehlerraten. Logs werden an Aggregationssystem weitergeleitet. Metriken segmentiert nach Service, Route und Consumer.

Bei Fehler:

  • ServiceMonitor pruefen: kubectl get servicemonitor -A
  • Prometheus-Targets in UI pruefen
  • Sicherstellen, dass Metriken-Port erreichbar: kubectl port-forward -n kong svc/kong-metrics 8100:8100
  • Erreichbarkeit des Log-Endpunkts validieren

Schritt 6: API-Versionierung und Deprecation implementieren

Versions-Management und schrittweise API-Deprecation konfigurieren.

Kong-Versionierungsstrategie:

# kong-versioning.yaml (excerpt)
services:
- name: user-api-v1
  url: http://user-service-v1.default.svc.cluster.local:8080
  routes:
  - name: user-v1-route
    paths: [/api/v1/users]
  plugins:
  - name: response-transformer
    config:
      add:
        headers:
        - X-Deprecation-Notice:"API v1 deprecated on 2024-12-31"
        - Sunset:"Wed, 31 Dec 2024 23:59:59 GMT"
# ... (see EXAMPLES.md for v2, default routing, rate limits)

Traefik-Versionierung:

# traefik-versioning.yaml (excerpt)
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
  name: v1-deprecation-headers
spec:
  headers:
    customResponseHeaders:
      X-Deprecation-Notice: "API v1 deprecated on 2024-12-31"
# ... (see EXAMPLES.md for complete IngressRoutes)

Versionierung testen:

curl -i https://api.example.com/api/v1/users  # Deprecated
curl -i https://api.example.com/api/v2/users  # Current
curl -i https://api.example.com/api/users     # Routes to v2

Vollstaendige Versionierungs-Konfigurationen unter EXAMPLES.md verfuegbar.

Erwartet: Verschiedene Versionen leiten an entsprechende Backend-Services weiter. Deprecation-Header in v1-Antworten vorhanden. Rate-Limits strenger fuer veraltete Versionen. Standard-Pfad leitet zur neuesten Version. Metriken nach API-Version segmentiert.

Bei Fehler:

  • Pfad-Praezedenz/-Prioritaet pruefen (hoehere Prioritaet = zuerst ausgewertet)
  • Auf ueberlappende Pfad-Muster pruefen
  • Jede Versions-Route unabhaengig testen
  • Routing-Logs auf Pfad-Matching pruefen
  • Sicherstellen, dass Backend-Services fuer jede Version laufen

Validierung

  • API-Gateway-Pods laufen mit mehreren Replikas fuer Hochverfuegbarkeit
  • LoadBalancer-Service hat externe IP zugewiesen
  • Routen leiten Traffic korrekt an Backend-Services weiter
  • Authentifizierung/Autorisierung setzt Zugangskontrolle durch (401/403-Antworten)
  • Rate-Limiting gibt 429 nach Ueberschreiten des Kontingents zurueck
  • Anfrage-/Antwort-Transformation fuegt/entfernt Header korrekt
  • Circuit-Breaker loest bei wiederholten Backend-Fehlern aus
  • Metriken exponiert und von Prometheus gescraped
  • Dashboards zeigen Anfrage-Raten, Latenz, Fehler
  • API-Versionierung leitet Anfragen an korrekte Backend-Versionen
  • Deprecation-Header in aelteren API-Versionen vorhanden
  • Health-Checks ueberwachen Backend-Service-Verfuegbarkeit

Haeufige Stolperfallen

  • Datenbankabhaengigkeit (Kong): Kong mit Datenbank benoetigt PostgreSQL/Cassandra. DB-loser Modus verfuegbar, schraenkt aber einige Funktionen ein. DB-Modus fuer Produktion mit mehreren Gateway-Instanzen verwenden.

  • Pfad-Matching-Reihenfolge: Routen/IngressRoutes werden in bestimmter Reihenfolge ausgewertet. Spezifischere Pfade sollten hoehere Prioritaet haben. Ueberlappende Pfade verursachen unvorhersehbares Routing.

  • Authentifizierungs-Bypass: Sicherstellen, dass Authentifizierungs-Plugins auf alle Routen angewendet werden. Leicht, Route ohne Auth hinzuzufuegen. Standard-Plugins auf Service-Ebene verwenden, dann pro Route ueberschreiben.

  • Rate-Limit-Umfang: Rate-Limiting policy: local zaehlt pro Gateway-Pod. Fuer konsistente Limits ueber Replikas zentralisierte Richtlinie (Redis) oder Sticky Sessions verwenden.

  • CORS-Konfiguration: API-Gateway sollte CORS behandeln, nicht einzelne Services. CORS-Plugin/Middleware frueh hinzufuegen, um Browser-Preflight-Fehler zu vermeiden.

  • SSL/TLS-Terminierung: Gateway terminiert normalerweise SSL. Sicherstellen, dass Zertifikate gueltig sind und automatische Erneuerung konfiguriert ist. cert-manager fuer Kubernetes-Zertifikatsverwaltung verwenden.

  • Upstream-Health-Checks: Aktive Health-Checks konfigurieren, um Backend-Ausfaelle schnell zu erkennen. Passive Checks verlaessen sich auf echten Traffic und koennen langsamer reagieren.

  • Plugin-/Middleware-Ausfuehrungsreihenfolge: Reihenfolge ist wichtig. Authentifizierung vor Rate-Limiting (vermeidet verschwendete Rate-Limit-Slots fuer ungueltige Anfragen). Transformation vor Logging (transformierte Werte protokollieren).

  • Ressourcenlimits: Gateway-Pods koennen unter Last erhebliche CPU verbrauchen. Geeignete Ressourcenanforderungen/-limits setzen. CPU-Drosselung in Produktion ueberwachen.

  • Migrationsstrategie: Nicht alle Plugins auf einmal aktivieren. Schrittweise einfuehren: Routing → Authentifizierung → Rate-Limiting → Transformationen → erweiterte Funktionen.

Verwandte Skills

  • configure-ingress-networking - Ingress-Controller-Setup ergaenzt API-Gateway
  • setup-service-mesh - Service-Mesh bietet komplementaeres Ost-West-Traffic-Management
  • manage-kubernetes-secrets - Zertifikats- und Credential-Management fuer Gateway
  • setup-prometheus-monitoring - Monitoring-Integration fuer Gateway-Metriken
  • enforce-policy-as-code - Richtliniendurchsetzung ergaenzt Gateway-Autorisierung

GitHub 저장소

pjt222/agent-almanac
경로: i18n/de/skills/configure-api-gateway
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

연관 스킬

qmd

개발

qmd는 BM25, 벡터 임베딩, 재순위화를 결합한 하이브리드 검색을 통해 로컬 파일을 색인화하고 검색할 수 있는 로컬 검색 및 색인화 CLI 도구입니다. 명령줄 사용과 Claude 통합을 위한 MCP(Model Context Protocol) 모드를 모두 지원합니다. 이 도구는 임베딩에 Ollama를 사용하고 색인을 로컬에 저장하여 터미널에서 직접 문서나 코드베이스를 검색하는 데 이상적입니다.

스킬 보기

subagent-driven-development

개발

이 스킬은 각 독립적인 작업마다 새로운 하위 에이전트를 배치하고 작업 사이에 코드 리뷰를 진행하여 구현 계획을 실행합니다. 이 리뷰 프로세스를 통해 품질 게이트를 유지하면서 빠른 반복 작업을 가능하게 합니다. 동일한 세션 내에서 대부분 독립적인 작업을 진행할 때 내장된 품질 검증과 함께 지속적인 진행을 보장하기 위해 사용하세요.

스킬 보기

mcporter

개발

mcporter 스킬은 개발자가 Claude에서 직접 Model Context Protocol(MCP) 서버를 관리하고 호출할 수 있도록 합니다. 이 스킬은 사용 가능한 서버를 나열하고, 인수를 사용해 해당 서버의 도구를 호출하며, 인증 및 데몬 생명주기를 처리하는 명령어를 제공합니다. 개발 워크플로우에서 MCP 서버 기능을 통합하고 테스트할 때 이 스킬을 사용하세요.

스킬 보기

adk-deployment-specialist

개발

이 스킬은 A2A 프로토콜을 사용하여 Vertex AI ADK 에이전트를 배포하고 오케스트레이션하며, AgentCard 검색, 작업 제출, 코드 실행 샌드박스 및 메모리 뱅크와 같은 지원 도구를 관리합니다. Python, Java 또는 Go 언어로 순차, 병렬 또는 루프 오케스트레이션 패턴을 갖춘 다중 에이전트 시스템 구축을 가능하게 합니다. Google Cloud에서 ADK 에이전트 배포 또는 에이전트 워크플로우 오케스트레이션을 요청받았을 때 사용하세요.

스킬 보기