Introduction au Serverless sur AWS

connaissances

2 min

lire

Le serverless est un modèle de développement cloud-native qui permet aux développeurs de construire et d'exécuter des applications sans avoir à gérer de serveurs.

Alors que serverless signifie littéralement " sans serveurs ", ceux-ci sont toujours présents mais abstraits du développement des applications. Ainsi, les tâches de provisionnement, de maintenance et de mise à l'échelle de l'infrastructure sont réalisées par le fournisseur de cloud et le client peut concentrer ses efforts sur le développement de son code.

Quels sont les principaux avantages de la technologie sans serveur ?

Si une architecture sans serveur offre de nombreux avantages, elle ne convient pas à tous les types d'application et il y a quelques facteurs limitatifs à prendre en compte, notamment :

Une architecture sans serveur sur AWS :

AWS a été le pionnier du modèle sans serveur en lançant le service AWS lambda en 2015. Lambda est un service de calcul sans serveur qui vous permet d'exécuter du code en réponse à des événements pour presque n'importe quel type d'application ou de service backend. Il vous suffit de fournir votre code dans l'un des langages pris en charge (Node.js, Python, Java, Go, .Net, Ruby).

Aujourd'hui, AWS propose une douzaine de services serverless, appelés services gérés, sur 3 couches : le calcul, l'intégration et le stockage de données. Voici un exemple d'architecture full serverless sur AWS pour une simple application web.

Ici, plusieurs services AWS serverless sont utilisés. Tout d'abord, il y a Route53 qui permet de gérer les DNS. Ensuite, il y a CloudFront qui agit comme un CDN et permet donc la mise en cache de certaines ressources. Il est lié au service Certificate Manager, qui assure l'installation des certificats SSL/TLS sur le nom de domaine. Ensuite, nous avons API Gateway, qui agit comme l'API qui connecte notre utilisateur avec l'application. Combiné au service Cognito, il est capable de rejeter la demande si l'utilisateur n'est pas authentifié ou autorisé. Dans le cas contraire, la demande suit son cours. Elle peut aller soit vers le service S3, si les données à récupérer sont statiques (comme une image par exemple), soit vers le service Lambda qui agira comme le back-end de notre application. Dans ce dernier cas, notre back-end pourra communiquer avec une base de données DynamoDB, pour récupérer les informations liées à l'utilisateur.

Tous les services utilisés ici sont serverless, et fonctionnent parfaitement sans qu'il soit nécessaire de mettre en place un serveur. Ainsi, si aucune requête n'est effectuée, il est possible de ne pas dépenser un centime. Et à l'inverse, si la charge venait à exploser, notre infrastructure pourrait évoluer sans problème.

Bonus : Comment construire une passerelle API ?

Étapes de la création d'une passerelle API :

  1. Créer un AWS Lambda

a.Connectez-vous à votre console AWS, et allez sur le service Lambda.

b. Cliquez sur "Créer une fonction".

c. Dans le formulaire, remplissez les éléments suivants :

i. Nom de la fonction : "my-first-lambda

ii. Exécution : Python 3.9

d. Enfin, cliquez sur "Créer une fonction".

  2. Créer une passerelle API

a. Accédez au service API Gateway

b. Cliquez sur "Create API

c. Choisissez HTTP Api et cliquez sur "Build".

d. Cliquez sur "Ajouter une intégration" et sélectionnez Lambda

e. Dans la barre de recherche qui apparaît, sélectionnez "my-first-lambda

f. Dans "API name", entrez "my-first-api" et cliquez sur "Review and create", puis sur "Create"

    3. Envoyer une demande à l'API

a. Copiez l'url présente sous le nom "Invoke URL", et ajoutez "/my-first-lambda" à la fin.

b. Collez cette url dans votre navigateur pour obtenir la réponse de votre Lambda : "Hello from Lambda !".

Vous venez de déployer et d'utiliser une API en quelques clics !

Merci d'avoir lu cet article. Nous espérons qu'il vous a plu !

Contactez-nous pour plus d'informations sur notre accompagnement et notre expertise !