在 Amazon RDS 中建立藍/綠部署 - Amazon Relational Database Service

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

Amazon RDS 中建立藍/綠部署

建立藍/綠部署時,您可以指定要在部署中複製的來源資料庫執行個體。您選擇的資料庫執行個體是生產資料庫執行個體,而且其會成為藍色環境中的主要資料庫執行個體。此資料庫執行個體會複製到綠色環境,而且 RDS 會設定從藍色環境中的資料庫執行個體複寫到綠色環境中的資料庫執行個體。

RDS 會將藍色環境的拓撲和功能複製到預備區域。如果藍色資料庫執行個體具有僅供讀取複本,則會將其複製為綠色執行個體的複本。所有綠色複本的配置儲存都符合綠色主要執行個體,而其他儲存參數則繼承自藍色複本。

如果藍色資料庫執行個體是多可用區域資料庫執行個體部署,則會建立綠色資料庫執行個體,作為多可用區域資料庫執行個體部署。

準備進行藍/綠部署

在建立藍/綠部署之前,您必須採取某些步驟,具體取決於 資料庫執行個體正在執行的引擎。

準備 RDS for MySQL 或 RDS for MariaDB 資料庫執行個體以進行藍/綠部署

在為 RDS for MySQL 或 RDS for MariaDB 資料庫執行個體建立藍/綠部署之前,您必須啟用自動備份。如需說明,請參閱 啟用自動備份

為具有實體複寫的藍/綠部署準備 RDS for PostgreSQL 資料庫執行個體

在建立使用實體複寫的 RDS for PostgreSQL 藍/綠部署之前,您必須啟用自動備份。如需說明,請參閱 啟用自動備份

如需使用實體複寫與邏輯複寫的版本清單,請參閱藍/綠部署的 PostgreSQL 複寫方法

使用邏輯複寫為藍/綠部署準備 RDS for PostgreSQL 資料庫執行個體

建立使用邏輯複寫的 RDS for PostgreSQL 藍/綠部署之前,請務必執行下列動作。如需使用邏輯複寫與實體複寫的版本清單,請參閱藍/綠部署的 PostgreSQL 複寫方法

  • 將執行個體與已開啟邏輯複寫 (rds.logical_replication) 的自訂資料庫參數群組建立關聯。從藍色環境複寫到綠色環境時,需要邏輯複寫。如需說明,請參閱 修改 Amazon RDS Amazon 數據庫參數組中的參數

    由於藍/綠部署每個資料庫至少需要一個背景工作者,請務必根據您的工作負載調整下列組態設定。如需調整每個設定的說明,請參閱 PostgreSQL 文件中的組態設定

    • max_replication_slots

    • max_wal_senders

    • max_logical_replication_workers

    • max_worker_processes

    啟用邏輯複寫並設定所有組態選項後,請務必重新啟動資料庫執行個體,以讓您的變更生效。藍/綠部署要求資料庫執行個體與資料庫參數群組同步,否則建立作業將會失敗。如需詳細資訊,請參閱重新啟動中的資料庫執行個體

  • 確認資料庫執行個體不是外部複寫的來源或目標。如需詳細資訊,請參閱藍/綠部署的一般限制

  • 確定資料庫執行個體中的所有資料表都有主索引鍵。PostgreSQL 邏輯複寫不允許對沒有主索引鍵的資料表執行 UPDATEDELETE 操作。

  • RDS for PostgreSQL 使用 PostgreSQL 的原生邏輯複寫,在藍色執行個體上儲存預先寫入日誌 (WAL) 區段,直到在綠色環境中重新播放為止。建立藍/綠部署之前,請檢查下列指標,確認藍執行個體具有足夠的容量:

    • FreeStorageSpace

    • TransactionLogsGeneration

    • TransactionLogsDiskUsage

    • OldestReplicationSlotLag

    若要估計藍色執行個體上所需的額外儲存空間,請在尖峰工作負載期間監控 TransactionLogGeneration CloudWatch 指標。例如,如果您的工作負載在 24 小時內產生 100 GB 的 WAL 資料,請確定您至少有 100 GB 的額外儲存空間,以容納一天的 WAL 區段。如需詳細資訊,請參閱在 Amazon RDS執行個體中監控指標

在建立藍/綠部署時指定變更

建立藍/綠部署時,您可以在綠色環境中對資料庫執行個體進行下列變更。

您可以在部署之後,於綠色環境中對資料庫執行個體進行其他修改。例如,您可以指定較高的引擎版本或不同的參數群組。

如需修改資料庫執行個體的相關資訊,請參閱修改 Amazon RDS 資料庫執行個體

指定較高的引擎版本

