Le déploiement d'une application Web Next.js en production peut être rationalisé et efficace en exploitant les pipelines AWS (Amazon Web Services) Elastic Beanstalk, Docker et CI/CD avec AWS Code Build, Code Deploy et GitLab. Ce guide vous guidera dans la configuration d'un pipeline de déploiement moderne pour garantir que votre application est robuste, évolutive et facile à maintenir.
Avant de vous lancer dans le processus de déploiement, assurez-vous d'avoir :
Un compte racine AWS ou un compte IAM avec l'autorisation de créer des environnements Elastic Beanstalk dans AWS
Docker installé sur votre ordinateur local
Compte GitLab ou GitHub avec un référentiel pour votre application Next.js
Un projet Next.js prêt à être déployé
Entrez le nom de votre application et cliquez sur Créer.
Après avoir créé l'application, il est maintenant temps de créer le nouvel environnement. Cliquez sur Créer un nouvel environnement.
Dans le code de l'application, choisissez Exemple d'application puisque nous déploierons notre propre code via AWS Code Pipeline.
Dans les préréglages, vous pouvez le laisser par défaut, cependant, pour les applications de production, il est conseillé d'utiliser l'instance Haute disponibilité. Une fois que vous avez sélectionné le préréglage, cliquez sur Suivant.
Créez ou utilisez votre rôle de service existant. Il est important de disposer du rôle de service Elastic Beanstalk ainsi que de la configuration du rôle de service EC2 avant de procéder à la création de l'instance EC2.
Cependant, si vous souhaitez vous connecter en SSH à l'instance EC2 depuis votre terminal, ajoutez une paire de clés EC2 et créez un profil d'instance EC2 pour effectuer les opérations nécessaires.
Puisque nous n'avons pas besoin de configurer une base de données, nous pouvons passer à l'étape suivante en cliquant sur Suivant.
Pour le volume racine, nous choisirons un SSD à usage général.
Maintenant, à partir du groupe de sécurité, vous pouvez soit sélectionner un groupe de sécurité déjà existant, soit le laisser tel quel, et Elastic Beanstalk en créera un pour vous lors de la configuration de l'instance EC2.
En cas de déploiement à des fins de production, il est toujours conseillé de configurer la mise à l'échelle automatique et de sélectionner le type d'instance qu'Elastic Beanstalk créera pour servir le trafic. Nous irons avec la famille t3.
Cliquez sur Suivant.
Dans les rapports sur l'état de santé, nous utiliserons les rapports de base, mais n'hésitez pas à choisir parmi les options disponibles en fonction du type de rapport dont vous avez besoin.
Nous décocherons également les mises à jour de la plateforme gérée car elles ne sont pas requises pour le site Web de démonstration.
Conservez le reste des paramètres tels quels et cliquez sur Suivant.
Enfin, vérifiez vos modifications et cliquez sur Soumettre.
Elastic Beanstalk lancera votre environnement, et cela prendra un certain temps.
npx create-next-app@latest nextjs-blog --use-npm --example "https://github.com/vercel/next-learn/tree/main/basics/learn-starter"
Si votre code existant est déjà prêt, vous pouvez passer à la partie suivante
cd nextjs-blog
Ensuite, exécutez la commande suivante :
npm run dev
Cela démarre le « serveur de développement » de votre application Next.js (nous en parlerons plus tard) sur le port 3000.
Vérifions si cela fonctionne. Ouvrez http://localhost:3000 dans votre navigateur.
Il est maintenant temps de créer un Dockerfile dans l'application.
Créez un fichier nommé Dockerfile à la racine de votre application et ajoutez le code suivant :
FROM node:18-alpine RUN mkdir -p /app WORKDIR /app COPY . . RUN npm install RUN npm run build EXPOSE 3000 CMD ["npm", "start"]
docker build -t testapp .
Une fois la compilation réussie, exécutez l'application avec la commande ci-dessous :
docker run -p 3000:3000 testapp
version: 0.2 artifacts: type: zip files: - '**/*'
Connectez-vous à AWS Management Console, accédez à Code Pipeline et cliquez sur créer un pipeline.
Entrez un nom de pipeline valide et choisissez le mode d'exécution du pipeline. Dans notre cas, nous sélectionnerons Queued (Pipeline type V2 requis).
Créez un nouveau rôle de service s'il n'existe pas déjà ou sélectionnez un rôle de service existant et cliquez sur Suivant.
Depuis le fournisseur source, sélectionnez l'emplacement de stockage de vos artefacts. Nous sélectionnerons "Gitlab".
Dans la liste des connexions, sélectionnez une connexion existante ou créez une nouvelle connexion.
Une fois la connexion réussie, sélectionnez ensuite le nom du référentiel et la branche à partir de laquelle le code sera utilisé.
Pour le type de déclencheur, nous choisirons Aucun filtre et cliquerons sur Suivant.
Lorsque vous cliquez sur Continuer vers le pipeline de code, la fenêtre se fermera automatiquement et vous ramènera à l'écran du pipeline de code.
Spécifiez le type de build comme build unique et cliquez sur Suivant.
Le déploiement de l'application Web Next.js en production est vraiment simple et peut être effectué plus efficacement avec les pipelines AWS Elastic Beanstalk, Docker et CI/CD à l'aide d'AWS Code Build, Code Deploy et GitLab.
Vous pouvez y accéder en utilisant l'URL fournie par Elastic Beanstalk. Apportez des modifications localement et il sera automatiquement déployé lorsque vous le pousserez vers votre succursale.
Bon codage !!
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3