搜索
首页web前端js教程在 AWS Elastic Beanstalk 上部署 Next.js 的完整指南:使用 Docker、AWS CodePipeline 和 CodeBuild

介绍

通过 AWS Code Build、Code Deploy 和 GitLab 利用 AWS (Amazon Web Services) Elastic Beanstalk、Docker 和 CI/CD 管道,可以简化且高效地将 Next.js Web 应用程序部署到生产环境。本指南将引导您设置现代部署管道,以确保您的应用程序健壮、可扩展且易于维护。

先决条件

在深入部署过程之前,请确保您已:

  • 有权在 AWS 中创建 Elastic Beanstalk 环境的 AWS 根账户或 IAM 账户

  • Docker 安装在本地计算机上

  • GitLab 或 GitHub 帐户,包含 Next.js 应用程序的存储库

  • 已准备好部署的 Next.js 项目

步骤 1:设置 AWS Elastic Beanstalk

  • 创建 Elastic Beanstalk 环境 - 登录 AWS 管理控制台,导航到 Elastic Beanstalk,然后创建一个新应用程序。

Complete Guide on Next.js Deployment on AWS Elastic Beanstalk: Using-Docker, AWS CodePipeline & CodeBuild

  • 输入您的应用程序名称,然后单击“创建”。

  • 创建应用程序后,现在是创建新环境的时候了。单击创建新环境。

Complete Guide on Next.js Deployment on AWS Elastic Beanstalk: Using-Docker, AWS CodePipeline & CodeBuild

  • 选择Web服务器环境。环境名称将带有后缀 env 以及您的应用程序名称,您可以根据需要对其进行编辑。

Complete Guide on Next.js Deployment on AWS Elastic Beanstalk: Using-Docker, AWS CodePipeline & CodeBuild

  • 输入有效的环境名称以及域。输入域名.

Complete Guide on Next.js Deployment on AWS Elastic Beanstalk: Using-Docker, AWS CodePipeline & CodeBuild

  • 选择合适的平台。在本例中,我们将选择 Managed Platform 和 Docker 作为平台。

Complete Guide on Next.js Deployment on AWS Elastic Beanstalk: Using-Docker, AWS CodePipeline & CodeBuild

  • 在应用程序代码中,选择示例应用程序,因为我们将通过 AWS Code Pipeline 部署我们自己的代码。

  • 在预设中,您可以将其保留为默认值,但是,对于生产应用程序,建议使用高可用性实例。选择预设后,单击“下一步”。

  • 创建或使用您现有的服务角色。在继续创建 EC2 实例之前,拥有 Elastic Beanstalk 服务角色以及 EC2 服务角色设置非常重要。
    但是,如果您希望从终端通过 SSH 访问 EC2 实例,请添加 EC2 密钥对,并创建 EC2 实例配置文件以执行必要的操作。

Complete Guide on Next.js Deployment on AWS Elastic Beanstalk: Using-Docker, AWS CodePipeline & CodeBuild

  • 选择您要在其中部署 EC2 实例的 VPC。

Complete Guide on Next.js Deployment on AWS Elastic Beanstalk: Using-Docker, AWS CodePipeline & CodeBuild

  • 选择VPC后,选择每个可用区中的子网。要在同一公有子网中运行负载均衡器和实例,请将公有 IP 地址分配给实例,如图所示。

Complete Guide on Next.js Deployment on AWS Elastic Beanstalk: Using-Docker, AWS CodePipeline & CodeBuild

  • 由于我们不需要配置数据库,因此我们可以单击“下一步”继续下一步。

  • 对于根卷,我们将选择通用SSD。

  • 现在,在安全组中,您可以从现有的安全组中进行选择,也可以保持原样,Elastic Beanstalk 将在设置 EC2 实例时为您创建一个安全组。

  • 如果出于生产目的进行部署,始终建议配置自动扩展并选择 Elastic Beanstalk 将创建来服务流量的实例类型。我们将和 t3 家族一起去。

Complete Guide on Next.js Deployment on AWS Elastic Beanstalk: Using-Docker, AWS CodePipeline & CodeBuild

  • 单击“下一步”。

  • 在健康报告中,我们将使用基本报告,但请随意根据您需要的报告类型从可用选项中进行选择。

  • 我们还将取消选中托管平台更新,因为演示网站不需要它。

  • 保持其余设置不变,然后单击“下一步”。

  • 最后,检查您的更改并单击“提交”。

  • Elastic Beanstalk 将启动您的环境,这需要一些时间。

