配置 Lightsail 实例以实现负载平衡 - Amazon Lightsail

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

配置 Lightsail 实例以实现负载平衡

在将实例附加到 Amazon 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 负载均衡器之前的配置建议

  • 你可以使用使用其他组件的 Magento AWS 参考部署,例如亚马逊RDS数据库:Terraform Magento Adobe Commer ce 开启。 AWS

  • 请务必启用会话持久性。Magento 使用购物车;对于在多个会话中进行多次访问的客户,这有助于确保客户在使用新会话返回时在购物车中保留商品。有关更多信息,请参阅为负载均衡器启用会话持久性

GitLab

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

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

您必须具备以下各项:

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

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

  • 应用程序的集中式数据库(“我的” SQL 或 “Postgre”SQL)。请参阅上面的数据库一般准则。

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

注意

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

Drupal

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

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

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

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

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

LAMP堆栈

横向扩展? 是。

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

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

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

MEAN堆栈

横向扩展? 是。

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

将 MongoDB 移到另一台计算机上,然后配置一种机制以在 Lightsail 实例之间共享根文档。

Redmine

横向扩展? 是。

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

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

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

Nginx

横向扩展? 是。

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

Joomla!

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

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

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

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

  • 几个运行 Joomla 的 Lightsail 实例连接到负载均衡器,文档根目录为 Joomla! 已同步。您可以使用诸如 Rsync 之类的工具来实现此目的,使用NFS服务器负责在所有 Lightsail 实例之间同步内容,或者使用共享文件。 AWS

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

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