Agent skill

cdk-review

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/cdk-review

SKILL.md

CDK Review Skill

Description

AWS CDKスタックのコードレビューとベストプラクティスを確認するためのスキルです。

Automatic Activation

このスキルは以下のファイルを編集する際に自動で適用されます:

  • cdk/**/*.ts - CDKスタック、エントリーポイント
  • cdk/.env - 環境変数設定
  • cdk/.env.example - 環境変数サンプル

Stack Structure

cdk/
├── bin/
│   └── taiho-app.ts              # エントリーポイント
└── lib/
    ├── database-stack.ts         # DynamoDB
    ├── cognito-stack.ts          # Cognito User Pool
    ├── lambda-stack.ts           # Lambda関数
    ├── api-gateway-stack.ts      # HTTP API v2
    ├── frontend-stack.ts         # S3 + CloudFront
    ├── route53-stack.ts          # Route53(オプション)
    └── certificate-stack.ts      # ACM証明書(オプション)

Review Checklist

1. Security

  • IAMポリシーが最小権限になっているか
  • CORS設定が適切か(本番は環境変数から取得)
  • S3バケットのパブリックアクセスがブロックされているか
  • シークレットがハードコードされていないか

2. Cost Optimization

  • ログ保持期間が30日に設定されているか
  • 不要なリソースがないか
  • CloudFront Price Classが適切か(PRICE_CLASS_200推奨)
  • DynamoDBがオンデマンドモードか

3. Best Practices

  • 環境変数が.envから読み込まれているか
  • 削除保護(RemovalPolicy.RETAIN)が重要リソースに設定されているか
  • CfnOutputで必要な値が出力されているか
  • スタック間の依存関係が正しいか

4. Consistency

  • 命名規則が統一されているか(TaihoAppプレフィックス)
  • ログ保持期間が統一されているか(30日)
  • コメントが適切に記載されているか

Current Configuration

API Gateway (HTTP API v2)

typescript
// REST API v1より約70%安価
corsPreflight: {
  allowOrigins: corsOrigins,  // 環境変数から取得
  allowMethods: [CorsHttpMethod.ANY],
  allowHeaders: ['Content-Type', 'Authorization'],
}

// ルート
/api/{proxy+}  // メインAPI
/health        // ヘルスチェック

Lambda

  • Runtime: Node.js 22.x
  • Memory: 512MB
  • Timeout: 29秒(API Gatewayの最大に合わせる)
  • Log Retention: 30日

CloudFront

  • Price Class: PRICE_CLASS_200
  • Error Response TTL: 60秒
  • Compress: true
  • Log Bucket Lifecycle: 30日

DynamoDB

  • Billing Mode: PAY_PER_REQUEST
  • Point-in-time Recovery: enabled
  • Removal Policy: RETAIN

Environment Variables

cdk/.envに設定:

bash
CDK_DEFAULT_ACCOUNT=123456789012
CDK_DEFAULT_REGION=ap-northeast-1
CORS_ORIGIN=https://xxx.cloudfront.net
ADMIN_EMAILS=admin@example.com
FRONTEND_URL=https://xxx.cloudfront.net
STRIPE_SECRET_KEY=sk_xxx

Deploy Commands

bash
cd cdk

# 差分確認(デプロイ前に必ず実行)
npx cdk diff

# 全スタックデプロイ
npx cdk deploy --all

# 個別デプロイ(推奨順序)
npx cdk deploy TaihoAppDatabaseStack
npx cdk deploy TaihoAppCognitoStack
npx cdk deploy TaihoAppLambdaStack
npx cdk deploy TaihoAppApiGatewayStack
npx cdk deploy TaihoAppFrontendStack

Didn't find tool you were looking for?

Be as detailed as possible for better results