如果想要測試資料庫引擎升級,您可以指定更高的引擎版本。轉換時,資料庫會升級至您指定的主要或次要資料庫引擎版本。

指定不同的資料庫參數群組

您可以測試參數變更如何影響綠色環境中的資料庫執行個體,或在升級時針對新的主要資料庫引擎版本指定參數群組。

如果您指定不同的資料庫參數群組,則指定的資料庫參數群組會與綠色環境中的所有資料庫執行個體相關聯。如果您指定不同的參數群組,則綠色環境中的每個資料庫執行個體都會與其對應藍色資料庫執行個體的參數群組相關聯。

修改儲存和效能設定

調整綠色環境中的儲存體和效能設定,以最佳化資源配置。這些設定包括配置的儲存、佈建的 IOPS、儲存類型和儲存輸送量 (適用於 gp3 儲存)。

您可以將綠色資料庫執行個體的儲存類型變更為 gp2、gp3、io1 或 io2。對於 gp3 儲存,您也可以調整儲存輸送量,以增強高需求工作負載的資料傳輸效能,或降低較不密集應用程式的成本。如需詳細資訊,請參閱Amazon RDS 資料庫執行個體儲存

您也可以選擇在綠色環境中增加或減少配置的儲存。不過,只有在目標配置的儲存至少比目前的儲存用量多 20% 時,才會發生儲存減少。如果您減少配置的儲存,Amazon RDS 會啟動儲存組態升級。如需詳細資訊,請參閱升級儲存組態

如果藍色資料庫執行個體使用磁性儲存,您必須將綠色資料庫執行個體變更為一般用途或佈建 IOPS 儲存類型,才能增加或減少配置的儲存。

啟用 RDS Optimized Writes

您可以使用藍/綠部署,升級至支援 RDS Optimized Writes 的資料庫執行個體類別。您只能在使用受支援的資料庫執行個體類別建立的資料庫上啟用 RDS Optimized Writes。因此,此選項會建立使用受支援資料庫執行個體類別的綠色資料庫,可讓您在綠色資料庫執行個體上開啟 RDS Optimized Writes。

如果您要從不支援 RDS Optimized Writes 的資料庫執行個體類別升級為支援 RDS Optimized Writes 的執行個體類別,則也必須升級綠色資料庫執行個體的儲存組態。如需詳細資訊,請參閱升級儲存組態

您只能升級主要綠色資料庫執行個體的資料庫執行個體類別。根據預設,綠色環境中的僅供讀取複本會繼承藍色環境中的資料庫執行個體設定。成功建立綠色環境後,您必須在綠色環境中手動修改僅供讀取複本的資料庫執行個體類別。

視藍色資料庫執行個體的引擎版本和執行個體類別而定,不支援某些執行個體類別升級。如需資料庫執行個體類別的詳細資訊,請參閱 數據庫實例類

升級儲存組態

如果您的藍色資料庫不在最新的儲存組態上,RDS 可以將綠色資料庫執行個體從舊的儲存組態 (32 位元檔案系統) 移轉至偏好的組態。您可以使用 RDS 藍/綠部署來克服舊版 32 位元檔案系統對儲存和檔案大小的擴展限制。此外,如果指定的資料庫執行個體類別支援 Optimized Writes,則此設定會將儲存組態變更為與 RDS Optimized Writes 相容。

注意

升級儲存組態是 I/O 密集型作業,會導致藍/綠部署的建立時間延長。如果藍色資料庫執行個體使用佈建 IOPS SSD (io1 或 io2 Block Express) 儲存,以及如果您提供的綠色環境的執行個體大小為 4xlarge 或更高,則儲存體升級程序會更快。涉及一般用途 SSD (gp2) 儲存體的儲存升級可能會耗盡您的 I/O 用量餘額,導致升級時間更長。如需詳細資訊,請參閱Amazon RDS 資料庫執行個體儲存

在儲存升級期間,綠色資料庫執行個體暫時無法使用,而藍色資料庫執行個體仍然可用。複寫在此期間會暫停。監控藍色執行個體上的儲存體,如果儲存體達到 90%,請考慮擴展,因為綠色執行個體會在升級後自動擴展 10%。

只有當您的藍色資料庫在最新的儲存組態上,或您要變更相同要求中的資料庫執行個體類別時,才能使用此選項。您只能在最初建立藍/綠部署時升級儲存體組態。

藍/綠部署的延遲載入和儲存初始化

當您建立藍/綠部署時,Amazon RDS 會透過從資料庫快照還原,在綠色環境中建立主要資料庫執行個體。建立後,綠色資料庫執行個體及其僅供讀取複本會透過稱為延遲載入的程序,繼續在背景中載入資料。

