Aller au contenu principal

AWS CDK

Overview

AWS Cloud Development Kit (CDK) est un framework d'Infrastructure as Code qui permet de définir l'infrastructure AWS en utilisant des langages de programmation familiers (TypeScript, JavaScript, Python, Java, C#, Go). Au lieu d'écrire des templates CloudFormation en JSON ou YAML, tu peux utiliser du code dans ton langage préféré pour créer et gérer des ressources AWS.

Le CDK compile le code en templates CloudFormation, permettant de bénéficier de la puissance de CloudFormation tout en utilisant des abstractions de haut niveau, la réutilisabilité du code, et les outils de développement standard (IDE, tests, etc.).

AWS CDK fournit des constructs (abstractions) de différents niveaux : L1 (low-level, correspondance 1:1 avec CloudFormation), L2 (abstractions simplifiées), L3 (patterns et architectures complètes).


Informations essentielles

PropriétéValeur
Site officielhttps://aws.amazon.com/cdk/
LicenceApache 2.0
NationalitéÉtats-Unis (Amazon Web Services)
TypeInfrastructure as Code pour AWS, via langages de programmation
DéploiementCLI, CI/CD, AWS CloudFormation
DifficultéIntermédiaire
TechnologiesTypeScript, Python, Java, C#, Go, CloudFormation

TL;DR

AWS CDK est idéal si tu travailles exclusivement avec AWS et veux définir l'infrastructure avec des langages de programmation plutôt que YAML/JSON. Il offre des abstractions de haut niveau, une bonne réutilisabilité, et une intégration naturelle avec les services AWS. L'outil convient particulièrement aux équipes développant principalement sur AWS et souhaitant réutiliser leurs compétences en programmation. En contrepartie, il est spécifique à AWS (pas de support multi-cloud), et la courbe d'apprentissage peut être significative. La compilation en CloudFormation peut limiter certaines optimisations.


Compatibilité et intégrations

  • Cloud provider : AWS uniquement
  • Langages supportés : TypeScript, JavaScript, Python, Java, C#, Go
  • Intégration : CloudFormation, AWS SAM, CI/CD pipelines
  • Écosystème : Construct Hub pour constructs réutilisables
  • IDE : support complet avec autocomplétion dans les IDE standard

Avantages

  • Langages de programmation familiers (TypeScript, Python, etc.)
  • Abstractions de haut niveau pour simplifier la création de ressources
  • Réutilisabilité via constructs et libraries
  • Tests unitaires et d'intégration possibles
  • IDE support (autocomplétion, refactoring)
  • Intégration native avec l'écosystème AWS

Limites

  • Spécifique à AWS (pas de support multi-cloud)
  • Courbe d'apprentissage pour maîtriser les concepts CDK
  • Compilation en CloudFormation peut générer des templates volumineux
  • Dépendance aux mises à jour des constructs pour nouvelles fonctionnalités AWS
  • Moins flexible que CloudFormation pour certains cas avancés

Ressources