Complete Guide on Next.js Deployment on AWS Elastic Beanstalk: Using-Docker, AWS CodePipeline & CodeBuild

  • 成功启动后,您将看到祝贺屏幕。

Complete Guide on Next.js Deployment on AWS Elastic Beanstalk: Using-Docker, AWS CodePipeline & CodeBuild

第 2 步:创建 Next.js 应用程序(或使用现有应用程序)

  • 要创建 Next.js 应用程序,请打开终端,进入要在其中创建应用程序的目录,然后运行以下命令:
npx create-next-app@latest nextjs-blog --use-npm --example "https://github.com/vercel/next-learn/tree/main/basics/learn-starter" 

如果您已经准备好现有代码,您可以跳到下一部分

  • 您现在有一个名为 nextjs-blog 的新目录。让我们进入它:
cd nextjs-blog 

然后,运行以下命令:

npm run dev 

这将在端口 3000 上启动 Next.js 应用程序的“开发服务器”(稍后详细介绍)。

让我们检查一下它是否正常工作。在浏览器中打开 http://localhost:3000。

  • 现在是时候在应用程序中创建 Dockerfile 了。

  • 在应用程序的根目录中创建一个名为 Dockerfile 的文件,并添加以下代码:

FROM node:18-alpine 

RUN mkdir -p /app 

WORKDIR /app 

COPY . . 

RUN npm install 

RUN npm run build 

EXPOSE 3000 

CMD ["npm", "start"] 

  • 进行更改后,检查构建是否成功非常重要。启动docker引擎并运行以下命令:
docker build -t testapp . 

Complete Guide on Next.js Deployment on AWS Elastic Beanstalk: Using-Docker, AWS CodePipeline & CodeBuild

构建成功后,使用以下命令运行应用程序:

docker run -p 3000:3000 testapp 

  • 在应用程序的根目录中创建一个名为 buildspec.yml 的文件并添加以下代码。该文件将在稍后阶段在 AWS 中设置代码管道时使用。
version: 0.2 

artifacts: 

  type: zip 

  files: 

    - '**/*' 

  • 将这些文件添加到新的或现有的代码后,将这些更改推送到 Gitlab 或 GitHub 上的远程存储库。

第 3 步:设置代码管道

  • 登录 AWS 管理控制台,导航到 Code Pipeline,然后单击创建管道。

  • 输入有效的管道名称并选择管道的执行模式。在我们的例子中,我们将选择“排队”(需要管道类型 V2)。

  • 创建新的服务角色(如果尚不存在)或从现有服务角色中进行选择,然后单击“下一步”。

Complete Guide on Next.js Deployment on AWS Elastic Beanstalk: Using-Docker, AWS CodePipeline & CodeBuild

  • 从源提供商处选择您存储工件的位置。我们将选择“Gitlab”。

  • 从连接列表中,选择现有连接或创建新连接。

Complete Guide on Next.js Deployment on AWS Elastic Beanstalk: Using-Docker, AWS CodePipeline & CodeBuild

  • 连接成功后,选择存储库名称和将使用代码的分支。

  • 对于触发器类型,我们将选择“无过滤器”,然后单击“下一步”。

Complete Guide on Next.js Deployment on AWS Elastic Beanstalk: Using-Docker, AWS CodePipeline & CodeBuild

  • 接下来,我们选择构建提供商。在我们的示例中,我们将选择 AWS Code Build。选择区域或将其保留为默认 AWS 区域。

Complete Guide on Next.js Deployment on AWS Elastic Beanstalk: Using-Docker, AWS CodePipeline & CodeBuild

  • 然后通过单击“创建项目”在“代码构建”中创建一个新项目。这将打开一个新窗口。输入项目名称并将环境中的所有内容保留为默认值。

Complete Guide on Next.js Deployment on AWS Elastic Beanstalk: Using-Docker, AWS CodePipeline & CodeBuild

  • 指定构建规范时,请确保选择“使用构建规范文件”。这与我们之前创建的文件相同。将其他设置保留为默认值并转到下一步。

