將自動擴展政策新增至 Amazon Aurora 資料庫叢集 - Amazon Aurora

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

將自動擴展政策新增至 Amazon Aurora 資料庫叢集

您可以使用 AWS 管理主控台、AWS CLI 或 Application Auto Scaling API 來新增擴展政策。

注意

如需使用 CloudFormation 新增擴展政策的範例,請參閱在 AWS CloudFormation 使用者指南中的宣告 Aurora 資料庫叢集的擴展政策。

您可以使用 AWS 管理主控台 為 Aurora 資料庫叢集新增擴展政策。

將自動規模調整政策新增至 Aurora 資料庫叢集
  1. 登入 AWS 管理主控台,開啟位於 https://console.aws.amazon.com/rds/ 的 Amazon RDS 主控台。

  2. 在導覽窗格中,選擇 Databases (資料庫)

  3. 選擇您要新增政策的 Aurora 資料庫叢集。

  4. 選擇 Logs & events (日誌與事件) 標籤。

  5. Auto scaling policies (自動調整規模政策) 區段中,選擇 Add (新增)

    Add Auto Scaling policy (新增自動調整規模政策) 對話方塊隨即顯示。

  6. 針對 Policy Name (政策名稱),請輸入政策名稱。

  7. 目標指標請選擇下列其中一個:

    • Average CPU utilization of Aurora Replicas (&AUR; 複本的平均 CPU 使用率),可根據平均 CPU 使用率建立政策。

    • Average connections of Aurora Replicas (&AUR; 複本的平均連線數),可根據連線至 Aurora 複本的平均連線數目建立政策。

  8. 目標值請輸入下列其中一個:

    • 如果在前一步驟選擇 Average CPU utilization of Aurora Replicas (&AUR; 複本的平均 CPU 使用率),輸入您想在 Aurora 複本上維持的 CPU 使用率百分比。

    • 如果在前一步驟選擇 Average connections of Aurora Replicas (&AUR; 複本的平均連線數),輸入您想維持的連線數目。

    系統會新增或移除 Aurora 複本,讓指標接近指定的值。

  9. (選用) 展開 Additional Configuration (其他組態) 以建立縮減或橫向擴展冷卻時間。

  10. Minimum capacity (容量下限) 輸入 Aurora Auto Scaling 政策需要維持的 Aurora 複本數量下限。

  11. Maximum capacity (容量上限) 輸入 Aurora Auto Scaling 政策需要維持的 Aurora 複本數量上限。

  12. 選擇 Add Policy (新增政策)

以下對話方塊會根據平均 CPU 使用率百分之 40 來建立 Auto Scaling 政策。此政策會指定最少 5 個 Aurora 複本以及最多 15 個 Aurora 複本。

根據平均 CPU 使用率建立自動規模調整政策

以下對話方塊會根據平均連線數 100 使用率來建立自動規模調整政策。此政策會指定最少 2 個 Aurora 複本及最多 8 個 Aurora 複本。

根據平均連線數建立 Auto Scaling 政策

您可以根據預先定義的指標或自訂指標,套用規模調整政策。您可以使用 AWS CLI 或 Application Auto Scaling API 這樣做。第一步是將您的 Aurora 資料庫叢集註冊到 Application Auto Scaling。

註冊 Aurora 資料庫叢集

在使用 Aurora Auto Scaling 擴展 Aurora 資料庫叢集前,您應先將您的 Aurora 資料庫叢集註冊到 Application Auto Scaling。這是為了定義要套用到叢集的擴展維度和限制。Application Auto Scaling 會隨 rds:cluster:ReadReplicaCount 代表 Aurora 複本數目的可擴展維度,動態擴展 Aurora 資料庫叢集。

若要註冊您的 Aurora 資料庫叢集,您可以使用 AWS CLI 或 Application Auto Scaling API。

AWS CLI

