mcpField
A
api-gateway-configuration

api-gateway-configuration

github.com/secondskyクラウド・DevOps240416 回インストール5 週間前に更新
リポジトリ

api-gateway-configuration について

マイクロサービス構成向けの API ゲートウェイ設計・設定ガイドです。ゲートウェイの役割を整理し、Kong、Nginx、AWS API Gateway の設定例を示します。

主な機能

  1. 01リクエストルーティングと負荷分散
  2. 02認証と認可
  3. 03レート制限とスロットリング
  4. 04リクエストとレスポンスの変換
  5. 05ログ記録とモニタリング
  6. 06SSL 終端

活用シーン

  1. 01マイクロサービス用 API ゲートウェイの設計
  2. 02サービスルートと負荷分散の設定
  3. 03ゲートウェイでの認証とレート制限
  4. 04HTTPS、ログ、ヘルスチェックの設定

インストール

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

$npx skills add https://github.com/secondsky/claude-skills --skill api-gateway-configuration

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

詳細

API ゲートウェイの構成

マイクロサービスアーキテクチャ向けに API ゲートウェイを設計、構成します。

ゲートウェイの役割

  • リクエストのルーティングと負荷分散
  • 認証と認可
  • レート制限とスロットリング
  • リクエスト/レスポンスの変換
  • ログ記録とモニタリング
  • SSL 終端

Kong の構成(YAML)

_format_version: "3.0"

services:
  - name: user-service
    url: http://user-service:3000
    routes:
      - name: user-routes
        paths: ["/api/users"]
    plugins:
      - name: rate-limiting
        config:
          minute: 100
          policy: local
      - name: jwt

  - name: order-service
    url: http://order-service:3000
    routes:
      - name: order-routes
        paths: ["/api/orders"]

Nginx の構成

upstream backend {
    server backend1:3000 weight=5;
    server backend2:3000 weight=5;
    keepalive 32;
}

server {
    listen 443 ssl;

    location /api/ {
        proxy_pass http://backend;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_cache_valid 200 1m;
    }

    location /health {
        return 200 'OK';
    }
}

AWS API Gateway(SAM)

Resources:
  ApiGateway:
    Type: AWS::Serverless::Api
    Properties:
      StageName: prod
      Auth:
        DefaultAuthorizer: JWTAuthorizer
        Authorizers:
          JWTAuthorizer:
            JwtConfiguration:
              issuer: !Sub "https://cognito-idp.${AWS::Region}.amazonaws.com/${UserPoolId}"

ベストプラクティス

  • ゲートウェイレベルで認証する
  • グローバルなレート制限を実装する
  • リクエストのログ記録を有効にする
  • バックエンドにヘルスチェックを使用する
  • 戦略的にレスポンスキャッシュを適用する
  • エラーでバックエンドの詳細を決して公開しない
  • 本番環境では HTTPS を強制する

コメント