Comme décrit dans la page précédente, nous allons piloter des infrastructures au complet dans AWS.

Comme vous vous en doutez, pour effectuer ces actions, nous allons devoir envoyer des commandes au cloud. Petit tour d'horizon des solutions disponibles.

La console web

Classique parmi les classiques, l'interface web est une des solutions par lesquelles on peut passer pour déployer des applications. Néanmoins, comme vous vous en doutez, l'interface web est très vite limitée dès que l'on va essayer de déployer des infrastructures complexes. De plus lorsqu'on va vouloir industrialiser nos déploiements, l'interface web n'est pas du tout adaptée.

CloudFormation

CloudFormation est l'un des services fournis par Amazon Web Services. CloudFormation est accessible depuis la console web, et en ligne de commande. Basé sur du json ou yaml, il s'agit d'un outil d'Infra as code (ou IasC), c'est-à-dire un outil permettant de déployer des infrastructures en les décrivant dans un fichier de configuration. A noter que CloudFormation fonctionne exclusivement sur et pour AWS.

Terraform

Terraform est un outil édité par HashiCorp, éditeur spécialisé dans les outils de déploiement continus. Terraform est, tout comme CloudFormation, un outil d'Infra as code. Terraform a besoin d'un stockage fiable pour stocker ses fichiers d'état qui lui permettent de savoir où en est son déploiement. Contrairement à CloudFormation, Terraform peut faire du déploiement "multi-provider" sur plusieurs fournisseurs en parallèle, y compris entre une infrastructure Datacenter et Cloud, voire entre plusieurs clouds.

Les SDKs AWS

AWS met aussi à disposition des SDK pour piloter les ressources AWS. Dans ce tutoriel, nous exploiterons boto, le SDK fourni pour Python. Il existe des SDK pour de nombreux languages.

AWS CDK

Arrivé dernièrement dans l'univers AWS, CDK est un outil fourni par AWS pour créer des déploiements de manière simple. La différence par rapport à Terraform/CloudFormation réside dans le fait qu'au lieu d'être dans un language descriptif, le CDK s'utilise comme un SDK, au sein d'un langage de programmation. Tout comme le SDK, nous utiliserons CDK avec Python.

La ligne de commande (CLI) et l'API

Il est aussi possible de piloter AWS via sa CLI (que nous utiliserons régulièrement) pour piloter ou visualiser les éléments que l'on déploiera dans AWS.

A noter qu'il existe aussi une API mise à disposition pour piloter et interroger de la même manière AWS.

Les autres outils

Je ne décrirais pas ici tous les outils disponibles pour piloter AWS, on pourrait aussi citer Ansible par exemple, mais à mon sens, il exploite l'API AWS mais sans être aussi puissant que Terraform par exemple.

Quel outil choisir ?

Ce tutoriel sera possible via plusieurs outils. Vous êtes libre de choisir celui que vous voulez.

Attention toutefois, choisissez un outil et tenez-y vous! Mélanger les outils est toujours dangereux, et il est préférable de se limiter à un outil à la fois.

Si vous souhaitez changer d'outil durant ce tutoriel, détruisez tout, puis recréez votre infrastructure.

Page suivante : Le free tier d'AWS