

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

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

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

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

因為綠色環境是生產環境拓撲的副本，所以資料庫叢集及其所有資料庫執行個體都會在部署中複製。綠色環境也包含資料庫叢集所使用的功能，例如資料庫叢集快照、Performance Insights、增強型監控和 Aurora Serverless v2。

Amazon Aurora 藍/綠部署支援 Amazon RDS Proxy 和智慧型驅動程式。這些解決方案可偵測拓撲變更，並將連線重新導向至新的生產環境，而無需等待 DNS 傳播，進而縮短轉換期間的寫入器節點升級停機時間。

**注意**  
Aurora MySQL、Aurora PostgreSQL 和 Aurora Global Database 支援藍/綠部署。如需 Amazon RDS 可用性，請參閱《Amazon RDS 使用者指南》**中的 [Amazon RDS 藍/綠部署概觀](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments-overview.html)。

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

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

功能可用性和支援會因每個資料庫引擎的特定版本以及 AWS 區域而有所不同。如需詳細資訊，請參閱[藍/綠部署支援的區域和 Aurora 資料庫引擎](Concepts.Aurora_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>

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

1. 識別需要更新的生產資料庫叢集。

   下圖顯示生產資料庫叢集的範例。  
![\[藍/綠部署中的生產 (藍色) Aurora 資料庫叢集\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/images/blue-green-deployment-blue-environment-aurora.png)

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

   下圖顯示一個範例，說明如何從步驟 1 開始生產環境的藍/綠部署範例。在建立藍/綠部署時，RDS 會複製 Aurora 資料庫叢集的完整拓撲和組態，以建立綠色環境。複製的資料庫叢集和資料庫執行個體名稱都會附加 `-green-random-characters`。影像中的預備環境包含資料庫叢集 (auroradb-green-**abc123**)。它還包含資料庫叢集中的三個資料庫執行個體 (auroradb-instance1-green-**abc123**、auroradb-instance2-green-**abc123** 和 auroradb-instance3-green-**abc123**)。  
![\[適用於 Amazon Aurora 的藍/綠部署\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/images/blue-green-deployment-aurora.png)

   建立藍/綠部署時，您可以指定較高的資料庫引擎版本，並針對綠色環境中的資料庫叢集指定不同的資料庫叢集參數群組。您也可以針對資料庫叢集中的資料庫執行個體指定不同的資料庫參數群組。

   RDS 也會設定從藍色環境中主要資料庫執行個體到綠色環境中主要資料庫執行個體的複寫。
**重要**  
針對 Aurora MySQL 第 3 版，在您建立藍/綠部署之後，綠色環境中的資料庫叢集預設不允許寫入操作。然而，此設定不適用於具有 `CONNECTION_ADMIN` 權限的使用者 (包含 Aurora 主要使用者)。具有此權限的使用者可以覆寫 `read_only` 行為。如需詳細資訊，請參閱[角色型權限模型](AuroraMySQL.Compare-80-v3.md#AuroraMySQL.privilege-model)。

1. 對預備環境進行變更。

   例如，您可能會變更綠色環境中一或多個資料庫執行個體所使用的資料庫執行個體類別。

   如需修改資料庫叢集的詳細資訊，請參閱 [修改 Amazon Aurora 資料庫叢集](Aurora.Modifying.md)。

1. 測試您的預備環境。

   在測試期間，建議您將綠色環境中的資料庫保持唯讀狀態。在綠色環境上小心啟用寫入操作，因為它們可能會在綠色環境中造成複寫衝突。它們也可能會在切換後於生產資料庫中產生非預期的資料。若要啟用 Aurora MySQL 的寫入操作，請將 `read_only` 參數設為 `0`，然後重新啟動資料庫執行個體。對於 Aurora PostgreSQL，在工作階段層級將 `default_transaction_read_only` 參數設為 `off`。如果您需要使用 Amazon RDS Proxy 測試您的綠色環境，則必須建立新的 Amazon RDS Proxy，並使用它註冊綠色叢集。這可讓您獨立測試綠色環境，而不會影響您的生產藍環境流量。測試完成後刪除測試代理。

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

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

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

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

   在影像的範例中，切換期間會發生下列變更：
   + 綠色環境資料庫叢集 `auroradb-green-abc123` 會成為名為 `auroradb` 的生產資料庫叢集。
   + 名為 `auroradb-instance1-green-abc123` 的綠色環境資料庫執行個體會成為生產資料庫執行個體 `auroradb-instance1`。
   + 名為 `auroradb-instance2-green-abc123` 的綠色環境資料庫執行個體會成為生產資料庫執行個體 `auroradb-instance2`。
   + 名為 `auroradb-instance3-green-abc123` 的綠色環境資料庫執行個體會成為生產資料庫執行個體 `auroradb-instance3`。
   + 名為 `auroradb` 的藍色環境資料庫叢集會成為 `auroradb-old1`。
   + 名為 `auroradb-instance1` 的藍色環境資料庫執行個體會成為 `auroradb-instance1-old1`。
   + 名為 `auroradb-instance2` 的藍色環境資料庫執行個體會成為 `auroradb-instance2-old1`。
   + 名為 `auroradb-instance3` 的藍色環境資料庫執行個體會成為 `auroradb-instance3-old1`。

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

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