我们有许多 Web 应用程序/网站。有些相当复杂,但其中许多都是简单的网站。目前,我们使用nginx
和在单个专用服务器上托管大约 10 个网站uwsgi
。虽然这非常经济高效且维护时间更短(因为我们需要每 10 个网站维护 1 台服务器),但它存在一些我不喜欢的问题,包括:
- 升级 - 假设我想升级 Postgres,我需要担心 10 个站点及其配置。这使得任何依赖项升级以及操作系统升级都非常危险且复杂。
- Python 3 - 我需要将一个项目升级到 Python 3。虽然
virtualenv
可能允许我在不影响系统其余部分的情况下进行升级,但我不确定非 Python 依赖项。 - 操作系统问题 - 有时会出现奇怪的操作系统问题。如果说有一个网站在此上运行,我可以使用负载平衡器将流量路由到单独的服务器并在此处解决问题。现在有 10 个网站,这也会耗费时间。
所以我正在考虑如何解决这些问题。我考虑了几个选项。
AWS - 在单独的实例上运行复杂的应用程序,使用 RDS 作为数据库。这样,我们还可以单独扩展和缩减(或扩展和缩减)应用程序,而不必担心其他应用程序。简单的网站可以托管在 EC2 或任何其他服务器上,因为它们很简单,不需要定期更新。
使用 Docker 在当前专用服务器中托管这些应用程序/网站,以避免上述问题。我是 docker 新手,因此我不太确定它是否能解决上述问题。
您在 AWS 和/或 Docker 托管 Python Web 应用程序方面的经验如何?您如何托管大量应用程序/网站(我认为对于机构和自由职业者来说,这是典型情况)?
答案1
在这种情况下,AWS 就是正确答案!
如果您认为这些简单的网站/应用程序将同时更新,则可以在同一个实例上为这些简单的网站/应用程序启动一个小型 EC2 实例。
每个需要单独维护/更新的更复杂的网站/应用程序都有一个更大的实例。