

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

# Amazon RDS 藍/綠部署概觀
<a name="blue-green-deployments-overview"></a>

透過使用 Amazon RDS 藍/綠部署，您可以進行並測試資料庫變更，然後在生產環境中實作這些變更。*藍/綠部署*會建立一個複製生產環境的預備環境。在藍/綠部署中，*藍色環境*是目前的生產環境。*綠色環境*是預備環境，並與目前生產環境保持同步。

您可以對綠色環境中的 RDS 資料庫執行個體進行變更，而不會影響生產工作負載。例如，您可以升級主要或次要資料庫引擎版本、升級基礎檔案系統組態或在預備環境中變更資料庫參數。您可以在綠色環境中徹底測試變更。備妥後，您可以*切換*環境，將綠色環境轉換為新的生產環境。切換通常只需不到一分鐘的時間，不會遺失資料，也不需要變更應用程式。

因為綠色環境是生產環境拓撲的副本，所以綠色環境包含資料庫執行個體所使用的功能。這些功能包含僅供讀取複本、儲存組態、資料庫快照、自動備份、Performance Insights 和增強型監控。如果藍色資料庫執行個體是多可用區域資料庫執行個體部署，則綠色資料庫執行個體也是多可用區域資料庫執行個體部署。

**注意**  
目前，僅 RDS for MariaDB、RDS for MySQL 和 RDS for PostgreSQL 支援藍/綠部署。如需了解 Amazon Aurora 可用性，請參閱《Amazon Aurora 使用者指南》**中的 [Amazon Aurora 藍/綠部署概觀](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments-overview.html)。  
在某些情況下，RDS for PostgreSQL 會使用邏輯複寫 (而非實體複寫)，讓綠色環境與藍色環境保持同步。如需詳細資訊，請參閱[藍/綠部署的 PostgreSQL 複寫方法](blue-green-deployments-replication-type.md)。