延遲載入只會載入應用程式請求的資料區塊。如果您嘗試存取尚未載入的資料,Amazon EBS 會立即從 Amazon S3 擷取資料,而剩餘的資料會繼續在背景載入。如需更多資訊,請參閱 Amazon EBS 快照

為了加速完整磁碟區效能,Amazon RDS 提供儲存體初始化,可讀取綠色環境磁碟區中的所有區塊。Amazon EBS 會主動從 Amazon S3 下載區塊,從第一次使用開始提供最大磁碟區效能。儲存體初始化完全發生在背景中,確保不會影響資料庫執行個體可用性或進行中的活動,例如修補或升級。

儲存體初始化僅適用於具有 gp2io1gp3io2磁碟區類型的藍/綠部署中的執行個體。它支援 t3 和 t4 系列以外的所有執行個體類別。如果您將單一可用區部署中的綠色資料庫執行個體修改為多可用區資料庫執行個體部署,儲存體初始化會在多可用區組態中包含次要節點。

在儲存體初始化期間,執行個體仍然完全可用,可用於資料庫操作,但儲存體在初始化完成之前可能無法達到完整效能。儲存體初始化正在進行時,整體執行個體狀態會變更為儲存體初始化,而進度指示器會反映資料庫執行個體所有磁碟區的最低初始化層級。

使用 主控台 AWS CLI或 Amazon RDS API 來監控儲存體初始化。

Console

在 中 AWS Management Console,您會看到儲存體初始化的進度與資料庫執行個體狀態。

藍/綠部署的儲存體初始化進度指標
AWS CLI

使用 AWS CLI,您可以使用 describe-db-instances 命令來監控儲存體初始化。回應中的 PercentProgress 欄位會顯示從 Amazon S3 擷取的資料百分比。

aws rds describe-db-instances --db-instance-identifier my-db-instance { "DBInstances": [ { "DBInstanceIdentifier": "my-db-instance", "DBInstanceClass": "db.m5.2xlarge", "Engine": "postgres", "DBInstanceStatus": "storage-initialization", ... "PercentProgress": "34" } ] }
Amazon RDS API

使用 Amazon RDS API,您可以呼叫 DescribeDBInstances 動作來擷取儲存體初始化的狀態。

隨著背景初始化任務的進展,進度指示器會更新,可讓您在完整儲存初始化完成之前追蹤儲存準備狀態。當您的綠色資料庫執行個體完全運作時,儲存體初始化可實現最佳化效能。

建立藍/綠部署

您可以使用 AWS Management Console、 AWS CLI或 RDS API 建立藍/綠部署。

建立藍/綠部署
  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/rds/:// 開啟 Amazon RDS 主控台。

  2. 在導覽窗格中,選擇 Databases (資料庫),然後選擇您要將其複製到綠色環境的資料庫執行個體

  3. 選擇動作建立藍/綠部署

    Create Blue/Green Deployment (建立藍/綠部署) 頁面即會出現。

    建立藍/綠部署
  4. 檢閱藍色資料庫識別符。請確定它們符合您在藍色環境中預期的資料庫執行個體。如果不符,請選擇 Cancel (取消)。

  5. 針對 Blue/Green Deployment identifier (藍/綠部署識別符),請輸入藍/綠部署的名稱。

  6. 在其餘區段中,指定綠色環境的設定。如需每項設定的相關資訊,請參閱 建立藍/綠部署的設定

    您可以在部署之後,於綠色環境中對資料庫進行其他修改。

  7. 選擇建立預備環境

若要使用 建立藍/綠部署 AWS CLI,請使用 create-blue-green-deployment 命令。如需所有可用選項的詳細資訊,請參閱 建立藍/綠部署的設定

對於 Linux、 macOS或 Unix:

aws rds create-blue-green-deployment \ --blue-green-deployment-name my-blue-green-deployment \ --source arn:aws:rds:us-east-2:123456789012:db:mydb1 \ --target-engine-version 8.0.31 \ --target-db-parameter-group-name mydbparametergroup

在 Windows 中:

aws rds create-blue-green-deployment ^ --blue-green-deployment-name my-blue-green-deployment ^ --source arn:aws:rds:us-east-2:123456789012:db:mydb1 ^ --target-engine-version 8.0.31 ^ --target-db-parameter-group-name mydbparametergroup

若要使用 Amazon RDS API 建立藍/綠部署,請使用 CreateBlueGreenDeployment操作。如需每個選項的詳細資訊,請參閱建立藍/綠部署的設定

建立藍/綠部署的設定

下表說明您在建立藍/綠部署時可以選擇的設定。如需 AWS CLI 選項的詳細資訊,請參閱 create-blue-green-deployment。如需 RDS API 參數的詳細資訊,請參閱 CreateBlueGreenDeployment

