代码之家  ›  专栏  ›  技术社区  ›  Bear Bile Farming is Torture

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

  •  0
  • Bear Bile Farming is Torture  · 技术社区  · 1 年前

    我的应用程序有一个内置在React中的前端和一个用Node/Express编写的后端。

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

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

    1 回复  |  直到 1 年前
        1
  •  1
  •   Willemoes    1 年前

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

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

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

    CloudFront:是一种CDN,它是向客户端发送静态文件的一种非常快速的方式。通过静态文件,我们可以理解:js文件、css文件、html等。 通常情况下,CDN部署在多个位置,因此客户端将获得 静态内容 从离他们很近的地方。

    另一方面,Docker是执行应用程序的一种方式,就像NodeJ的后端一样。尽管它也可以提供静态文件,但它并没有针对交付进行优化 静态内容 ,你必须小心。

    决策要点

    如果您的React应用程序是使用选项1构建的(在浏览器中执行),那么最好的选择是使用CDN(cloudfront)。如果对您来说更容易的话,您仍然可以将其部署到docker,但您可能会达到成本和延迟会使CDN更具吸引力的程度,但这取决于您的用例。例如:如果你的服务器和用户在同一个位置,你可能会逃脱docker的惩罚。

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

    1. 将其部署为静态内容:您可以使用cloudfront进行部署,也可以使用docker来讨论静态内容的惩罚。
    2. 将其部署为web服务器:docker将是一个很好的部署候选者,因为您无法在CDN中部署web服务器。你可以进行一些配置,在你的网络服务器前面放置一个CDN,但我认为这超出了这个问题的范围。

    希望有帮助