Use Cases

So automatisieren Sie AWS-Deployments mit Claude Code [Praxisleitfaden]

So automatisieren Sie AWS-Deployments mit Claude Code [Praxisleitfaden]. Ein praktischer Leitfaden mit Codebeispielen.

Warum AWS-Deployments mit Claude Code automatisieren

Das Deployment auf AWS umfasst das Schreiben von Konfigurationsdateien, die Verwaltung von IAM-Rollen, das Setzen von Umgebungsvariablen und andere fehleranfällige Aufgaben. Claude Code kann bei allem unterstützen – von der Generierung von Infrastrukturcode bis zur Ausführung von Deployments – und versteht dabei Ihre Projektstruktur.

Ein AWS CDK-Projekt aufbauen

Hier ein Beispiel, wie Claude Code gebeten wird, Infrastruktur mit CDK aufzubauen.

> Erstelle einen ECS Fargate Stack mit AWS CDK.
> Die App ist Node.js mit einem vorgeschalteten ALB.
> Konfiguriere es so, dass Umgebungsvariablen aus dem SSM Parameter Store geladen werden.

Schauen wir uns den CDK-Code an, den Claude Code generiert.

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-Integration

Sie können auch das Infrastrukturmanagement mit Terraform durch Claude Code optimieren.

> Definiere S3 + CloudFront Static Site Hosting in terraform/main.tf.
> Richte auch WAF mit Rate Limiting ein.
> Überprüfe die terraform plan-Ausgabe und sage mir, ob es Probleme gibt.
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-Integration

Sie können Claude Code auch bitten, Ihre CI/CD-Pipeline einzurichten.

> Erstelle einen GitHub Actions Workflow.
> Er soll automatisch CDK deploy bei Push auf den main-Branch ausführen.
> Verwende OIDC-Authentifizierung zur Verbindung mit 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: us-east-1

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

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

Deployment-Fehlerbehebung

Wenn Deployment-Fehler auftreten, können Sie Claude Code auch um eine Analyse bitten.

> Ich habe folgenden Fehler von cdk deploy bekommen. Erkläre die Ursache und wie ich es beheben kann:
> Error: The security group 'sg-xxx' does not exist

Claude Code gleicht die Fehlermeldung mit Ihrer Projektstruktur ab, um VPC- oder Security-Group-Konfigurationsprobleme zu identifizieren. Für allgemeine Fehlerbehebungs-Workflows siehe 10 Tipps zur Verdreifachung Ihrer Claude Code-Produktivität.

Best Practices für die Deployment-Automatisierung

  1. Umgebungskonfigurationen trennen: Umgebungen über context in cdk.json wechseln
  2. Drift-Erkennung: Regelmäßig cdk diff ausführen, um Abweichungen zu prüfen
  3. Rollback-Strategie: Blue/Green-Deployment-Konfigurationen im Voraus vorbereiten

Wenn Sie diese Einstellungen in CLAUDE.md dokumentieren, generiert Claude Code stets Code, der den Richtlinien Ihres Projekts entspricht. Zur CLAUDE.md-Nutzung siehe den kompletten CLAUDE.md-Leitfaden.

Zusammenfassung

Mit Claude Code können Sie den gesamten Deployment-Workflow optimieren – vom AWS-Infrastruktur-Setup bis zur CI/CD-Pipeline-Konfiguration. Es funktioniert gleichermaßen mit CDK, Terraform und SAM. Beginnen Sie mit einem kleinen Stack und erweitern Sie Ihre Automatisierung schrittweise.

Weitere Informationen zu Claude Code finden Sie in der offiziellen Anthropic-Dokumentation. Für AWS-Best-Practices siehe das AWS Well-Architected Framework.

#Claude Code #AWS #deployment #CDK #infrastructure automation