mcpField
A
aws-cdk-development

aws-cdk-development

github.com/aws-samplesクラウド・DevOps5368 回インストール9 週間前に更新
リポジトリ

aws-cdk-development について

AWS CDK で AWS インフラを構築・検証する開発者向けのスキルです。MCP による CDK の指針と AWS ドキュメントの確認に加え、デプロイ前の多層検証手順を扱います。

主な機能

  1. 01MCP による CDK コンストラクトの案内
  2. 02AWS 情報とリージョンの確認
  3. 03Lambda コンストラクトの提案
  4. 04cdk-nag による合成時検証
  5. 05ビルド、テスト、スタック検査

活用シーン

  1. 01CDK スタックの作成やリファクタリング
  2. 02AWS サービスとリージョンの利用可否確認
  3. 03Lambda 関数向けコンストラクトの選定
  4. 04デプロイ前のスタック検証

MCP 対応

AWS ドキュメントと CDK の MCP サーバーを統合しています。最新の AWS サービス情報や、CDK コンストラクトの指針、提案、設定方法を確認できます。

インストール

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

$npx skills add https://github.com/aws-samples/sample-agent-skills-for-builders --skill aws-cdk-development

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

同梱ファイル

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

README.md
references/
cdk-patterns.md
scripts/
validate-stack.sh

詳細

AWS CDK 開発

このスキルでは、最新の AWS ナレッジや CDK ユーティリティにアクセスするための MCP サーバーを統合し、Cloud Development Kit(CDK)を使用した AWS インフラストラクチャの開発に関する包括的なガイダンスを提供します。

AWS ドキュメントの要件

回答する前に、必ず MCP ツール(mcp__aws-mcp__* または mcp__*awsdocs*__*)を使用して AWS の情報を確認してください。aws-mcp-setup 依存関係は自動的に読み込まれます。MCP ツールを利用できない場合は、そのスキルのセットアップ手順をユーザーに案内してください。

統合された MCP サーバー

このスキルには、プラグインで自動的に設定される CDK MCP サーバーが含まれています。

AWS CDK MCP サーバー

使用する場面:CDK 固有のガイダンスやユーティリティが必要な場合

  • CDK コンストラクトの推奨事項を取得する
  • CDK のベストプラクティスを参照する
  • CDK パターンの提案にアクセスする
  • CDK の設定を検証する
  • CDK 固有の API に関する支援を受ける

重要:CDK コンストラクトに関するガイダンスや高度な CDK 操作には、このサーバーを活用してください。

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

次の場合にこのスキルを使用してください。

  • 新しい CDK スタックまたはコンストラクトを作成する
  • 既存の CDK インフラストラクチャをリファクタリングする
  • CDK 内で Lambda 関数を実装する
  • AWS CDK のベストプラクティスに従う
  • デプロイ前に CDK スタックの設定を検証する
  • AWS サービスの機能とリージョンでの提供状況を確認する

CDK の基本原則

リソースの命名

重要:CDK コンストラクトでリソース名の指定が任意の場合、名前を明示的に指定しないでください。

理由:CDK が生成する名前を使用すると、次のことが可能になります。

  • 再利用可能なパターン:同じコンストラクト/パターンを競合なく複数回デプロイできます
  • 並列デプロイ:同じリージョン内で複数のスタックを同時にデプロイできます
  • より整理された共有ロジック:パターンや共有コードを名前の衝突なく複数回初期化できます
  • スタックの分離:各スタックに一意に識別されるリソースが自動的に割り当てられます

パターン:CloudFormation の命名メカニズムを使用して、CDK に一意の名前を自動生成させます。

// ❌ BAD - Explicit naming prevents reusability and parallel deployments
new lambda.Function(this, 'MyFunction', {
  functionName: 'my-lambda',  // Avoid this
  // ...
});

// ✅ GOOD - Let CDK generate unique names
new lambda.Function(this, 'MyFunction', {
  // No functionName specified - CDK generates: StackName-MyFunctionXXXXXX
  // ...
});

