通过 CloudFront / S3 与 Docker / EKS 部署 React 应用程序

问题描述 投票:0回答:1

我的应用程序有一个用 React 构建的前端和一个用 Node/Express 编写的后端。

后端将被容器化并托管在AWS EKS上。

对于前端Reactjs应用程序,使用CloudFront + S3与Docker + EKS有什么区别?

reactjs amazon-s3 frontend amazon-cloudfront amazon-eks
1个回答
0
投票

您需要评估的第一件事是您构建的 React 应用程序类型

  1. 是在浏览器中执行的普通 React 吗?
  2. React 是在 Nextjs 或 Remix.run 这样的“现代”框架中运行吗?

现在让我们回顾一下 部署选项

CloudFront:是一个 CDN,这是一种将静态文件发送到客户端的非常快速的方式。静态文件我们理解为:js文件、css文件、html等。 通常 CDN 部署在多个位置,因此客户端将从靠近他们的位置获取静态内容。

另一方面,Docker 是一种执行应用程序的方式,就像 NodeJs 后端一样。尽管它也可以提供静态文件,但它并未针对提供静态文件进行优化,您必须注意这一点。

决策要点

如果您的 React 应用程序是使用选项 1(在浏览器中执行)构建的,则最好的选择是使用 CDN(云前端)。如果对您来说更容易的话,您仍然可以将其部署到 docker,但您可能会达到成本和延迟将使 CDN 更具吸引力的程度,但这取决于您的用例。

对于第二个选项(运行 nextjs 或其他现代 React 框架),您将有两个选项:

  1. 将其部署为静态内容:您需要 Cloudfront 进行部署
  2. 将其部署为 Web 服务器:docker 将是一个很好的部署候选者,因为您无法在 CDN 中部署 Web 服务器。您可以进行一些配置以将 CDN 放置在您的网络服务器前面,但我认为这超出了这个问题的范围。

希望有帮助

© www.soinside.com 2019 - 2024. All rights reserved.