Introduction - Architectures multiniveaux sans serveur AWS avec Amazon API Gateway et AWS Lambda

Ce livre blanc est fourni à titre de référence historique uniquement. Certains contenus peuvent être obsolètes et certains liens peuvent ne pas être disponibles.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Introduction

L'application multiniveau (trois niveaux, n niveaux, etc.) est un modèle d'architecture fondamental depuis des décennies et reste un modèle populaire pour les applications destinées aux utilisateurs. Bien que le langage utilisé pour décrire une architecture multiniveau varie, une application multiniveau comprend généralement les composants suivants :

  • Niveau de présentation : composant avec lequel l'utilisateur interagit directement (par exemple, pages Web et applications UIs mobiles).

  • Niveau logique : code requis pour traduire les actions des utilisateurs en fonctionnalités de l'application (par exemple, les opérations de base de données CRUD et le traitement des données).

  • Niveau de données : support de stockage (par exemple, bases de données, magasins d'objets, caches et systèmes de fichiers) qui contiennent les données pertinentes pour l'application.

Le modèle d'architecture à plusieurs niveaux fournit un cadre général garantissant que les composants d'application découplés et évolutifs de manière indépendante peuvent être développés, gérés et maintenus séparément (souvent par des équipes distinctes).

En raison de ce schéma selon lequel le réseau (un niveau doit effectuer un appel réseau pour interagir avec un autre niveau) sert de frontière entre les niveaux, le développement d'une application multiniveau nécessite souvent la création de nombreux composants d'application indifférenciés. Certains de ces composants incluent :

  • Code qui définit une file d'attente de messages pour la communication entre les niveaux

  • Code qui définit une interface de programmation d'applications (API) et un modèle de données

  • Code lié à la sécurité qui garantit un accès approprié à l'application

Tous ces exemples peuvent être considérés comme des composants « standard » qui, bien que nécessaires dans les applications multiniveaux, ne varient pas beaucoup dans leur mise en œuvre d'une application à l'autre.

AWS propose un certain nombre de services qui permettent de créer des applications multiniveaux sans serveur, ce qui simplifie considérablement le processus de déploiement de ces applications en production et élimine les frais associés à la gestion traditionnelle des serveurs. Amazon API Gateway, un service de création et de gestion APIs AWS Lambda, et un service d'exécution de fonctions de code arbitraires, peuvent être utilisés conjointement pour simplifier la création d'applications robustes à plusieurs niveaux.

L'intégration d'Amazon API Gateway AWS Lambda permet de lancer des fonctions de code définies par l'utilisateur directement via des requêtes HTTPS. Quel que soit le volume de demandes, API Gateway et Lambda s'adaptent automatiquement pour répondre exactement aux besoins de votre application (reportez-vous aux quotas d'API Gateway d'Amazon API Gateway et aux notes importantes pour obtenir des informations sur l'évolutivité). En combinant ces deux services, vous pouvez créer un niveau qui vous permet d'écrire uniquement le code qui compte pour votre application et de ne pas vous concentrer sur les autres aspects indifférenciés de la mise en œuvre d'une architecture à plusieurs niveaux, tels que l'architecture pour la haute disponibilité, l'écriture de la gestion des clients, des serveurs et des systèmes d'exploitation (OS) SDKs, le dimensionnement et la mise en œuvre d'un mécanisme d'autorisation client.

API Gateway et Lambda permettent de créer un niveau logique sans serveur. En fonction des exigences de votre application, AWS propose également des options pour créer un niveau de présentation sans serveur (par exemple, avec Amazon CloudFront et Amazon Simple Storage Service) et un niveau de données (par exemple, Amazon Aurora, Amazon DynamoDB).

Ce livre blanc se concentre sur l'exemple le plus populaire d'architecture à plusieurs niveaux, à savoir l'application Web à trois niveaux. Cependant, vous pouvez appliquer ce modèle à plusieurs niveaux bien au-delà d'une application Web classique à trois niveaux.

Vue d'ensemble de l'architecture à trois niveaux

L'architecture à trois niveaux est l'implémentation la plus courante d'une architecture à plusieurs niveaux. Elle comprend un seul niveau de présentation, un niveau logique et un niveau de données. L'illustration suivante montre un exemple d'application générique simple à trois niveaux.

Schéma architectural pour une application à trois niveaux

Schéma architectural pour une application à trois niveaux

Il existe de nombreuses ressources en ligne intéressantes où vous pouvez en savoir plus sur le modèle général d'architecture à trois niveaux. Ce livre blanc se concentre sur un modèle de mise en œuvre spécifique pour cette architecture à l'aide d'Amazon API Gateway et. AWS Lambda