主控台設定 設定說明 CLI 選項和 RDS API 參數

配置儲存

為您的綠色資料庫執行個體配置的儲存量 (以 GB 為單位)。您可以選擇增加或減少配置的儲存體。

如果您的藍色資料庫執行個體使用磁性 (standard) 儲存體,您必須將綠色資料庫執行個體變更為一般用途或佈建 IOPS 儲存體類型,才能修改綠色環境中配置的儲存體。

如需詳細資訊,請參閱Amazon RDS 資料庫執行個體儲存

CLI 選項:

--target-allocated-storage

API 參數:

TargetAllocatedStorage

藍/綠部署識別符

藍/綠部署的名稱。

CLI 選項:

--blue-green-deployment-name

API 參數:

BlueGreenDeploymentName

藍色資料庫識別符

您要複製到綠色環境的執行個體識別碼。使用 CLI 或 API 時,請指定執行個體 Amazon Resource Name (ARN)。

CLI 選項:

--source

API 參數:

Source

綠色資料庫的資料庫參數群組 在綠色環境中與資料庫建立關聯的參數群組。

CLI 選項:

--target-db-parameter-group-name

--target-db-cluster-parameter-group-name

API 參數:

TargetDBParameterGroupName

TargetDBClusterParameterGroupName

啟用綠色資料庫的最佳化寫入

在綠色主要資料庫執行個體上啟用 RDS Optimized Writes。如需詳細資訊,請參閱啟用 RDS Optimized Writes

如果您要從不支援 Optimized Writes 的資料庫執行個體類別變更為支援 Optimized Writes 的類別,您還需要執行儲存組態升級。如需詳細資訊,請參閱升級儲存組態

針對 CLI 和 API,指定支援 RDS Optimized Writes 的目標資料庫執行個體類別,會自動在綠色主要資料庫執行個體上啟用它。

綠色資料庫的引擎版本

將綠色環境中的資料庫升級至指定的資料庫引擎版本。

如果未指定,則會使用與藍色環境中對應的資料庫執行個體資料庫相同的引擎版本,來建立綠色環境中的每個資料庫叢集。

如果您選擇使用邏輯複寫的 RDS for PostgreSQL 資料庫執行個體,請檢閱並確認邏輯複寫限制。 PostgreSQL 如需詳細資訊,請參閱藍/綠部署的邏輯複寫特定限制

CLI 選項:

--target-engine-version

RDS API 參數:

TargetEngineVersion

綠色資料庫執行個體類別

綠色環境中每個資料庫執行個體的運算和記憶體容量,例如 db.m5d.xlarge

只有在您為綠色資料庫啟用 RDS Optimized Writes 時,才會顯示此選項。

CLI 選項:

--target-db-instance-class

RDS API 參數:

TargetDBInstanceClass

佈建 IOPS

要最初配置給綠色資料庫的佈建每秒輸入/輸出操作 (IOPS) 數量。

此值僅適用於綠色主要資料庫執行個體,不適用於綠色複本。

CLI 選項:

--target-iops

RDS API 參數:

TargetIops

儲存體組態升級

選擇是否要升級您的儲存檔案系統組態。如果您啟用此設定,RDS 會將綠色資料庫從舊的儲存檔案系統遷移至偏好的組態。

只有當您的藍色資料庫在最新的儲存組態上,或您要在相同要求中啟用 RDS Optimized Writes 時,才能使用此選項。您只能在最初建立藍/綠部署時升級儲存體組態。

如需詳細資訊,請參閱升級資料庫執行個體的儲存體檔案系統

CLI 選項:

--upgrade-target-storage-config

RDS API 參數:

UpgradeTargetStorageConfig

Storage throughput (訊息輸送量)

綠色資料庫的儲存輸送量值。只有在您為儲存類型選擇一般用途 SSD (gp3) 時,才會顯示此設定。

此值僅適用於綠色主要資料庫執行個體,不適用於綠色複本。

如需詳細資訊,請參閱gp3 儲存體 (建議)

CLI 選項:

--target-storage-throughput

RDS API 參數:

TargetStorageThroughput

儲存體類型

綠色資料庫的儲存類型。支援下列儲存類型:

  • 一般用途 SSD (gp2)

  • 一般用途 SSD (gp3)

  • 佈建 IOPS (io1)

  • 佈建 IOPS SSD (io2)

此值僅適用於綠色主要資料庫執行個體,不適用於綠色複本。

如需詳細資訊,請參閱Amazon RDS儲存體類型

CLI 選項:

--target-storage-type

RDS API 參數:

TargetStorageType