mcpField
A
api-gateway-patterns

api-gateway-patterns

github.com/nickcrew開発6298 回インストール18 週間前に更新
リポジトリ

api-gateway-patterns について

マイクロサービス向けAPIゲートウェイの設計と実装を支援するスキルです。ルーティング、セキュリティ、トラフィック制御、サービス合成を扱い、一般的なパターンや実装の資料も含みます。

主な機能

  1. 01ルーティング戦略のガイド
  2. 02認証・認可パターン
  3. 03レート制限、リトライ、サーキットブレーカー
  4. 04BFFとゲートウェイのアーキテクチャパターン
  5. 05サービス合成と変換
  6. 06実装リファレンス

活用シーン

  1. 01マイクロサービス向けゲートウェイの設計
  2. 02ゲートウェイ層でのアクセス制御の追加
  3. 03耐障害性を考慮したトラフィック方針の策定
  4. 04ゲートウェイの構成や実装の選定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/nickcrew/claude-cortex --skill api-gateway-patterns

インストール後、Claude Code で/api-gateway-patternsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
authentication.md
bff-pattern.md
composition.md
implementations.md
routing-patterns.md
service-discovery.md
traffic-management.md
transformation.md

詳細

API ゲートウェイのパターン

大規模なマイクロサービスアーキテクチャ向けに、ルーティング、認証、トラフィック管理、サービス合成のパターンを用いて API ゲートウェイを実装するための専門的なガイダンスです。

このスキルを使用する場面

  • マイクロサービス向けの API ゲートウェイインフラストラクチャを実装する
  • Backend for Frontend(BFF)レイヤーを設計する
  • ゲートウェイレベルで認証と認可を追加する
  • レート制限、サーキットブレーカー、再試行ロジックを実装する
  • サービスディスカバリーと動的ルーティングを設定する
  • API の合成および集約レイヤーを構築する
  • 横断的関心事(ロギング、モニタリング、CORS)を管理する
  • ゲートウェイソリューション(Kong、Nginx、Envoy、AWS API Gateway)を評価する

コアコンセプト

ゲートウェイの責務

ルーティング:パス、ヘッダー、ホストに基づいて、リクエストを適切なバックエンドサービスに転送します セキュリティ:認証、認可、API キーの検証を一元化します トラフィック管理:レート制限、サーキットブレーカー、再試行ロジックを適用します 合成:複数のサービス呼び出しを集約して、統一されたレスポンスを返します 変換:クライアント向けの最適化やレガシーシステムへの適応のために、リクエスト/レスポンスを変更します

アーキテクチャパターン

単一ゲートウェイ:すべてのクライアントに対して 1 つのゲートウェイを使用します(シンプルですが、ボトルネックになる可能性があります) BFF パターン:クライアントの種類(モバイル、ウェブ、管理者)ごとに個別のゲートウェイを用意し、それぞれに最適化します GraphQL ゲートウェイ:サービス間でスキーマをステッチし、クライアント主導のデータ取得を可能にします サービスメッシュ:サイドカープロキシを使用する分散ゲートウェイパターンです(Istio、Linkerd)

クイックリファレンス

タスクリファレンスを読み込む
ルーティング戦略(パス、ヘッダー、ホストベース)skills/api-gateway-patterns/references/routing-patterns.md
リクエスト/レスポンスの変換skills/api-gateway-patterns/references/transformation.md
API の合成と集約skills/api-gateway-patterns/references/composition.md
認証と認可(JWT、OAuth、RBAC)skills/api-gateway-patterns/references/authentication.md
トラフィック管理(レート制限、サーキットブレーカー)skills/api-gateway-patterns/references/traffic-management.md
Backend for Frontend(BFF)パターンskills/api-gateway-patterns/references/bff-pattern.md
サービスディスカバリーの統合skills/api-gateway-patterns/references/service-discovery.md
ゲートウェイの実装(Kong、Nginx、Envoy、AWS)skills/api-gateway-patterns/references/implementations.md

実装ワークフロー

