

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定Lightsail執行個體進行負載平衡
<a name="configure-lightsail-instances-for-load-balancing"></a>

將執行個體連接至 Amazon Lightsail 負載平衡器之前，您必須評估應用程式的組態。例如，資料層與應用程式其他部分隔開時，負載平衡器運作的效果通常會更好。此主題會讓您了解每個 Lightsail 執行個體，建議是否要負載平衡 (或*水平擴展*) 以及如何以最佳方式設定您的應用程式。

## 一般準則：使用資料庫的應用程式
<a name="applications-that-use-a-database"></a>

針對使用資料庫的 Lightsail 應用程式，建議您將資料庫執行個體與應用程式其他部分隔開，這樣您就只會有一個資料庫執行個體。主要原因是這樣可避免將資料寫入超過一個資料庫。如果您不建立單一的資料庫執行個體，資料就會寫入使用者碰巧叫用的執行個體之資料庫。

## WordPress
<a name="configure-wordpress-application-for-lightsail-load-balancer"></a>

**水平擴展？** 是 (對於 WordPress 部落格或網站)。

 **使用 Lightsail 負載平衡器之前的組態建議** 
+ 隔開資料庫，讓每個在負載平衡器後方執行的 WordPress 執行個體從相同的地方存放和擷取資訊。如果需要資料庫的更高效能，您可以獨立在 Web 伺服器外複寫或變更處理能力或記憶體。
+ 將檔案和靜態內容卸載至 Lightsail 儲存貯體。若要執行此操作，則必須在 WordPress 網站上安裝 WP Offload Media Lite 外掛程式，並將其設定為連接至 Lightsail 儲存貯體。如需詳細資訊，請參閱[教學課程：將 WordPress 執行個體連接至儲存貯體](amazon-lightsail-connecting-buckets-to-wordpress.md)。

## Node.js
<a name="configure-node-js-application-for-lightsail-load-balancer"></a>

**水平擴展？** 是，但有一些考量。

 **使用 Lightsail 負載平衡器之前的組態建議** 
+ Lightsail 中，由 Bitnami 封裝的 Node.js 堆疊內含有 Node.js、Apache、Redis (記憶體內資料庫) 和 Python。根據您部署的應用程式，您可以跨幾個伺服器執行負載平衡。然而，您需要設定負載平衡器以在所有 Web 伺服器之間平衡流量並將 Redis 移至另一個伺服器。
+ 分割 Redis 伺服器至另一個伺服器以和所有執行個體通訊。視需要新增資料庫伺服器。
+ Redis 的其中一個主要使用案例是在本機快取資料，如此您就不必持續叫用中央資料庫。建議您啟用工作階段持續性以運用 Redis 的效能提升。如需詳細資訊，請參閱[為負載平衡器啟用工作階段持續性](enable-session-stickiness-persistence-or-change-cookie-duration.md)。
+ 您也可以有共用的 Redis 節點，這樣您也能夠共用節點或在使用工作階段持續性的每個機器上使用本機快取。
+ 如果您想要使用 Apache 部署負載平衡器，請考量將 `mod_proxy_balancer` 包含於 Apache 伺服器中。