若要註冊 Aurora 資料庫叢集,請使用 register-scalable-target AWS CLI 命令搭配下列參數:

  • --service-namespace – 將此值設定為 rds

  • --resource-id– Aurora 資料庫叢集的資源識別符。這項參數的資源類型為 cluster,且唯一識別符是 Aurora 資料庫叢集的名稱,例如 cluster:myscalablecluster

  • --scalable-dimension – 將此值設定為 rds:cluster:ReadReplicaCount

  • --min-capacity – Application Auto Scaling 要管理的讀取者資料庫執行個體數量下限。如需了解有關 --min-capacity--max-capacity 以及叢集中資料庫執行個體數目之間的關係資訊,請參閱 容量下限和上限

  • --max-capacity – Application Auto Scaling 要管理的讀取者資料庫執行個體數量上限。如需了解有關 --min-capacity--max-capacity 以及叢集中資料庫執行個體數目之間的關係資訊,請參閱 容量下限和上限

在下列範例中,您會註冊名為 myscalablecluster 的 Aurora 資料庫叢集。註冊中表明應該動態縮放資料庫叢集,使其具有 1 到 8 個 Aurora 複本。

對於 Linux、macOS 或 Unix:

aws application-autoscaling register-scalable-target \ --service-namespace rds \ --resource-id cluster:myscalablecluster \ --scalable-dimension rds:cluster:ReadReplicaCount \ --min-capacity 1 \ --max-capacity 8 \

在 Windows 中:

aws application-autoscaling register-scalable-target ^ --service-namespace rds ^ --resource-id cluster:myscalablecluster ^ --scalable-dimension rds:cluster:ReadReplicaCount ^ --min-capacity 1 ^ --max-capacity 8 ^

Application Auto Scaling API

若要向 Application Auto Scaling 註冊您的 Aurora 資料庫叢集,請使用 RegisterScalableTarget Application Auto Scaling API 操作搭配下列參數:

  • ServiceNamespace – 將此值設定為 rds

  • ResourceID– Aurora 資料庫叢集的資源識別符。這項參數的資源類型為 cluster,且唯一識別符是 Aurora 資料庫叢集的名稱,例如 cluster:myscalablecluster

  • ScalableDimension – 將此值設定為 rds:cluster:ReadReplicaCount

  • MinCapacity – Application Auto Scaling 要管理的讀取者資料庫執行個體數量下限。如需了解有關 MinCapacityMaxCapacity 以及叢集中資料庫執行個體數目之間的關係資訊,請參閱 容量下限和上限

  • MaxCapacity – Application Auto Scaling 要管理的讀取者資料庫執行個體數量上限。如需了解有關 MinCapacityMaxCapacity 以及叢集中資料庫執行個體數目之間的關係資訊,請參閱 容量下限和上限

在下列範例中,您會使用 Application Auto Scaling API 註冊名為 myscalablecluster 的 Aurora 資料庫叢集。此註冊中表明應該動態縮放資料庫叢集,使其具有 1 到 8 個 Aurora 複本。

POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity Content-Length: 219 X-Amz-Target: AnyScaleFrontendService.RegisterScalableTarget X-Amz-Date: 20160506T182145Z User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8 Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS { "ServiceNamespace": "rds", "ResourceId": "cluster:myscalablecluster", "ScalableDimension": "rds:cluster:ReadReplicaCount", "MinCapacity": 1, "MaxCapacity": 8 }

定義 Aurora 資料庫叢集的擴展原則

目標追踪規模調整政策組態由 JSON 區塊表示,其中定義了指標和目標值。您可以將規模調整政策的組態設定,儲存為文字檔案中的 JSON 區塊。您可以使用該文字檔案來呼叫 AWS CLI 或 Application Auto Scaling API。如需政策組態語法的詳細資訊,請參閱 Application Auto Scaling API 參考中的 TargetTrackingScalingPolicyConfiguration

您可使用下列的選項,來定義目標追蹤規模調整政策的組態設定。

使用預先定義的指標

使用預先定義的指標,您可以為搭配 Aurora Auto Scaling 中的目標追踪和動態擴展都運作良好的 Aurora 資料庫叢集,快速定義目標追踪規模調整政策。