フェーズ 1:要件分析
  1. クライアントの種類を特定する:モバイル、ウェブ、管理者、パートナー
  2. サービスの全体像を把握する:バックエンドサービスとエンドポイントをカタログ化する
  3. 横断的関心事を定義する:認証、ロギング、モニタリング、CORS
  4. 合成のニーズを特定する:集約が必要なエンドポイントはどれか?
  5. SLA を設定する:レイテンシ、スループット、可用性の目標
フェーズ 2:ゲートウェイの設計
  1. アーキテクチャを選択する:単一ゲートウェイ、BFF、GraphQL のいずれか
  2. 実装を選択する:Kong、Nginx、Envoy、AWS API Gateway
  3. ルーティングルールを設計する:パスベース、ヘッダーベース、ホストベース
  4. 認証を計画する:JWT、OAuth 2.0、API キー、またはハイブリッド
  5. トラフィックポリシーを定義する:レート制限、サーキットブレーカー、タイムアウト
フェーズ 3:実装
  1. インフラストラクチャを設定する:ゲートウェイインスタンスをデプロイし、ロードバランサーを設定する
  2. ルーティングを実装する:サービスディスカバリーとルート定義を設定する
  3. 認証を追加する:JWT の検証、OAuth の統合、API キーの管理
  4. トラフィック管理を適用する:レート制限、サーキットブレーカー、再試行ロジック
  5. オブザーバビリティを有効にする:分散トレーシング、メトリクス、構造化ロギング
フェーズ 4:テストと最適化
  1. 負荷テスト:想定負荷およびピーク負荷時のパフォーマンスを検証する
  2. 障害注入:サーキットブレーカーと再試行ロジックをテストする
  3. セキュリティテスト:認証フロー、トークン検証、RBAC ポリシーを検証する
  4. レイテンシの最適化:キャッシュ戦略、コネクションプーリング
  5. 監視と調整:実際のトラフィックに基づいてタイムアウトと制限を調整する

ベストプラクティス

  1. 横断的関心事を一元化する:ゲートウェイで認証、ロギング、監視を行います
  2. ゲートウェイを軽量に保つ:複雑なビジネスロジックを避け、サービスに委譲します
  3. ヘルスチェックを実装する:上流サービスの健全性を監視し、正常でないインスタンスを除外します
  4. サーキットブレーカーを使用する:連鎖的な障害を防ぎ、速やかに失敗させます
  5. レート制限を適用する:サービスを過負荷から保護し、段階的な制限を実装します
  6. 可観測性を有効にする:分散トレーシング、メトリクス、構造化ロギングを導入します
  7. API にバージョンを付ける:複数の API バージョンをサポートし、廃止を計画します
  8. 通信を保護する:すべての通信で TLS を使用し、サービス間通信には相互 TLS を使用します
  9. 戦略的にキャッシュする:レスポンスをキャッシュしますが、適切に無効化します
  10. レジリエンスをテストする:カオスエンジニアリング、障害注入、負荷テストを行います

よくある間違い

  1. ゲートウェイにビジネスロジックを置く:ゲートウェイはルーティングとセキュリティに専念させ、ビジネスルールを扱わせないでください
  2. 過剰な呼び出しを伴う構成:上流への呼び出しが多すぎます(BFF、GraphQL、またはキャッシュを使用します)
  3. 単一障害点を作る:冗長構成でデプロイし、ロードバランサーを使用します
  4. タイムアウトを設定しない:リクエストが停止したままになるのを防ぐため、接続タイムアウトと読み取りタイムアウトを必ず設定します
  5. バックプレッシャーを無視する:キューの上限を設定し、グレースフルデグラデーションを実装します
  6. 過剰な集約:ゲートウェイに過剰な処理(計算負荷の高い変換)をさせないでください
  7. 監視が不十分:ゲートウェイレベルでレイテンシ、エラー、スループットを必ず追跡します
  8. レート制限を設けない:保護策がなければ、いずれサービスは過負荷になります
  9. すべてを同期処理にする:重要度の低い操作には非同期パターンを使用します
  10. バージョン戦略がない:破壊的変更により、すべてのクライアントに同時に影響が及びます

リソース

コメント