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.
Déployez une application monopage basée sur React sur Amazon S3 et CloudFront
Créée par Jean-Baptiste Guillois () AWS
Référentiel de code : application mono-page basée sur CORS | Environnement : Production | Technologies : applications Web et mobiles ; sans serveur |
Charge de travail : toutes les autres charges de travail | AWSservices : Amazon API Gateway ; Amazon CloudFront |
Récapitulatif
Une application monopage (SPA) est un site Web ou une application Web qui met à jour dynamiquement le contenu d'une page Web affichée en utilisant JavaScript APIs. Cette approche améliore l'expérience utilisateur et les performances d'un site Web car elle ne met à jour que les nouvelles données au lieu de recharger l'intégralité de la page Web depuis le serveur.
Ce modèle fournit une step-by-step approche pour coder et héberger un SPA fichier écrit dans React sur Amazon Simple Storage Service (Amazon S3) et Amazon. CloudFront Ce modèle utilise un REST API fichier configuré dans Amazon API Gateway et exposé via une CloudFront distribution Amazon afin de simplifier la gestion du partage de ressources entre origines (CORS). SPA
Conditions préalables et limitations
Prérequis
Un actif Compte AWS.
Node.js et
npm
, installé et configuré. Pour plus d'informations, consultez la section Téléchargementsde la documentation Node.js. Yarn, installé et configuré. Pour plus d'informations, consultez la documentation Yarn
. Git, installé et configuré. Pour plus d'informations, consultez la documentation Git
.
Architecture
Cette architecture est automatiquement déployée en utilisant AWS CloudFormation (infrastructure en tant que code). Il utilise des services régionaux tels qu'Amazon S3 pour stocker les actifs statiques et Amazon CloudFront avec Amazon API Gateway pour exposer les points de terminaison régionaux API (REST). Les journaux des applications sont collectés à l'aide d'Amazon CloudWatch. Tous les AWS API appels sont audités dans AWS CloudTrail. Toutes les configurations de sécurité (par exemple, les identités et les autorisations) sont gérées dans AWS Identity and Access Management (IAM). Le contenu statique est diffusé via le réseau de diffusion de CloudFront contenu Amazon (CDN), et les DNS requêtes sont traitées par Amazon Route 53.
Outils
AWSservices
Amazon API Gateway vous aide à créer, publier, gérer, surveiller et sécuriser, et REST ceHTTP, WebSocket APIs à n'importe quelle échelle.
AWS CloudFormationvous aide à configurer les AWS ressources, à les approvisionner rapidement et de manière cohérente, et à les gérer tout au long de leur cycle de vie dans toutes Comptes AWS les régions.
Amazon CloudFront accélère la diffusion de votre contenu Web en le diffusant via un réseau mondial de centres de données, ce qui réduit le temps de latence et améliore les performances.
AWS CloudTrailvous aide à auditer la gouvernance, la conformité et le risque opérationnel de votre Compte AWS
Amazon vous CloudWatch aide à surveiller les indicateurs de vos AWS ressources et des applications que vous utilisez AWS en temps réel.
AWS Identity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.
Amazon Route 53 est un service DNS Web évolutif et hautement disponible.
Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.
Code
L'exemple de code d'application de ce modèle est disponible dans le référentiel d'applications d'une CORSseule page GitHub basé sur React
Bonnes pratiques
En utilisant le stockage d'objets Amazon S3, vous pouvez stocker les actifs statiques de votre application de manière sécurisée, hautement résiliente, performante et rentable. Il n'est pas nécessaire d'utiliser un conteneur dédié ou une instance Amazon Elastic Compute Cloud (AmazonEC2) pour cette tâche.
En utilisant le réseau de diffusion de CloudFront contenu Amazon, vous pouvez réduire la latence que vos utilisateurs peuvent rencontrer lorsqu'ils accèdent à votre application. Vous pouvez également associer un pare-feu d'application Web (AWS WAF) pour protéger vos actifs contre les attaques malveillantes.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Pour cloner le référentiel. | Exécutez la commande suivante pour cloner le référentiel de l'exemple d'application :
| Développeur d'applications, AWS DevOps |
Déployez l'application localement. |
| Développeur d'applications, AWS DevOps |
Accédez à l'application localement. | Ouvrez une fenêtre de navigateur et entrez le | Développeur d'applications, AWS DevOps |
Tâche | Description | Compétences requises |
---|---|---|
Déployez le AWS CloudFormation modèle. |
| Développeur d'applications, AWS DevOps |
Personnalisez les fichiers source de votre application. |
| Développeur d'applications |
Créez le package d'application. | Dans le répertoire de votre projet, exécutez la | Développeur d'applications |
Déployez le package d'application. |
| Développeur d'applications, AWS DevOps |
Tâche | Description | Compétences requises |
---|---|---|
Accédez à l'application et testez-la. | Ouvrez une fenêtre de navigateur, puis collez le domaine de CloudFront distribution (le | Développeur d'applications, AWS DevOps |
Tâche | Description | Compétences requises |
---|---|---|
Supprimez le contenu du compartiment S3. |
| AWS DevOps, Développeur d'applications |
Supprimez la AWS CloudFormation pile. |
| AWS DevOps, Développeur d'applications |
Ressources connexes
Pour déployer et héberger votre application Web, vous pouvez également utiliser AWS Amplify Hosting, qui fournit un flux de travail basé sur Git pour héberger des applications Web complètes sans serveur avec un déploiement continu. Amplify Hosting en fait partie AWS Amplify, qui fournit un ensemble d'outils et de fonctionnalités spécialement conçus pour permettre aux développeurs Web et mobiles de créer rapidement et facilement des applications complètes. AWS
Informations supplémentaires
Pour traiter les URLs demandes non valides de l'utilisateur susceptibles de générer 403 erreurs, une page d'erreur personnalisée configurée dans la CloudFront distribution détecte 403 erreurs et les redirige vers le point d'entrée de l'application (index.html
).
Pour simplifier la gestion deCORS, le REST API est exposé par le biais d'une CloudFront distribution.