**Topics**
+ [區域和版本可用性](#blue-green-deployments-region-version-availability)
+ [使用 Amazon RDS 藍/綠部署的優點](#blue-green-deployments-benefits)
+ [藍/綠部署的工作流程](#blue-green-deployments-major-steps)
+ [授予 Amazon RDS 藍/綠部署操作的存取權](blue-green-deployments-authorizing-access.md)
+ [Amazon RDS 藍/綠部署的限制和考量事項](blue-green-deployments-considerations.md)
+ [Amazon RDS 藍/綠部署的最佳實務](blue-green-deployments-best-practices.md)

## 區域和版本可用性
<a name="blue-green-deployments-region-version-availability"></a>

功能可用性和支援會因每個資料庫引擎的特定版本以及 AWS 區域而有所不同。如需詳細資訊，請參閱[Amazon RDS 藍/綠部署的支援區域和資料庫引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.BlueGreenDeployments.md)。

## 使用 Amazon RDS 藍/綠部署的優點
<a name="blue-green-deployments-benefits"></a>

透過使用 Amazon RDS 藍/綠部署，您可以隨時掌握最新的安全修補程式、改善資料庫效能，以及採用較新的資料庫功能，其停機時間短暫且可預測。藍/綠部署可減少資料庫更新 (例如主要或次要引擎版本升級) 的風險和停機時間。

藍/綠部署提供下列優點：
+ 輕鬆建立生產就緒的預備環境。
+ 自動將資料庫變更從生產環境複寫到預備環境。
+ 在安全預備環境中測試資料庫變更，而不會影響生產環境。
+ 隨時掌握最新的資料庫修補程式和系統更新。
+ 實作和測試較新的資料庫功能。
+ 切換預備環境以成為新的生產環境，而無需對應用程式進行變更。
+ 透過使用內建的防護機制安全切換。
+ 消除切換期間的資料遺失情況。
+ 通常在一分鐘內快速切換，取決於您的工作負載。

## 藍/綠部署的工作流程
<a name="blue-green-deployments-major-steps"></a>

當您使用藍/綠部署進行資料庫更新時，請完成下列主要步驟。

1. 識別需要更新的生產環境。

   例如，此影像中的生產環境具有多可用區域資料庫執行個體部署 (mydb1) 和僅供讀取複本 (mydb2)。  
![\[藍/綠部署中的生產 (藍色) 環境\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/blue-green-deployment-blue-environment.png)

1. 建立藍/綠部署。如需說明，請參閱[在 Amazon RDS 中建立藍/綠部署](blue-green-deployments-creating.md)。

   下圖顯示一個範例，說明如何從步驟 1 開始生產環境的藍/綠部署範例。在建立藍/綠部署時，RDS 會複製主要資料庫執行個體的完整拓撲和組態，以建立綠色環境。複製的資料庫執行個體名稱會附加 `-green-random-characters`。影像中的預備環境包含多可用區域資料庫執行個體部署 (mydb1-green-**abc123**) 和僅供讀取複本 (mydb2-green-**abc123**)。  
![\[藍/綠部署\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/blue-green-deployment.png)

   建立藍/綠部署時，您可以升級資料庫引擎版本，並針對綠色環境中的資料庫執行個體指定不同的資料庫參數群組。RDS 也會設定從藍色環境中主要資料庫執行個體到綠色環境中主要資料庫執行個體的複寫。

   在您建立藍/綠部署之後，綠色環境中的資料庫執行個體會預設為唯讀。

1. 如有需要，對預備環境進行其他變更。例如，您可能會變更綠色環境中一或多個資料庫執行個體所使用的資料庫執行個體類別。

   如需修改資料庫執行個體的相關資訊，請參閱 [修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。

1. 測試您的預備環境。

   在測試期間，建議您將綠色環境中的資料庫保持唯讀狀態。在綠色環境上小心啟用寫入操作，因為它們可能會在綠色環境中造成複寫衝突。它們也可能會在切換後於生產資料庫中產生非預期的資料。若要啟用 RDS for MySQL 的寫入操作，請將 `read_only` 參數設為 `1`，並等待參數群組同步。由於 `read_only` 是動態參數，因此不需要重新啟動。同步後，將 `read_only` 從 `1` 變更為 `0`。對於使用邏輯複寫的 RDS for PostgreSQL 部署，請在工作階段層級將 `default_transaction_read_only` 參數設為 `off`。對於使用實體複寫的部署，您無法在綠色環境中啟用寫入操作。

1. 備妥後，請切換以將預備環境轉換為新的生產環境。如需說明，請參閱[在 Amazon RDS 中切換藍/綠部署](blue-green-deployments-switching.md)。

   切換會產生停機時間。停機時間通常不到一分鐘，但可能更長，取決於您的工作負載。

   下圖顯示切換後的資料庫執行個體。  
![\[切換藍/綠部署後的資料庫執行個體\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/blue-green-deployment-switchover.png)

   切換後，綠色環境中的資料庫執行個體會成為新的生產資料庫執行個體。目前生產環境中的名稱和端點會指派給新切換的生產環境，不需要對您的應用程式進行任何變更。因此，您的生產流量現在會流向新的生產環境。先前藍色環境中的資料庫執行個體會重新命名，方法是將 `-oldn` 附加至目前名稱 (其中 `n` 是數字)。例如，假設藍色環境中資料庫執行個體的名稱為 `mydb1`。轉換後，資料庫執行個體名稱會是 `mydb1-old1`。

   在影像的範例中，切換期間會發生下列變更：
   + 名為 `mydb1-green-abc123` 的綠色環境多可用區域執行個體部署會成為名為 `mydb1` 的生產多可用區域執行個體部署。
   + 名為 `mydb2-green-abc123` 的綠色環境僅供讀取複本會成為生產僅供讀取複本 `mydb2`。
   + 名為 `mydb1` 的藍色環境多可用區域資料庫執行個體部署會成為 `mydb1-old1`。
   + 名為 `mydb2` 的藍色環境僅供讀取複本會成為 `mydb2-old1`。

1. 如果不再需要藍/綠部署，您可以將其刪除。如需說明，請參閱[刪除 Amazon RDS 中的藍/綠部署](blue-green-deployments-deleting.md)。

   切換後，不會刪除先前的生產環境，以便您可以在必要時使用它進行迴歸測試。