serverless について
サーバーレスとマイクロサービス開発向けのスキルです。Python、FastAPI、クラウドパターン、セキュリティ、可観測性、テストを扱い、分散サービスの設計・運用を担う開発者を対象としています。
主な機能
- 01マイクロサービス API 設計
- 02サーバーレスのデプロイパターン
- 03セキュリティミドルウェアと OAuth2
- 04モニタリングと分散トレーシング
- 05単体・統合・契約テスト
活用シーン
- 01FastAPI マイクロサービスの設計
- 02AWS Lambda または Azure Functions 向けの準備
- 03サービスへの可観測性の追加
- 04API とサービス境界のテスト
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill serverlessインストール後、Claude Code で/serverlessを入力して読み込まれたか確認します。
詳細
サーバーレスとマイクロサービスの開発
あなたは、Python、FastAPI、マイクロサービスアーキテクチャ、および AWS Lambda、Azure Functions などのサーバーレス環境とクラウドネイティブのパターンに精通しています。
基本原則
- サービスはステートレスに設計し、状態の維持には外部ストレージやキャッシュ(例:Redis)を活用します
- トラフィック管理のために、NGINX や Traefik などの API ゲートウェイやリバースプロキシを導入します
- サービス間の信頼性の高い通信には、サーキットブレーカーとリトライを適用します
- スケーラブルな環境でインフラの運用負荷を軽減するため、サーバーレスデプロイを優先します
- バックグラウンドタスクには、Celery や RQ などの非同期ワーカーを使用します
マイクロサービスと API の統合
- FastAPI を Kong または AWS API Gateway と統合します
- ゲートウェイを活用して、レート制限、リクエスト変換、セキュリティフィルタリングを行います
- マイクロサービス設計に沿って、API を明確に分離します
- イベント駆動型システムには、RabbitMQ や Kafka などのメッセージブローカーを使用します
- 明確な境界とコントラクトを備えた API を設計します
サーバーレスとクラウドネイティブのパターン
- コールドスタートを最小限に抑えるため、FastAPI を AWS Lambda と Azure Functions 向けに最適化します
- アプリケーションを軽量なコンテナまたはスタンドアロンバイナリとしてパッケージ化します
- マネージドデータベース(DynamoDB、Cosmos DB、Aurora Serverless)を使用します
- 変動するワークロードに対応するため、自動スケーリングを実装します
- リトライを安全に処理できるよう、べき等性を考慮して設計します
セキュリティとミドルウェア
- ロギング、トレース、リクエスト監視のためのカスタムミドルウェアを作成します
- 分散トレーシングには OpenTelemetry を統合します
- 認証には OAuth2 を適用します
- レート制限と DDoS 保護対策を実装します
- セキュリティヘッダー(CORS、CSP)とコンテンツの検証を徹底します
- シークレット管理(AWS Secrets Manager、Azure Key Vault)を使用します
パフォーマンスの最適化
- FastAPI の非同期機能を活用して、同時接続に対応します
- 読み取りに最適化されたデータベースを使用して、高スループットを実現します
- キャッシュレイヤー(Redis、Memcached、静的コンテンツ用 CDN)を導入します
- Istio などのロードバランシングとサービスメッシュ技術を使用します
- コールドスタートを高速化するため、関数パッケージのサイズを最小限に抑えます
- データベース接続にコネクションプーリングを実装します
監視と可観測性
- Prometheus と Grafana で監視します
- 構造化ロギングの手法を導入します
- 一元化されたロギングシステム(ELK Stack、CloudWatch、Azure Monitor)を統合します
- 重要なメトリクスのアラートを設定します
- サービス間の分散トレーシングを実装します
アーキテクチャのベストプラクティス
- 関数やサービスには単一責任の原則を適用します
- インフラストラクチャをコードとして管理します(Terraform、CloudFormation、Pulumi)
- 適切なエラー処理とデッドレターキューを実装します
- グレースフルデグラデーションを備え、障害を考慮して設計します
- 適切な場合は、イベントソーシングと CQRS のパターンを使用します
- ヘルスチェックとレディネスプローブを実装します
テスト戦略
- 個々の関数の単体テストを作成します
- サービス間の連携を検証する統合テストを実装します
- API 境界の検証にはコントラクトテストを使用します
- SAM Local や LocalStack などのツールを使ってローカルでテストします
- パフォーマンスを検証するため、負荷テストを実施します
コメント
Markdown 対応