【问题标题】:Amazon Fargate vs EC2 container website hostingAmazon Fargate 与 EC2 容器网站托管
【发布时间】:2020-10-29 19:03:28
【问题描述】:

我最近有一个项目,我必须在其中构建一个 React / NextJS 应用程序,该应用程序将服务于偶尔的高流量,但大部分时间都处于闲置状态。我们目前正在寻找所有类别中最便宜的选择,但也希望构建一个可扩展且可管理的应用程序,该应用程序具有快速简便的 CI/CD 管道。对于开发服务器,我们选择了 Heroku 的免费计划和管道,因为我认为它对于这项工作完全空闲。对于生产,我们决定使用 Docker,因为它是设置 CD 管道的最佳方式,并且每月有 2000 分钟的免费 G​​ithub Actions,整个生产/开发管道对我们来说基本上是免费的。由于 AWS 的功能,我们还考虑使用它,并且我们希望保持最少数量的账单来管理。对于 DB,我们正在考虑使用 DynamoDB,因为免费的 25GB 终身存储就足够了,因为站点中唯一的动态数据将是用户数据和博客。对于对象存储,选择 S3。

在这里,当涉及到容器托管、ECS EC2 和 ECS Fargate 时,我们对 AWS 的两种产品感到困惑。虽然 Fargate 确实是一个更好的选择,因为应用程序大部分时间都处于空闲状态,但我们在 Fargate 中为容器提供资源时确实感到困惑。该应用程序在 NextJS 上运行,因此将在服务器端呈现。

所以我的问题是,0.5 GB RAM x 0.25 vCPU 的组合对于服务器端呈现的 NextJS 应用程序是否足够?还是我应该选择专用的 EC2?或者可能是其他云提供商?

【问题讨论】:

    标签: amazon-web-services docker amazon-ec2 hosting next.js


    【解决方案1】:

    NextJS 是一个运行在 nodejs 之上的框架,因为没有这样的具体要求(文档中提到了nodejs 10 only),但您可以像对待 nodejs 一样对待它们。

    Node.js with V8 suitable for limited memory device?

    所以我的问题是,0.5 GB RAM x 0.25 vCPU 的组合将是 对于服务器端渲染的 NextJS 应用程序来说足够了吗?或者我应该去 专用的 EC2?或者可能是其他云提供商?

    我不建议 EC2 类型的 ECS 服务,您可以选择 fargate 以最小的内存和 CPU 并在需要时设置 ECS 服务的自动扩展。

    但我认为我们有一个比 Fargate 更好的选择,那就是 serverless-nextjs

    无服务器部署通过将应用程序拆分为更小的部分(也称为 [lambdas]3),显着提高了可靠性和可扩展性。在 Next.js 的情况下,pages 目录中的每个页面都变成了一个无服务器的 lambda。

    无服务器有一个number of benefits。引用的链接在 Express 的上下文中讨论了其中的一些,但这些原则普遍适用:无服务器允许分布式故障点、无限可扩展性,并且通过“按使用付费”模型非常实惠。

    Serverless Nextjs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-14
      • 2022-11-30
      • 1970-01-01
      • 1970-01-01
      • 2013-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多