Complete Guide on Next.js Deployment on AWS Elastic Beanstalk: Using-Docker, AWS CodePipeline & CodeBuild

  • 当您单击“继续代码管道”时,窗口将自动关闭并带您返回代码管道屏幕。

  • 将构建类型指定为单一构建,然后单击“下一步”。

Complete Guide on Next.js Deployment on AWS Elastic Beanstalk: Using-Docker, AWS CodePipeline & CodeBuild

  • 在添加部署阶段,选择部署提供商。在本例中,我们希望应用程序最终部署在 AWS Elastic Beanstalk 上。

Complete Guide on Next.js Deployment on AWS Elastic Beanstalk: Using-Docker, AWS CodePipeline & CodeBuild

  • 选择应用程序名称、环境名称,配置回滚设置,然后单击“下一步”。检查您的代码管道设置并单击“创建管道”。

第 4 步:网站上线!

将 Next.js Web 应用程序部署到生产环境非常简单,并且可以使用 AWS Code Build、Code Deploy 和 GitLab 通过 AWS Elastic Beanstalk、Docker 和 CI/CD 管道更高效地完成。

您可以使用 Elastic Beanstalk 提供的 URL 访问它。在本地进行更改,当您推送到分支时,它将自动部署。

快乐编码!!

以上是在 AWS Elastic Beanstalk 上部署 Next.js 的完整指南:使用 Docker、AWS CodePipeline 和 CodeBuild的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
了解JavaScript引擎:实施详细信息了解JavaScript引擎:实施详细信息Apr 17, 2025 am 12:05 AM

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python vs. JavaScript:学习曲线和易用性Python vs. JavaScript:学习曲线和易用性Apr 16, 2025 am 12:12 AM

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

Python vs. JavaScript:社区,图书馆和资源Python vs. JavaScript:社区,图书馆和资源Apr 15, 2025 am 12:16 AM

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

从C/C到JavaScript:所有工作方式从C/C到JavaScript:所有工作方式Apr 14, 2025 am 12:05 AM

从C/C 转向JavaScript需要适应动态类型、垃圾回收和异步编程等特点。1)C/C 是静态类型语言,需手动管理内存,而JavaScript是动态类型,垃圾回收自动处理。2)C/C 需编译成机器码,JavaScript则为解释型语言。3)JavaScript引入闭包、原型链和Promise等概念,增强了灵活性和异步编程能力。

JavaScript引擎:比较实施JavaScript引擎:比较实施Apr 13, 2025 am 12:05 AM

不同JavaScript引擎在解析和执行JavaScript代码时,效果会有所不同,因为每个引擎的实现原理和优化策略各有差异。1.词法分析:将源码转换为词法单元。2.语法分析:生成抽象语法树。3.优化和编译:通过JIT编译器生成机器码。4.执行:运行机器码。V8引擎通过即时编译和隐藏类优化,SpiderMonkey使用类型推断系统,导致在相同代码上的性能表现不同。

超越浏览器:现实世界中的JavaScript超越浏览器:现实世界中的JavaScriptApr 12, 2025 am 12:06 AM

JavaScript在现实世界中的应用包括服务器端编程、移动应用开发和物联网控制:1.通过Node.js实现服务器端编程,适用于高并发请求处理。2.通过ReactNative进行移动应用开发,支持跨平台部署。3.通过Johnny-Five库用于物联网设备控制,适用于硬件交互。

使用Next.js(后端集成)构建多租户SaaS应用程序使用Next.js(后端集成)构建多租户SaaS应用程序Apr 11, 2025 am 08:23 AM

我使用您的日常技术工具构建了功能性的多租户SaaS应用程序(一个Edtech应用程序),您可以做同样的事情。 首先,什么是多租户SaaS应用程序? 多租户SaaS应用程序可让您从唱歌中为多个客户提供服务

如何使用Next.js(前端集成)构建多租户SaaS应用程序如何使用Next.js(前端集成)构建多租户SaaS应用程序Apr 11, 2025 am 08:22 AM

本文展示了与许可证确保的后端的前端集成,并使用Next.js构建功能性Edtech SaaS应用程序。 前端获取用户权限以控制UI的可见性并确保API要求遵守角色库

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具