Die Bereitstellung einer Next.js-Webanwendung in der Produktion kann rationalisiert und effizient sein, wenn AWS (Amazon Web Services) Elastic Beanstalk, Docker und CI/CD-Pipelines mit AWS Code Build, Code Deploy und GitLab genutzt werden. Dieser Leitfaden führt Sie durch die Einrichtung einer modernen Bereitstellungspipeline, um sicherzustellen, dass Ihre App robust, skalierbar und einfach zu warten ist.
Bevor Sie in den Bereitstellungsprozess eintauchen, stellen Sie sicher, dass Sie Folgendes haben:
Ein AWS-Root-Konto oder ein IAM-Konto mit der Berechtigung zum Erstellen von Elastic Beanstalk-Umgebungen innerhalb von AWS
Docker auf Ihrem lokalen Computer installiert
GitLab- oder GitHub-Konto mit einem Repository für Ihre Next.js-App
Ein Next.js-Projekt, das zur Bereitstellung bereit ist
Geben Sie Ihren Anwendungsnamen ein und klicken Sie auf Erstellen.
Nachdem Sie die Anwendung erstellt haben, ist es nun an der Zeit, die neue Umgebung zu erstellen. Klicken Sie auf Neue Umgebung erstellen.
Wählen Sie im Anwendungscode „Beispielanwendung“ aus, da wir unseren eigenen Code über die AWS Code Pipeline bereitstellen werden.
In Voreinstellungen können Sie die Standardeinstellung belassen, für Produktionsanwendungen empfiehlt es sich jedoch, die Hochverfügbarkeitsinstanz zu verwenden. Nachdem Sie die Voreinstellung ausgewählt haben, klicken Sie auf Weiter.
Erstellen oder verwenden Sie Ihre vorhandene Servicerolle. Es ist wichtig, dass die Elastic Beanstalk-Dienstrolle zusammen mit der EC2-Dienstrolle eingerichtet ist, bevor Sie mit der Erstellung der EC2-Instanz fortfahren.
Wenn Sie jedoch von Ihrem Terminal aus eine SSH-Verbindung zur EC2-Instanz herstellen möchten, fügen Sie ein EC2-Schlüsselpaar hinzu und erstellen Sie ein EC2-Instanzprofil, um die erforderlichen Vorgänge auszuführen.
Da wir keine Datenbank konfigurieren müssen, können wir mit dem nächsten Schritt fortfahren, indem wir auf Weiter klicken.
Als Root-Volume wählen wir Allzweck-SSD.
Jetzt können Sie aus der Sicherheitsgruppe entweder eine bereits vorhandene Sicherheitsgruppe auswählen oder sie unverändert lassen, und Elastic Beanstalk erstellt beim Einrichten der EC2-Instanz eine für Sie.
Bei der Bereitstellung für Produktionszwecke ist es immer ratsam, die automatische Skalierung zu konfigurieren und den Instanztyp auszuwählen, den Elastic Beanstalk zur Bereitstellung des Datenverkehrs erstellt. Wir werden mit der T3-Familie gehen.
Klicken Sie auf Weiter.
Bei der Gesundheitsberichterstattung entscheiden wir uns für die Basisberichterstattung, Sie können jedoch auch aus den verfügbaren Optionen wählen, je nachdem, welche Art von Bericht Sie benötigen.
Wir werden auch die Aktualisierungen der verwalteten Plattform deaktivieren, da diese für die Demo-Website nicht erforderlich sind.
Behalten Sie die restlichen Einstellungen bei und klicken Sie auf Weiter.
Überprüfen Sie abschließend Ihre Änderungen und klicken Sie auf Senden.
Elastic Beanstalk startet Ihre Umgebung, und es wird einige Zeit dauern.
npx create-next-app@latest nextjs-blog --use-npm --example "https://github.com/vercel/next-learn/tree/main/basics/learn-starter"
Wenn Sie Ihren vorhandenen Code bereits bereit haben, können Sie mit dem nächsten Teil fortfahren.
cd nextjs-blog
Führen Sie dann den folgenden Befehl aus:
npm run dev
Dadurch wird der „Entwicklungsserver“ Ihrer Next.js-App (mehr dazu später) auf Port 3000 gestartet.
Lassen Sie uns prüfen, ob es funktioniert. Öffnen Sie http://localhost:3000 in Ihrem Browser.
Jetzt ist es an der Zeit, eine Docker-Datei innerhalb der Anwendung zu erstellen.
Erstellen Sie eine Datei mit dem Namen Dockerfile im Stammverzeichnis Ihrer Anwendung und fügen Sie den folgenden Code hinzu:
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 .
Sobald der Build erfolgreich ist, führen Sie die Anwendung mit dem folgenden Befehl aus:
docker run -p 3000:3000 testapp
version: 0.2 artifacts: type: zip files: - '**/*'
Melden Sie sich bei der AWS Management Console an, navigieren Sie zu Code Pipeline und klicken Sie auf Pipeline erstellen.
Geben Sie einen gültigen Pipeline-Namen ein und wählen Sie den Ausführungsmodus für die Pipeline. In unserem Fall wählen wir „Queued“ (Pipeline-Typ V2 erforderlich).
Erstellen Sie eine neue Servicerolle, falls diese noch nicht vorhanden ist, oder wählen Sie eine vorhandene Servicerolle aus und klicken Sie auf Weiter.
Wählen Sie beim Quellanbieter aus, wo Ihre Artefakte gespeichert sind. Wir werden „Gitlab“ auswählen.
Wählen Sie in der Verbindungsliste eine vorhandene Verbindung aus oder erstellen Sie eine neue Verbindung.
Sobald die Verbindung erfolgreich ist, wählen Sie den Repository-Namen und den Zweig aus, aus dem der Code verwendet werden soll.
Als Triggertyp wählen wir „Kein Filter“ und klicken auf „Weiter“.
Wenn Sie auf „Weiter zur Code-Pipeline“ klicken, wird das Fenster automatisch geschlossen und Sie gelangen zurück zum Code-Pipeline-Bildschirm.
Geben Sie den Build-Typ als Einzelbuild an und klicken Sie auf Weiter.
Die Bereitstellung der Next.js-Webanwendung für die Produktion ist wirklich einfach und kann mit AWS Elastic Beanstalk, Docker und CI/CD-Pipelines mithilfe von AWS Code Build, Code Deploy und GitLab effizienter erfolgen.
Sie können über die von Elastic Beanstalk bereitgestellte URL darauf zugreifen. Nehmen Sie Änderungen lokal vor und es wird automatisch bereitgestellt, wenn Sie es in Ihre Filiale übertragen.
Viel Spaß beim Codieren!!
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3