目前 Aurora 在 Aurora Auto Scaling 中支援下列預先定義的指標:

  • RDSReaderAverageCPUUtilization – 在 CloudWatch 中,Aurora 資料庫叢集中所有 Aurora 複本的 CPUUtilization 指標平均值。

  • RDSReaderAverageDatabaseConnections – 在 CloudWatch 中,Aurora 資料庫叢集中所有 Aurora 複本的 DatabaseConnections 指標平均值。

如需 CPUUtilizationDatabaseConnections 指標的詳細資訊,請參閱 Amazon Aurora 的 Amazon CloudWatch 指標

若要在您的規模調整政策中使用預先定義的指標,請為規模調整政策建立目標追蹤組態設定。此組態設定必須加入用於預先定義指標的 PredefinedMetricSpecification,以及用於該指標目標值的 TargetValue

範例

下列的範例描述 Aurora 資料庫叢集目標追蹤規模調整的典型政策組態設定。在此組態中,會使用 RDSReaderAverageCPUUtilization 這個預先定義的指標,根據所有 Aurora 複本平均 CPU 使用率百分之 40,來調整 Aurora 資料庫叢集。

{ "TargetValue": 40.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "RDSReaderAverageCPUUtilization" } }

使用自訂的指標

使用自訂的指標,您可以定義目標追蹤規模調整政策來滿足您的自訂需求。您可以根據與規模調整成比例變動的任何 Aurora 指標,來定義自訂的指標。

並非所有的 Aurora 指標都適用於目標追蹤。指標必須是有效的使用率指標,而且能夠表示執行個體的忙碌程度。指標的值必須與 Aurora 資料庫叢集中 Aurora 複本的數量,按比例增加或減少。對於使用指標資料按比例規模擴展或縮減 Aurora 複本數量來說,這種按比例增加或減少是必要的。

範例

下列的範例描述規模調整政策的目標追蹤組態設定。在此組態中,自訂指標會根據 Aurora 資料庫叢集 my-db-cluster 中所有 Aurora 複本平均 CPU 使用率百分之 50,來調整 Aurora 資料庫叢集。

{ "TargetValue": 50, "CustomizedMetricSpecification": { "MetricName": "CPUUtilization", "Namespace": "AWS/RDS", "Dimensions": [ {"Name": "DBClusterIdentifier","Value": "my-db-cluster"}, {"Name": "Role","Value": "READER"} ], "Statistic": "Average", "Unit": "Percent" } }

使用冷卻時間

您可以指定一個值 (單位為秒),讓 ScaleOutCooldown 為您的 Aurora 資料庫叢集規模擴展新增冷卻時間。同樣的,您可以指定一個值 (單位為秒),讓 ScaleInCooldown 為您的 Aurora 資料庫叢集規模縮減新增冷卻時間。如需 ScaleInCooldownScaleOutCooldown 的詳細資訊,請參閱《Application Auto Scaling API 參考》中的 TargetTrackingScalingPolicyConfiguration

下列的範例描述規模調整政策的目標追蹤組態設定。在此組態中,會使用 RDSReaderAverageCPUUtilization 這個預先定義的指標,根據 Aurora 資料庫叢集中所有 Aurora 複本平均 CPU 使用率百分之 40,來調整 Aurora 資料庫叢集。這個組態設定分別提供了 10 分鐘的規模縮減冷卻時間,和 5 分鐘的規模擴展冷卻時間。

{ "TargetValue": 40.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "RDSReaderAverageCPUUtilization" }, "ScaleInCooldown": 600, "ScaleOutCooldown": 300 }

停用規模縮減活動

藉由停用規模縮減動作,您可以防止目標追蹤規模調整政策的組態設定,對您的 Aurora 資料庫叢集進行規模調整。停用規模縮減的動作,可防止規模調整政策刪除 Aurora 複本,同時讓規模調整政策仍然能夠視需要來建立 &AUR; 複本。

您可以為 DisableScaleIn 指定布林值,來啟用或停用 Aurora 資料庫叢集的規模縮減活動。如需 DisableScaleIn 的詳細資訊,請參閱《Application Auto Scaling API 參考》中的 TargetTrackingScalingPolicyConfiguration

