配置 Lightsail 实例以进行负载均衡 - Amazon Lightsail

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

配置 Lightsail 实例以进行负载均衡

在将实例连接到 Lightsail 负载均衡器之前,您需要评估您的应用程序的配置。例如,在数据层与应用程序的其余部分分开时,负载均衡器通常具有更好的性能。本主题介绍了每种 Lightsail 实例,并提供了有关是否进行负载均衡(或横向扩展)以及如何以最佳方式配置应用程序的建议。

一般准则:使用数据库的应用程序

对于使用数据库的 Lightsail 应用程序,我们建议您将数据库实例与应用程序的其余部分分开,以便仅具有一个数据库实例。主要原因是,您希望避免将数据写入到多个数据库中。如果未创建单个数据库实例,数据将写入到用户访问的相应实例上的数据库中。

WordPress

横向扩展? 是的,适用于 WordPress 博客或网站。

在使用 Lightsail 负载均衡器之前的配置建议

  • 将您的数据库分开,以便在负载均衡器后面运行的每个 WordPress 实例在相同的位置中存储和检索信息。如果您需要从数据库中获得更高的性能,您可以独立于 Web 服务器复制或更改处理能力或内存。

  • 将您的文件和静态内容分载到 Lightsail 存储桶。为此,您必须在 WordPress 网站上安装 WP Offload Media Lite 插件,并进行配置以连接到 Lightsail 存储桶。有关更多信息,请参阅教程:将 WordPress 实例连接到存储桶

Node.js

横向扩展? 是,但需要注意一些事项。

在使用 Lightsail 负载均衡器之前的配置建议

  • 在 Lightsail 中,由 Bitnami 打包的 Node.js 堆栈包含 Node.js、Apache、Redis(内存数据库)和 Python。根据部署的应用程序,您可以在几个服务器之间进行负载均衡。不过,您需要配置负载均衡器以在所有 Web 服务器之间均衡流量,并将 Redis 移到另一个服务器。

  • 将 Redis 服务器拆分到另一个服务器,以便与所有实例进行通信。如有必要,请添加一个数据库服务器。

  • Redis 的一个主要使用案例是在本地缓存数据,因此,您不必持续访问中央数据库。建议您启用会话持久性以利用 Redis 中提升的性能。有关更多信息,请参阅为负载均衡器启用会话持久性

  • 您还可能具有共享的 Redis 节点,因此,您也可以共享一个节点,或者通过会话持久性使用每个计算机上的本地缓存。

  • 如果要使用 Apache 部署负载均衡器,请考虑在 Apache 服务器中包含 mod_proxy_balancer

有关更多信息,请参阅扩展 Node.js 应用程序

Magento

横向扩展? 是。

在使用 Lightsail 负载均衡器之前的配置建议

GitLab

横向扩展? 是,但需要注意一些事项。

在使用 Lightsail 负载均衡器之前的配置建议

您必须具备以下各项:

  • Redis 节点正在运行并且可以使用

  • 共享的网络存储服务器 (NFS)

  • 应用程序的集中数据库(MySQL 或 PostgreSQL)。请参阅上面的数据库一般准则。

有关更多信息,请参阅 GitLab 网站上的 高可用性

注意

上面中提到的共享网络存储服务器(NFS)目前不适用于 GitLab 蓝图。

Drupal

横向扩展? 是。Drupal 提供了正式文档以说明如何横向扩展应用程序:服务器扩展

在使用 Lightsail 负载均衡器之前的配置建议

您必须设置一个 Drupal 模块以在不同实例之间同步文件。Drupal 网站提供了一些模块,但它们可能更适用于原型而不是生产使用。

使用允许在 Amazon S3 中存储文件的模块。这会提供一个集中位置以存储您的文件,而不是在每个目标实例上保留单独的副本。这样,如果您编辑文件,则会从集中的存储中获取更新并且用户看到相同的文件,而无论他们访问哪个实例。

有关更多信息,请参阅 横向扩展以及在云中扩展 Drupal

LAMP 堆栈

横向扩展? 是。

在使用 Lightsail 负载均衡器之前的配置建议

  • 您应该在单独的实例上创建一个数据库。负载均衡器后面的所有实例应指向该单独数据库实例,因此,它们在相同的位置中存储和检索信息。

  • 根据要部署的应用程序,请考虑如何共享文件系统(NFS、Lightsail 数据块存储磁盘或 Amazon S3 存储)。

MEAN 堆栈

横向扩展? 是。

在使用 Lightsail 负载均衡器之前的配置建议

将 MongoDB 移到另一个计算机,并配置一种机制以在 Lightsail 实例之间共享根目录文档。

Redmine

横向扩展? 是。

在使用 Lightsail 负载均衡器之前的配置建议

  • 获取 Redmine_S3 插件以在 Amazon S3 上存储附件,而不是在本地文件系统中存储。

  • 将数据库拆分到不同的实例中。

Nginx

横向扩展? 是。

您可能具有一个或多个运行 Nginx 并连接到 Lightsail 负载均衡器的 Lightsail 实例。有关更多信息,请参阅使用 NGINX 扩展 Web 应用程序,第 1 部分:负载均衡

Joomla!

横向扩展? 是,但需要注意一些事项。

在使用 Lightsail 负载均衡器之前的配置建议

尽管在 Joomla 网站上没有提供正式的文档,但在社群论坛中具有一些讨论内容。某些用户已成功横向扩展 Joomla 实例,这些实例具有使用以下配置的集群:

  • 将 Lightsail 负载均衡器配置为启用会话持久性。有关更多信息,请参阅为负载均衡器启用会话持久性

  • 将几个运行 Joomla 的 Lightsail 实例连接到您的负载均衡器,并同步了 Joomla! 的文档根目录。您可以使用 Rsync 等工具执行该操作,并配置一个 NFS 服务器以负责在所有 Lightsail 实例之间同步内容,或者使用 AWS 共享文件。

  • 为一些数据库服务器配置了复制集群。

  • 在每个 Lightsail 实例中配置了相同的缓存系统。具有一些有用的扩展,例如,JotCache