セキュリティに関する注意:異なる環境(dev、staging、prod)では、単一アカウント内でのリソース命名に頼るのではなく、別々の AWS アカウントを使用するという AWS Security Pillar のベストプラクティスに従ってください。アカウントレベルで分離することで、より強固なセキュリティ境界を実現できます。

Lambda 関数の開発

ランタイムに応じて適切な Lambda コンストラクトを使用してください。

TypeScript/JavaScript:@aws-cdk/aws-lambda-nodejs を使用します

import { NodejsFunction } from 'aws-cdk-lib/aws-lambda-nodejs';

new NodejsFunction(this, 'MyFunction', {
  entry: 'lambda/handler.ts',
  handler: 'handler',
  // Automatically handles bundling, dependencies, and transpilation
});

Python:@aws-cdk/aws-lambda-python を使用します

import { PythonFunction } from '@aws-cdk/aws-lambda-python-alpha';

new PythonFunction(this, 'MyFunction', {
  entry: 'lambda',
  index: 'handler.py',
  handler: 'handler',
  // Automatically handles dependencies and packaging
});

利点:

  • バンドルと依存関係の管理を自動化
  • トランスパイルを自動処理
  • 手動でのパッケージングが不要
  • 一貫性のあるデプロイパターン
デプロイ前の検証

包括的な CDK の品質チェックには、多層検証戦略を使用してください。

レイヤー 1:IDE でのリアルタイムフィードバック(推奨)

TypeScript/JavaScript プロジェクトの場合:

合成時の検証を行うために cdk-nag をインストールします。

npm install --save-dev cdk-nag

CDK アプリに追加します。

import { Aspects } from 'aws-cdk-lib';
import { AwsSolutionsChecks } from 'cdk-nag';

const app = new App();
Aspects.of(app).add(new AwsSolutionsChecks());

任意 — VS Code ユーザー向け:ファイル保存時により迅速なフィードバックを得るには、CDK NAG Validator extension をインストールしてください。

Python/Java/C#/Go プロジェクトの場合:cdk-nag はすべての CDK 言語で利用でき、同じ合成時検証を提供します。

レイヤー 2:合成時の検証(必須)
  1. cdk-nag を使った合成:包括的なルールでスタックを検証します

    cdk synth  # cdk-nag runs automatically via Aspects
    
  2. ドキュメント化された理由を添えて、正当な例外を抑制します。

    import { NagSuppressions } from 'cdk-nag';
    
    // Document WHY the exception is needed
    NagSuppressions.addResourceSuppressions(resource, [
      {
        id: 'AwsSolutions-L1',
        reason: 'Lambda@Edge requires specific runtime for CloudFront compatibility'
      }
    ]);
    
レイヤー 3:コミット前のセーフティネット
  1. ビルド:コンパイルが成功することを確認します

    npm run build  # or language-specific build command
    
  2. テスト:単体テストと統合テストを実行します

    npm test  # or pytest, mvn test, etc.
    
  3. 検証スクリプト:メタレベルのチェックを行います

    ./scripts/validate-stack.sh
    

検証スクリプトでは、次の項目を重点的に確認します。

  • 言語の検出
  • テンプレートのサイズとリソース数の分析
  • 合成が成功したことの確認
  • (注:詳細なアンチパターンチェックは cdk-nag が担当します)

ワークフローのガイドライン

開発ワークフロー
  1. 設計:インフラストラクチャのリソースと関係を計画します
  2. AWS サービスの確認:AWS Documentation MCP を使用して、サービスの利用可能状況と機能を確認します
    • 必要なすべてのサービスについて、リージョンごとの利用可能状況を確認します
    • サービスの制限とクォータを確認します
    • 最新の API 仕様を確認します
  3. 実装:ベストプラクティスに従って CDK コンストラクトを記述します
    • CDK MCP サーバーを使用して、コンストラクトに関する推奨事項を確認します
    • MCP ツールを使って CDK のベストプラクティスを参照します
  4. 検証:デプロイ前チェックを実行します(上記を参照)
  5. 合成:CloudFormation テンプレートを生成します
  6. レビュー:合成されたテンプレートの正確性を確認します
  7. デプロイ:ターゲット環境にデプロイします
  8. 確認:リソースが正しく作成されたことを確認します
