
Il est dĂ©sormais possible de se connecter en tant que dĂ©veloppeur ou admin Ă la console AWS. Cependant, ce support nâest pas adaptĂ© pour dĂ©velopper et dĂ©ployer de façon industrielle lâarchitecture du site. En effet, Jasmine et LĂ©o, les dĂ©veloppeurs de lâĂ©quipe, veulent utiliser des outils pour automatiser le plus possible le dĂ©ploiement des nouvelles fonctionnalitĂ©s quâils dĂ©veloppent. Par consĂ©quent, ils prĂ©fĂšrent utiliser des scripts en ligne de commandes, des SDK (Software Development Kit) et des pipelines CI/CD.
Ici, pour lâexemple, nous utiliserons un terminal pour interagir Ă distance avec les services AWS en ligne de commandes.
JusquâĂ maintenant nous nous sommes connectĂ©s Ă AWS Ă travers lâoutil AWS Management Console (voir image ci-dessous), qui fournit une interface utilisateur accessible depuis un navigateur web. Cet outil permet de crĂ©er et gĂ©rer vos ressources AWS.

Quelles sont les alternatives Ă AWS Management Console ?
AWS offre deux autres outils pour vous connectez Ă un compte :
AWS Command Line Interface (CLI) permet d'interagir avec les API des services AWS depuis un terminal Linux ou Windows via des commandes shell.
Voici un exemple de commande pour récupérer la liste de tous les buckets auxquels vous pouvez accéder.

La CLI AWS est open-source et vous pouvez retrouver lâensemble des lignes de commandes AWS dans la documentation AWS (en anglais) sur les commandes dans le CLI. Elle vous permettra dâĂ©crire des scripts afin de mieux gĂ©rer vos ressources. Concernant la commande utilisĂ©e en exemple, vous pouvez consulter la page dĂ©diĂ©e Ă la commande âlsâ oĂč figure dâautres options Ă employer.
AWS Software Developer Kit (SDK) permet d'interagir avec les API des services AWS de façon programmatique. En effet, câest un outil qui sâutilise avec un langage de programmation et que vous intĂ©grez dans vos applications. Il permet ainsi dâaccĂ©der aux services AWS depuis une application web, Mobile, Back, IoT, etc.
Il supporte plusieurs langages de programmation : C++, Kotlin, Javascript, Python, PHP, .NET, Ruby, Rust, Java, Go, Node.js, Swift.
Il s'intĂšgre Ă©galement dans les systĂšmes dâapplications mobiles Android, iOS, etc.
Contrairement Ă lâoutil AWS Management Console, oĂč il faut utiliser un mot de passe (et potentiellement une vĂ©rification MFA), AWS CLI et AWS SDK sont protĂ©gĂ©s par des Access Keys (clĂ©s dâaccĂšs). Ce sont des informations d'identification Ă long terme d'un utilisateur IAM ou de lâutilisateur racine. Elles se composent de deux parties :Â
Access Key ID : un ID de clé d'accÚs, par exemple AKIAIOSFODNN7EXAMPLE ;
Secret Access Key : une clé d'accÚs secrÚte, par exemple wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY .
Les Access Keys ne peuvent ĂȘtre gĂ©nĂ©rĂ©es que depuis la console AWS, comme dans lâimage suivante :

Pour installer la CLI AWS, reportez vous Ă la documentation officielle AWS sur l'installation de la CLI, qui vous indique comment faire en fonction de votre systĂšme dâexploitation Linux, MacOS ou Windows (voir image ci-dessous).

Puis, comme indiquĂ© dans la section prĂ©cĂ©dente, aprĂšs avoir créé et rĂ©cupĂ©rĂ© les Access Keys, configurez votre CLI AWS Ă partir de la commande `aws configure`. En gras se trouve ce que vous devrez renseigner.Â
$ aws configure
AWS Access Key ID [None]:Â AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]:Â wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]:Â eu-west-1
Default output format [None]:Â json
Ă noter quâil est Ă©galement possible dâaccĂ©der Ă la CLI AWS depuis le service AWS CloudShell, disponible depuis lâoutil AWS Management Console. Lâimage suivante montre comment lâutiliser.

