Table des matiĂšres

Table des matiĂšres

Interagissez avec le cloud AWS via la CLI ou un SDK

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.

Découvrez les options pour se connecter à AWS

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 :

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 :

Installez et configurez la CLI AWS

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.

Screenshot d'interface 'AWS CloudShell'. En haut Ă  droite on voit l'icone de AWS Management Console avec la note 'cliquez ici'
Utilisation de AWS management console

Vous pouvez regarder l’installation et configuration de la CLI AWS ici :

Écrivez votre infrastructure-as-code

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.

Un chemin mÚne du développeurs et IDE vers registre Git, puis pipeline CI/CD et finit en AWS.
Principe de développement et déploiement de projets

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 :

  1. le Build, pour générer les artefacts du code, ce sont des fichiers au format zip, jar, etc. ; 

  2. le Test, pour tester le code ; 

  3. le Deploy, pour dĂ©ployer l’infrastructure et les programmes.

AWS CodeArtifact comporte AWS CodeCommit qui correspond au code, AWS CodeBuild et AWS CodeDeploy. Les deux derniers sont l’orchestrateur AWS Code Pipeline.
Principe de gestion de code et de pipelines CI/CD sur AWS
  • 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.

En résumé

  • 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.

Et si vous obteniez un diplĂŽme OpenClassrooms ?
  • Formations jusqu’à 100 % financĂ©es
  • Date de dĂ©but flexible
  • Projets professionnalisants
  • Mentorat individuel
Trouvez la formation et le financement faits pour vous