PeakLab
Retour au glossaire

CDK (AWS Cloud Development Kit)

Framework open-source permettant de définir l'infrastructure cloud AWS avec des langages de programmation familiers comme TypeScript, Python ou Java.

Mis à jour le 23 avril 2026

AWS CDK (Cloud Development Kit) est un framework de développement logiciel qui permet de modéliser et provisionner des ressources d'infrastructure cloud AWS en utilisant des langages de programmation courants. Contrairement aux approches déclaratives traditionnelles, CDK exploite la puissance des langages orientés objet pour créer des abstractions réutilisables et des composants d'infrastructure hautement configurables. Le framework génère automatiquement des templates CloudFormation optimisés à partir du code développé.

Fondements de l'AWS CDK

  • Utilisation de langages de programmation impératifs (TypeScript, Python, Java, C#, Go) pour définir l'infrastructure
  • Architecture basée sur des constructs : composants réutilisables représentant des ressources AWS uniques ou des patterns architecturaux complets
  • Génération automatique de templates CloudFormation validés et optimisés lors de la synthèse
  • Écosystème de bibliothèques de constructs communautaires permettant d'accélérer le développement

Avantages stratégiques

  • Réduction drastique du code boilerplate grâce aux abstractions de haut niveau et aux valeurs par défaut intelligentes
  • Réutilisabilité et modularité accrues via des constructs personnalisés et des bibliothèques partagées
  • Détection des erreurs au moment de la compilation plutôt qu'au déploiement, réduisant les cycles de feedback
  • Intégration native avec les outils de développement (IDE, linters, tests unitaires, CI/CD)
  • Capacité à appliquer des patterns de conception logicielle (héritage, composition, polymorphisme) à l'infrastructure

Exemple concret

lib/api-stack.ts
import * as cdk from 'aws-cdk-lib';
import * as lambda from 'aws-cdk-lib/aws-lambda';
import * as apigateway from 'aws-cdk-lib/aws-apigateway';
import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
import { Construct } from 'constructs';

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

    // Table DynamoDB avec configuration optimale
    const table = new dynamodb.Table(this, 'ItemsTable', {
      partitionKey: { name: 'id', type: dynamodb.AttributeType.STRING },
      billingMode: dynamodb.BillingMode.PAY_PER_REQUEST,
      removalPolicy: cdk.RemovalPolicy.DESTROY,
      pointInTimeRecovery: true
    });

    // Fonction Lambda avec permissions automatiques
    const handler = new lambda.Function(this, 'ApiHandler', {
      runtime: lambda.Runtime.NODEJS_18_X,
      code: lambda.Code.fromAsset('lambda'),
      handler: 'index.handler',
      environment: {
        TABLE_NAME: table.tableName
      },
      timeout: cdk.Duration.seconds(30)
    });

    // Accorder les permissions de lecture/écriture
    table.grantReadWriteData(handler);

    // API Gateway avec intégration Lambda
    const api = new apigateway.RestApi(this, 'ItemsApi', {
      restApiName: 'Items Service',
      defaultCorsPreflightOptions: {
        allowOrigins: apigateway.Cors.ALL_ORIGINS,
        allowMethods: apigateway.Cors.ALL_METHODS
      }
    });

    const items = api.root.addResource('items');
    items.addMethod('GET', new apigateway.LambdaIntegration(handler));
    items.addMethod('POST', new apigateway.LambdaIntegration(handler));

    // Outputs
    new cdk.CfnOutput(this, 'ApiUrl', {
      value: api.url,
      description: 'API Gateway endpoint URL'
    });
  }
}

Cet exemple illustre comment CDK simplifie la création d'une architecture serverless complète. En quelques lignes de code TypeScript, nous définissons une table DynamoDB, une fonction Lambda avec ses permissions, et une API Gateway entièrement configurée. CDK gère automatiquement les dépendances, les rôles IAM et la configuration réseau.

Mise en œuvre

  1. Initialiser un projet CDK avec `cdk init app --language=typescript` et installer les dépendances nécessaires
  2. Définir les stacks et constructs dans des fichiers séparés pour maintenir une architecture modulaire et testable
  3. Implémenter des tests unitaires pour valider la logique de construction de l'infrastructure avec @aws-cdk/assert
  4. Utiliser `cdk synth` pour générer et examiner les templates CloudFormation avant déploiement
  5. Déployer avec `cdk deploy` en spécifiant les stacks et les contextes d'environnement appropriés
  6. Mettre en place un pipeline CI/CD avec `cdk-pipelines` pour automatiser les déploiements multi-environnements
  7. Documenter les constructs personnalisés et publier les patterns réutilisables dans un repository privé

Conseil professionnel

Adoptez une approche en trois niveaux de constructs : L1 (ressources brutes CloudFormation), L2 (constructs avec valeurs par défaut intelligentes), et L3 (patterns architecturaux complets). Commencez par utiliser les L2 constructs officiels, puis créez vos propres L3 constructs pour encapsuler les patterns spécifiques à votre organisation. Cela maximise la réutilisabilité tout en conservant la flexibilité nécessaire pour les cas d'usage complexes.

Outils et écosystème associés

  • CDK Patterns - Collection de patterns architecturaux prêts à l'emploi pour des cas d'usage courants
  • AWS Solutions Constructs - Bibliothèque de constructs validés suivant les meilleures pratiques AWS
  • cdk-nag - Outil d'analyse statique vérifiant la conformité aux standards de sécurité et aux meilleures pratiques
  • Projen - Générateur de projets et gestionnaire de configuration pour standardiser les projets CDK
  • CDK Pipelines - Construct de haut niveau pour créer des pipelines CI/CD self-mutating
  • LocalStack - Émulateur AWS local permettant de tester les stacks CDK sans déploiement cloud

AWS CDK représente une évolution majeure dans la gestion d'infrastructure cloud en rapprochant les pratiques DevOps et les méthodologies de développement logiciel. En permettant l'application de principes de génie logiciel à l'infrastructure (DRY, SOLID, tests automatisés), CDK accélère significativement les cycles de développement tout en améliorant la maintenabilité et la gouvernance des environnements cloud. Pour les organisations cherchant à industrialiser leurs déploiements AWS, CDK constitue un investissement stratégique offrant un retour sur investissement mesurable en termes de productivité et de réduction des erreurs.

Parlons de votre projet

Besoin d'expertise sur le sujet ?

Nos experts vous accompagnent de la stratégie à la mise en production. Échangeons 30 min sur votre projet.

L'argent est déjà sur la table.

En 1 heure, découvrez exactement combien vous perdez et comment le récupérer.

Agence de développement web, automatisation & IA

[email protected]
Newsletter

Recevez nos conseils tech et business directement dans votre boîte mail.

Suivez-nous
Crédit d'Impôt Innovation - PeakLab agréé CII