Vous pouvez regarder lâinstallation et configuration de la CLI AWS ici :
Attardons-nous quelques instants sur la notion dâinfrastructure-as-code, une pratique importante de la culture DevOps que Jasmine et LĂ©o souhaiteraient mettre en place pour notre projet The Green Earth Post. Il sâagit dâun paradigme informatique qui dĂ©crit dans un langage informatique les logiciels Ă configurer et Ă installer sur un systĂšme, mais Ă©galement lâinfrastructure nĂ©cessaire Ă leur fonctionnement, comme les bases de donnĂ©es, la puissance de calcul ou les ressources de rĂ©seau. Comme pour un logiciel, il faut programmer les composants de lâinfrastructure sous forme de code exĂ©cutable facile Ă configurer, Ă installer et Ă supprimer.
Dans un projet de site web en entreprise, le dĂ©ploiement de lâinfrastructure et des logiciels se fait par le biais dâun pipeline CI/CD.Â
LâĂ©quipe de dĂ©veloppement programme la partie logiciel, en utilisant AWS SDK, et lâinfrastructure, sous forme de code avec AWS CloudFormation.Â
LâĂ©quipe peut Ă©galement dĂ©crire sous forme de scripts la maniĂšre de dĂ©ployer le tout avec AWS CLI.Â
Finalement, lâensemble du code et des scripts est âpoussĂ©â vers un registre git comme GitHub qui dĂ©clenche le dĂ©ploiement par un pipeline CI/CD.Â
Lâimage ci-dessous rĂ©capitule ce fonctionnement.

AWS met Ă disposition une suite de services pour la gestion du code et des pipelines CI/CD. Lâimage ci-dessous indique Ă quel niveau intervient chaque service. Il faut prĂ©ciser quâun pipeline CI/CD est gĂ©nĂ©ralement dĂ©coupĂ© en trois Ă©tapes :
le Build, pour gĂ©nĂ©rer les artefacts du code, ce sont des fichiers au format zip, jar, etc. ;Â
le Test, pour tester le code ;Â
le Deploy, pour dĂ©ployer lâinfrastructure et les programmes.

AWS CodeCommit met à disposition des registres git pour stocker et gérer les versions du code.
AWS CodeBuild est en charge dâexĂ©cuter les Ă©tapes de Build et de Test.
AWS CodeArtifact stocke les artefacts au format zip, jar ou docker produits lors de lâĂ©tape de Build dâun pipeline CI/CD.
AWS CodeDeploy dĂ©ploie au sein dâAWS lâinfrastructure et les programmes Ă partir des artefacts.
AWS CodePipeline permet dâorchestrer les services AWS CodeBuild, AWS CodeArtifact et AWS CodeDeploy.
Ce chapitre avait pour seul but dâintroduire les outils programmatiques AWS dans le cadre de la prĂ©paration Ă lâexamen. Pour la suite de la formation, nous utiliserons uniquement la console AWS.
Il existe 3 outils pour accéder au cloud AWS :
AWS Management Console ;
AWS CLI ;
AWS SDK.
Pour utiliser les deux derniers outils, il faut utiliser des access keys.
AWS CloudFormation est le service qui permet de faire de lâinfrastructure-as-code.
AWS met Ă disposition une suite de services pour la gestion du code et de ses versions :
AWS CodeCommit ;
AWS CodeBuild ;
AWS CodeArtifact ;
AWS CodeDeploy ;
AWS CodePipeline.
Nous venons dâachever la premiĂšre partie de cette formation en apprenant comment interagir en tant que dĂ©veloppeur avec le cloud AWS. Vous avez configurĂ© le compte AWS de The Green Earth Post en centralisant le contrĂŽle d'accĂšs pour dâautres collaborateurs, la gouvernance et lâauthentification dâutilisateurs et dâapplications.Â
Maintenant, tout est prĂȘt pour construire lâossature du site web ! Mais avant quâon passe Ă cela, je vous invite Ă tester vos connaissances en rĂ©pondant aux questions du quiz.