AWS開発×AI:CDK・SAM・CloudFormation生成

AIを知りたい

AWSのインフラ構築をAIに手伝ってもらいたいんですが、CDKとSAMとCloudFormationのどれを使えばいいですか?

AIエンジニア

用途と好みに応じて選ぶのがベストですが、AIとの相性で言えばCDKが最も効率的です。TypeScript/Pythonのプログラミング言語で書けるため、AIのコード生成能力を最大限に活用できます。型補完が効くのでAIの生成結果の正確性も高くなります。

AIを知りたい

それぞれの違いを教えてください!

AIエンジニア

CDKはプログラミング言語でインフラを定義し、SAMはサーバーレスに特化した簡易テンプレート、CloudFormationはAWSネイティブのJSON/YAMLテンプレートです。AIの支援を受けながら、プロジェクトの特性に合った選択をしましょう。新規プロジェクトならCDK、Lambda中心ならSAM、既存資産があるならCloudFormationが基本方針です。

AWS開発×AIとは

AWS開発×AIとは、AIツールを活用してAWSクラウドインフラの構築・運用を効率化する手法です。CDK(Cloud Development Kit)、SAM(Serverless Application Model)、CloudFormationのテンプレート生成をAIが支援し、Lambda関数のコード生成、API Gatewayの設定、IAMポリシーの設計まで自動化できます。特にCDKはTypeScriptで記述できるため、AIコーディングツールとの親和性が高く、L2 Constructによる抽象化で少ないコード量で複雑なインフラを定義できます。

CDK・SAM・CloudFormation徹底比較

AIを知りたい

3つのツールの違いを詳しく見せてください!

AIエンジニア

主要な比較ポイントを整理しましょう。プロジェクトの規模やチームのスキルセットによって最適な選択が変わります。

項目 AWS CDK SAM CloudFormation
記述言語 TypeScript/Python/Java等 YAML JSON/YAML
抽象度 高い(L2/L3 Construct) 中(サーバーレス特化) 低い(生リソース定義)
AI生成精度 ★★★(コード補完が効く) ★★☆(YAML構文対応) ★★☆(冗長だが正確)
学習コスト 中(プログラミング知識必要) 低(サーバーレス限定) 高(全リソース理解必要)
ユースケース 大規模・汎用 Lambda中心アプリ 企業の既存資産
ローカルテスト CDK Synth + CDK Assert SAM Local(Lambda実行可) CFn Linter

AIによるCDK Construct生成とLambda開発

AIを知りたい

CDKでAIを使うとどんなことができるんですか?

AIエンジニア

AIに「API Gateway + Lambda + DynamoDBのサーバーレスAPIをCDKで作って。認証はCognitoで」と指示すると、スタック定義、Construct、Lambda関数コード、DynamoDBテーブル設計まで一括生成してくれます。CDKのL2 Constructを活用した簡潔なコードが出力されるのが特徴です。

AIを知りたい

Lambda関数のコードもAIが書いてくれるんですか?

AIエンジニア

はい。「DynamoDBからユーザー情報を取得するLambda関数をTypeScriptで。入力バリデーション、エラーハンドリング、ログ出力付きで」と指示すれば、完全な関数コードが生成されます。さらにCDKスタック内でのLambda定義、環境変数の設定、IAMロールの最小権限付与まで含めたコードを一度に生成できますよ。

// AIが生成するCDKスタック例
import * as cdk from "aws-cdk-lib";
import * as lambda from "aws-cdk-lib/aws-lambda-nodejs";
import * as apigw from "aws-cdk-lib/aws-apigateway";
import * as dynamodb from "aws-cdk-lib/aws-dynamodb";

export class ApiStack extends cdk.Stack {
  constructor(scope: cdk.App, id: string) {
    super(scope, id);
    const table = new dynamodb.Table(this, "Users", {
      partitionKey: { name: "id", type: dynamodb.AttributeType.STRING },
      billingMode: dynamodb.BillingMode.PAY_PER_REQUEST,
    });
    const fn = new lambda.NodejsFunction(this, "Handler", {
      entry: "lambda/users.ts",
      environment: { TABLE_NAME: table.tableName },
    });
    table.grantReadWriteData(fn);
    new apigw.LambdaRestApi(this, "Api", { handler: fn });
  }
}

実践的な構成パターンとベストプラクティス

AIを知りたい

よく使うAWSの構成パターンをAIに生成してもらえますか?

AIエンジニア

代表的なパターンをAIに依頼する際のプロンプト例と合わせて紹介します。これらのパターンはAIの学習データに豊富に含まれているため、高精度で生成可能です。

構成パターン 主要サービス AIへの指示例
サーバーレスAPI API GW + Lambda + DynamoDB 「CRUD APIをサーバーレスで構築して」
コンテナAPI ALB + ECS Fargate + RDS 「Fargateのコンテナサービスを作って」
静的サイト配信 S3 + CloudFront + Route53 「SPAの配信環境をCDKで作って」
非同期処理 SQS + Lambda + DLQ 「キューベースの非同期処理基盤を作って」
イベント駆動 EventBridge + Step Functions 「イベント駆動ワークフローを設計して」
データパイプライン Kinesis + Lambda + S3 + Athena 「リアルタイムデータ処理基盤を作って」

コスト最適化とセキュリティのAI支援

AIを知りたい

AWS開発でAIを使うときの注意点はありますか?

AIエンジニア

IAMポリシーの最小権限原則は必ず人間が確認してください。AIは動作を優先して広い権限を付与しがちです。また、CDKのcdk diffコマンドでデプロイ前に差分を確認する習慣も重要です。コスト面では、AIが生成した構成のランニングコストをAWS Pricing Calculatorで見積もることをおすすめします。

AIを知りたい

コスト削減のアドバイスもAIにもらえますか?

AIエンジニア

非常に有効です。「この構成の月額コストを見積もって、コスト削減のオプションを提案して」と依頼すると、Reserved Instances、Savings Plans、Spotインスタンスの活用、不要リソースの特定などを提案してくれます。特にLambdaのメモリ設定やDynamoDBのキャパシティモードの選択は、コストに大きく影響する部分なのでAIに相談する価値があります。

AWS開発タスク AI活用度 推奨ツール
CDKスタック生成 ★★★ Claude Code / Copilot
Lambda関数実装 ★★★ Claude Code
IAMポリシー設計 ★★☆ Claude Code(要レビュー)
コスト見積もり ★★☆ Claude + AWS Calculator
アーキテクチャ設計 ★★★ Claude Code
障害対応・運用 ★★☆ Claude + CloudWatch

まとめとして、AWS開発にAIを活用することで、CDK Constructの生成からLambda関数の実装、デプロイパイプラインの構築、コスト最適化まで大幅に効率化できます。特にCDKはTypeScriptで記述できるためAIコーディングツールとの親和性が高く、複雑なマルチサービス構成も自然言語の指示で生成可能です。SAMはサーバーレスに特化したシンプルな選択肢、CloudFormationは既存資産との互換性が強みです。プロジェクトの規模と特性に応じて最適なツールを選び、AIの力で効率的なクラウド開発を実現しましょう。IAMポリシーの確認とcdk diffによる事前チェックは必ず実施してください。

関連記事