下列的範例描述規模調整政策的目標追蹤組態設定。在此組態中,RDSReaderAverageCPUUtilization 這個預先定義的指標會根據 Aurora 資料庫叢集中所有 Aurora 複本平均 CPU 使用率百分之 40,來調整 Aurora 資料庫叢集。此組態設定停用了規模調整政策的規模縮減動作。

{ "TargetValue": 40.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "RDSReaderAverageCPUUtilization" }, "DisableScaleIn": true }

將擴展原則套用至 Aurora 資料庫叢集

向 Application Auto Scaling 註冊您的 Aurora 資料庫叢集,並定義擴展政策之後,請將擴展政策套用到已註冊的 Aurora 資料庫叢集。若要將擴展政策套用到 Aurora 資料庫叢集,您可以使用 AWS CLI 或 Application Auto Scaling API。

若要將擴展政策套用到 Aurora 資料庫叢集,請使用 put-scaling-policy AWS CLI 命令搭配下列參數:

  • --policy-name – 擴展政策的名稱。

  • --policy-type – 將此值設定為 TargetTrackingScaling

  • --resource-id– Aurora 資料庫叢集的資源識別符。這項參數的資源類型為 cluster,且唯一識別符是 Aurora 資料庫叢集的名稱,例如 cluster:myscalablecluster

  • --service-namespace – 將此值設定為 rds

  • --scalable-dimension – 將此值設定為 rds:cluster:ReadReplicaCount

  • --target-tracking-scaling-policy-configuration – 要用於 Aurora 資料庫叢集的目標追蹤擴展政策組態。

在下列範例中,您會使用 Application Auto Scaling 將名為 myscalablepolicy 的目標追蹤擴展政策,套用到名為 myscalablecluster 的 Aurora 資料庫叢集。做法是使用儲存於 config.json 檔案中的政策組態設定。

對於 Linux、macOS 或 Unix:

aws application-autoscaling put-scaling-policy \ --policy-name myscalablepolicy \ --policy-type TargetTrackingScaling \ --resource-id cluster:myscalablecluster \ --service-namespace rds \ --scalable-dimension rds:cluster:ReadReplicaCount \ --target-tracking-scaling-policy-configuration file://config.json

在 Windows 中:

aws application-autoscaling put-scaling-policy ^ --policy-name myscalablepolicy ^ --policy-type TargetTrackingScaling ^ --resource-id cluster:myscalablecluster ^ --service-namespace rds ^ --scalable-dimension rds:cluster:ReadReplicaCount ^ --target-tracking-scaling-policy-configuration file://config.json

若要使用 Application Auto Scaling API 將擴展政策套用到您的 Aurora 資料庫叢集,請使用 PutScalingPolicy Application Auto Scaling API 操作搭配下列參數:

  • PolicyName – 擴展政策的名稱。

  • ServiceNamespace – 將此值設定為 rds

  • ResourceID– Aurora 資料庫叢集的資源識別符。這項參數的資源類型為 cluster,且唯一識別符是 Aurora 資料庫叢集的名稱,例如 cluster:myscalablecluster

  • ScalableDimension – 將此值設定為 rds:cluster:ReadReplicaCount

  • PolicyType – 將此值設定為 TargetTrackingScaling

  • TargetTrackingScalingPolicyConfiguration – 要用於 Aurora 資料庫叢集的目標追蹤擴展政策組態。

在下列範例中,您會使用 Application Auto Scaling 將名為 myscalablepolicy 的目標追蹤擴展政策,套用到名為 myscalablecluster 的 Aurora 資料庫叢集。您使用的政策組態設定,是以 RDSReaderAverageCPUUtilization 這個預先定義的指標為根據。

POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity Content-Length: 219 X-Amz-Target: AnyScaleFrontendService.PutScalingPolicy X-Amz-Date: 20160506T182145Z User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8 Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS { "PolicyName": "myscalablepolicy", "ServiceNamespace": "rds", "ResourceId": "cluster:myscalablecluster", "ScalableDimension": "rds:cluster:ReadReplicaCount", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 40.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "RDSReaderAverageCPUUtilization" } } }