如何在 AWS 上部署 Django Rest Framework 和 React

Lor*_*ran 7 deployment amazon-web-services django-rest-framework reactjs

我对部署 Django 和 AWS 很陌生。所以现在我想将我的单独项目 ( drf+ react)部署到 AWS。

那么如何将单独的项目部署到 AWS?

EC2 与 Elastic BeanStalk 哪个更适合这种环境?

我已经搜索了一天,但我没有找到任何有用的信息,并找到了类似的东西,但我不明白=> 部署单独的 React Frontend 和 Django DRF API

Aru*_*han 11

你问了一个很难的问题。我想我可以让你轻松一点。

首先让我们看看选项的差异。

服务于前端应用

选项 1:Django 服务 react app

在此选项中,Django 应用程序将在路由中为您的应用程序提供服务,例如/app/. 基本上该路线/app将加载反应应用程序的 index.html。就这么简单。

为了使其工作,您需要使用构建您的 React 应用程序npm run build并将文件复制到 Django 的静态文件夹。目前很好?选项 1 提供的好处之一,选项 2 没有的好处是,您可以为后端和前端使用相同的域,例如www.example.com.

选项 2:在 S3 中部署前端

您仍然需要使用 构建反应应用程序npm run build,但您不会将其复制到 Django,换句话说,您不希望 Django 为您的前端应用程序提供服务,您希望 s3 为静态网站提供服务。此方法需要一个单独的子域或域来托管 React 应用程序。

这是选项之间的唯一区别。您的前端应用程序将对 Django api 进行 api 调用,这对于两个选项都是相同的。我的首选选项是选项 2,以降低复杂性。

部署

我会选择 elasticbeanstalk 因为它很容易开始。您可以在 elasticbeanstalk 控制台中执行所有操作,从负载均衡器到 SSL、健康检查、更改 EC2 实例的 EC2 密钥对等。部署非常简单。它支持多种环境,您可以将一个 AWS 账户用于您的测试和生产环境。