Use Cases

Claude CodeでAWSデプロイを自動化する方法【実践ガイド】

Claude Codeを使ってAWS環境へのデプロイを自動化する手順を解説。CDK・Terraform・SAMを活用した実践的なデプロイフローを紹介します。

なぜClaude CodeでAWSデプロイを自動化するのか

AWSへのデプロイは、設定ファイルの記述、IAMロールの管理、環境変数の設定など手間が多く、ミスが発生しやすい工程です。Claude Codeはプロジェクトの構成を理解した上で、インフラコードの生成からデプロイの実行まで一貫して支援できます。

AWS CDKプロジェクトの構築

まずはCDKを使ったインフラ構築をClaude Codeに依頼する例です。

> AWS CDKでECS Fargateのスタックを作成して。
> アプリはNode.jsで、ALBを前段に配置して。
> 環境変数はSSM Parameter Storeから取得する構成にして。

Claude Codeが生成するCDKコードの例を見てみましょう。

import * as cdk from 'aws-cdk-lib';
import * as ecs from 'aws-cdk-lib/aws-ecs';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
import * as elbv2 from 'aws-cdk-lib/aws-elasticloadbalancingv2';
import * as ssm from 'aws-cdk-lib/aws-ssm';

export class AppStack extends cdk.Stack {
  constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    const vpc = new ec2.Vpc(this, 'AppVpc', { maxAzs: 2 });

    const cluster = new ecs.Cluster(this, 'AppCluster', { vpc });

    const taskDef = new ecs.FargateTaskDefinition(this, 'TaskDef', {
      memoryLimitMiB: 512,
      cpu: 256,
    });

    const dbHost = ssm.StringParameter.valueForStringParameter(
      this, '/app/prod/DB_HOST'
    );

    taskDef.addContainer('app', {
      image: ecs.ContainerImage.fromAsset('./'),
      portMappings: [{ containerPort: 3000 }],
      environment: { DB_HOST: dbHost },
      logging: ecs.LogDrivers.awsLogs({ streamPrefix: 'app' }),
    });

    const service = new ecs.FargateService(this, 'Service', {
      cluster,
      taskDefinition: taskDef,
      desiredCount: 2,
    });

    const lb = new elbv2.ApplicationLoadBalancer(this, 'ALB', {
      vpc,
      internetFacing: true,
    });

    const listener = lb.addListener('Listener', { port: 80 });
    listener.addTargets('Target', {
      port: 3000,
      targets: [service],
      healthCheck: { path: '/health' },
    });
  }
}

Terraformとの連携

Terraformを使ったインフラ管理もClaude Codeで効率化できます。

> terraform/main.tf にS3 + CloudFrontの静的サイトホスティングを定義して。
> WAFでレートリミットも設定して。
> terraform plan の結果を確認して問題がなければ教えて。
resource "aws_s3_bucket" "site" {
  bucket = "my-app-static-site"
}

resource "aws_cloudfront_distribution" "cdn" {
  origin {
    domain_name = aws_s3_bucket.site.bucket_regional_domain_name
    origin_id   = "s3-origin"

    s3_origin_config {
      origin_access_identity = aws_cloudfront_origin_access_identity.oai.cloudfront_access_identity_path
    }
  }

  enabled             = true
  default_root_object = "index.html"

  default_cache_behavior {
    allowed_methods  = ["GET", "HEAD"]
    cached_methods   = ["GET", "HEAD"]
    target_origin_id = "s3-origin"
    viewer_protocol_policy = "redirect-to-https"

    forwarded_values {
      query_string = false
      cookies { forward = "none" }
    }
  }

  restrictions {
    geo_restriction { restriction_type = "none" }
  }

  viewer_certificate {
    cloudfront_default_certificate = true
  }
}

GitHub Actionsとの統合

CI/CDパイプラインの構築もClaude Codeに依頼できます。

> GitHub Actionsのワークフローを作成して。
> mainブランチへのpushで自動的にCDKデプロイを実行する構成で。
> OIDC認証でAWSに接続して。
name: Deploy to AWS
on:
  push:
    branches: [main]

permissions:
  id-token: write
  contents: read

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: aws-actions/configure-aws-credentials@v4
        with:
          role-to-assume: arn:aws:iam::123456789012:role/deploy-role
          aws-region: ap-northeast-1

      - uses: actions/setup-node@v4
        with:
          node-version: 20

      - run: npm ci
      - run: npx cdk deploy --require-approval never

デプロイ時のトラブルシューティング

デプロイでエラーが発生した場合も、Claude Codeに解析を依頼できます。

> cdk deploy で以下のエラーが出た。原因と修正方法を教えて:
> Error: The security group 'sg-xxx' does not exist

Claude Codeはエラーメッセージとプロジェクト構成を照合し、VPCやセキュリティグループの設定ミスを特定してくれます。基本的なトラブル対応の流れはClaude Codeの生産性を3倍にする10のTipsを参考にしてください。

デプロイ自動化のベストプラクティス

  1. 環境ごとの設定分離: cdk.jsoncontext で環境を切り替える
  2. ドリフト検知: 定期的に cdk diff を実行して差分を確認
  3. ロールバック戦略: Blue/Greenデプロイメントの設定を事前に用意

これらの設定をCLAUDE.mdに記述しておけば、Claude Codeが常にプロジェクトの方針に沿ったコードを生成します。CLAUDE.mdの活用方法はCLAUDE.mdの書き方完全ガイドで詳しく解説しています。

まとめ

Claude Codeを使えば、AWSインフラの構築からCI/CDパイプラインの設定まで、デプロイに関わる一連の作業を効率化できます。CDK・Terraform・SAMいずれの構成でも対応可能です。まずは小さなスタックから始めて、段階的に自動化を広げていきましょう。

Claude Codeの詳細はAnthropic公式ドキュメントをご覧ください。AWSのベストプラクティスはAWS Well-Architected Frameworkも参考になります。

#Claude Code #AWS #デプロイ #CDK #インフラ自動化