如需詳細資訊，請參閱[擴展 Node.js 應用程式](https://www.freecodecamp.org/news/scaling-node-js-applications-8492bd8afadc)。

## Magento
<a name="configure-magento-application-for-lightsail-load-balancer"></a>

**水平擴展？** 是。

 **使用 Lightsail 負載平衡器之前的組態建議** 
+ 您可以使用使用其他元件的 Magento AWS 參考部署，例如 Amazon RDS 資料庫：[Terraform Magento Adobe Commerce on AWS](https://aws.amazon.com/quickstart/terraform-modules/magento-commerce/)。
+ 請務必啟用工作階段持續性。Magento 使用購物車，這可協助確保在超過一個工作階段造訪多次的客戶可於新工作階段返回時在其購物車中保留項目。如需詳細資訊，請參閱[為負載平衡器啟用工作階段持續性](enable-session-stickiness-persistence-or-change-cookie-duration.md)。

## GitLab
<a name="configure-gitlab-application-for-lightsail-load-balancer"></a>

**水平擴展？** 是，但有考量。

 **使用 Lightsail 負載平衡器之前的組態建議** 

您必須有以下項目：
+ 執行中且可使用的 Redis 節點
+ 共用的網路儲存伺服器 (NFS)
+ 應用程式的集中式資料庫 (MySQL 或 PostgreSQL)。請參閱以上關於資料庫的一般準則。

如需詳細資訊，請參閱 *GitLab* 網站上的[高可用性](https://docs.gitlab.com/ee/administration/reference_architectures/#high-availability-ha)。

**注意**  
GitLab 藍圖目前不提供上述內容中提及的共用網路儲存伺服器 (NFS)。

## Drupal
<a name="configure-drupal-application-for-lightsail-load-balancer"></a>

**水平擴展？** 是。Drupal 有一份正式文件說明如何水平擴展您的應用程式：[伺服器擴展](https://www.drupal.org/docs/managing-site-performance-and-scalability/server-scaling)。

 **使用 Lightsail 負載平衡器之前的組態建議** 

您必須設定 Drupal 模組以在不同的執行個體間同步檔案。Drupal 網站有數個模組，但可能更適用於建立原型而非生產使用。

使用模組將檔案存放於 Amazon S3。這可讓您集中您的檔案，不必在每個目標執行個體上保留個別的複本。如此一來，假設您編輯檔案，集中存放區就可提供更新，而您的使用者無論叫用哪個執行個體都會看見相同的檔案。
+  [Amazon S3 檔案系統](https://www.drupal.org/project/s3fs) 
+  [內容同步](https://www.drupal.org/project/content_sync) 

如需詳細資訊，請參閱[水平和在雲端中擴展 Drupal](https://www.slideshare.net/burgerboydaddy/scaling-drupal-horizontally-and-in-cloud)。

## LAMP 堆疊
<a name="configure-lamp-application-for-lightsail-load-balancer"></a>

**水平擴展？** 是。

 **使用 Lightsail 負載平衡器之前的組態建議** 
+ 您應該在單獨的執行個體上建立資料庫。負載平衡器後方的所有執行個體都應指向此單獨的資料庫執行個體，以從相同的地方存放和擷取資訊。
+ 根據您想要部署的應用程式，考量如何共用檔案系統 (NFS、Lightsail 區塊儲存磁碟或 Amazon S3 儲存)。

## MEAN 堆疊
<a name="configure-mean-application-for-lightsail-load-balancer"></a>

**水平擴展？** 是。

 **使用 Lightsail 負載平衡器之前的組態建議** 

將 MongoDB 移至另一部機器並設定機制以在 Lightsail 執行個體間共用根文件。

## Redmine
<a name="configure-redmine-application-for-lightsail-load-balancer"></a>

**水平擴展？** 是。

 **使用 Lightsail 負載平衡器之前的組態建議** 
+ 取得 [Redmine\_S3 plugin](http://www.redmine.org/plugins/redmine_s3)，在 Amazon S3 而非本機檔案系統中儲存附件。
+ 將資料庫分隔到不同的執行個體。

## Nginx
<a name="configure-nginx-application-for-lightsail-load-balancer"></a>

**水平擴展？** 是。

您可以讓一個或多個 Lightsail 執行個體執行 Nginx 並連接至 Lightsail 負載平衡器。如需詳細資訊，請參閱[使用 NGINX 擴展 Web 應用程式，第 1 部分：負載平衡](https://www.nginx.com/blog/scaling-web-applications-nginx-part-load-balancing/)。

## Joomla\!
<a name="configure-joomla-application-for-lightsail-load-balancer"></a>

**水平擴展？** 是，但有考量。

 **使用 Lightsail 負載平衡器之前的組態建議** 

雖然 Joomla 網站上沒有正式文件，但在其社群論壇上有一些討論。有些使用者成功水平擴展了 Joomla 執行個體，而其叢集具有以下組態：
+ 設定為啟用工作階段持續性的 Lightsail 負載平衡器。如需詳細資訊，請參閱[為負載平衡器啟用工作階段持續性](enable-session-stickiness-persistence-or-change-cookie-duration.md)。
+ 數個執行 Joomla 的 Lightsail 執行個體已連接至負載平衡器，且 Joomla\! 的文件根已同步。若要這麼做，您可以使用 Rsync 之類的工具，擁有負責同步所有 Lightsail 執行個體間之內容的 NFS 伺服器，或使用 AWS共用檔案。
+ 設定了複寫叢集的數個資料庫伺服器。
+ 在每個 Lightsail 執行個體中所設定的相同快取系統。有一些實用的擴充功能，例如 [JotCache](https://extensions.joomla.org/extension/jotcache/)。