AWS SAM et CDK pour le serverless et l'IaC

Automatiser les déploiements sur AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Un fichier YAML de 2 000 lignes

yaml

  • Une Lambda + API Gateway ont gonflé à 2 000 lignes de YAML
  • Chaque rôle IAM, groupe de logs et autorisation détaillés
  • Une coquille au milieu d'une stratégie d'autorisations
  • SAM et CDK réduisent cela à quelques lignes
Automatiser les déploiements sur AWS

AWS SAM en bref

sam

  • SAM est une extension CloudFormation pour le serverless
  • Types concis : AWS::Serverless::Function, ::Api
  • Le CLI SAM construit, package et déploie
  • Les modèles deviennent du CloudFormation brut
Automatiser les déploiements sur AWS

Le workflow SAM

workflow

  • sam init : générer un projet depuis un modèle
  • sam validate : vérifier le modèle avant build
  • sam build : compiler et packager le code
  • sam deploy : déployer dans une pile CloudFormation
Automatiser les déploiements sur AWS

AWS CDK en bref

  • Décrivez l'infra en TypeScript, JavaScript, Python, Java, C#, Go
  • Compilez en CloudFormation avec cdk synth
  • Déployez avec cdk deploy ; reconstruit à chaque changement
  • Mêmes notions de piles et ressources que CloudFormation

cdk

Automatiser les déploiements sur AWS

Niveaux de constructs CDK

  • L1 : enveloppe 1‑pour‑1 d'une ressource CloudFormation
  • L2 : constructs prêts à l'emploi avec bons réglages par défaut
  • L3 : modèles regroupant plusieurs ressources
  • Plus haut niveau = moins de lignes, moins de contrôle

construct

Automatiser les déploiements sur AWS

Quand utiliser chaque option

  • CloudFormation brut : contrôle total, adapté aux ops
  • SAM : applis 100 % serverless, voie la plus rapide
  • CDK : infra complexe, équipes orientées langage
  • Les trois déploient de la même façon en dessous

each

Automatiser les déploiements sur AWS

Les trois déploient via CloudFormation

funnel

  • SAM se transforme en CloudFormation
  • CDK synthétise en CloudFormation
  • La pile obtenue utilise les mêmes events, drift, change sets
  • Les retours arrière fonctionnent pareil, peu importe l'outil
Automatiser les déploiements sur AWS

Passons à la pratique !

Automatiser les déploiements sur AWS

Preparing Video For Download...