スタックの構成
  • 複雑なアプリケーションにはネストされたスタックを使用します
  • 関心事を論理的なコンストラクト境界に分けます
  • 他のスタックで必要になる可能性のある値をエクスポートします
  • 環境固有の設定には CDK コンテキストを使用します
テスト戦略
  • 個々のコンストラクトをユニットテストします
  • スタックの合成をインテグレーションテストします
  • CloudFormation テンプレートをスナップショットテストします
  • リソースのプロパティと関係を検証します

MCP サーバーを効果的に使用する

AWS Documentation MCP を使用するタイミング

実装前に必ず確認してください:

  • 新しい AWS サービスの機能や設定
  • ターゲットリージョンでのサービスの利用可能状況
  • API パラメーターの仕様
  • サービスの制限とクォータ
  • AWS サービスのセキュリティに関するベストプラクティス

使用例:

  • 「Lambda が Python 3.13 ランタイムをサポートしているか確認する」
  • 「DynamoDB が eu-south-2 で利用可能か確認する」
  • 「現在の Lambda のタイムアウト制限を教えてください」
  • 「最新の S3 暗号化オプションを取得する」
CDK MCP サーバーを使用するタイミング

CDK 固有のガイダンスに活用します:

  • CDK コンストラクトの選択と使用方法
  • CDK API パラメーターのオプション
  • CDK のベストプラクティスパターン
  • コンストラクトのプロパティ設定
  • CDK 固有の最適化

使用例:

  • 「API Gateway REST API に推奨される CDK コンストラクトは何ですか?」
  • 「NodejsFunction のバンドルオプションを設定する方法は?」
  • 「CDK スタック構成のベストプラクティス」
  • 「自動スケーリングに対応した DynamoDB 用 CDK コンストラクト」
MCP 使用のベストプラクティス
  1. まず確認する:新しい機能を実装する前に、必ず AWS Documentation MCP を確認します
  2. リージョンを検証する:ターゲットのデプロイリージョンでサービスの利用可能状況を確認します
  3. CDK のガイダンスを活用する:コンストラクト固有の推奨事項には CDK MCP を使用します
  4. 最新情報を保つ:MCP サーバーでは、ナレッジカットオフ以降の最新情報を取得できます
  5. 情報源を組み合わせる:包括的なガイダンスを得るために、スキルのパターンと MCP サーバーの両方を使用します

CDK パターンのリファレンス

CDK のパターン、アンチパターン、アーキテクチャに関するガイダンスの詳細については、次の包括的なリファレンスを参照してください。

ファイル:references/cdk-patterns.md

このリファレンスには、以下が含まれています。

  • 一般的な CDK パターンとそのユースケース
  • 避けるべきアンチパターン
  • セキュリティに関するベストプラクティス
  • コスト最適化の戦略
  • パフォーマンスに関する考慮事項

追加リソース

  • 検証スクリプト:scripts/validate-stack.sh - デプロイ前の検証
  • CDK パターン:references/cdk-patterns.md - 詳細なパターンライブラリ
  • AWS Documentation MCP:最新の AWS 情報を取得するために統合されています
  • CDK MCP サーバー:CDK 固有のガイダンスを得るために統合されています

GitHub Actions の統合

リポジトリに GitHub Actions のワークフローファイルがある場合は、コミット前に .github/workflows/ で定義されたすべてのチェックに合格することを確認してください。これにより、CI/CD の失敗を防ぎ、コード品質の基準を維持できます。

コメント