

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

# 將自動擴展政策新增至 Amazon Aurora 資料庫叢集
<a name="Aurora.Integrating.AutoScaling.Add"></a>

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

**注意**  
如需使用 新增擴展政策的範例 CloudFormation，請參閱《 使用者指南》中的[宣告 Aurora 資料庫叢集的擴展政策](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html#w2ab1c19c22c15c21c11)。 *AWS CloudFormation *

## 主控台
<a name="Aurora.Integrating.AutoScaling.AddConsole"></a>

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

**將自動規模調整政策新增至 Aurora 資料庫叢集**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/) 的 Amazon RDS 主控台。

1. 在導覽窗格中，選擇 **Databases (資料庫)**。

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

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

1. 在 **Auto scaling policies (自動調整規模政策)** 區段中，選擇 **Add (新增)**。

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

1. 針對 **Policy Name (政策名稱)**，請輸入政策名稱。

1. 目標指標請選擇下列其中一個：
   + **Average CPU utilization of Aurora Replicas (&AUR; 複本的平均 CPU 使用率)**，可根據平均 CPU 使用率建立政策。
   + **Average connections of Aurora Replicas (&AUR; 複本的平均連線數)**，可根據連線至 Aurora 複本的平均連線數目建立政策。

1. 目標值請輸入下列其中一個：
   + 如果在前一步驟選擇 **Average CPU utilization of Aurora Replicas (&AUR; 複本的平均 CPU 使用率)**，輸入您想在 Aurora 複本上維持的 CPU 使用率百分比。
   + 如果在前一步驟選擇 **Average connections of Aurora Replicas (&AUR; 複本的平均連線數)**，輸入您想維持的連線數目。

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

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

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

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

1. 選擇 **Add Policy (新增政策)**。

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

![根據平均 CPU 使用率建立自動規模調整政策](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/images/aurora-autoscaling-cpu.png)


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

![根據平均連線數建立 Auto Scaling 政策](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/images/aurora-autoscaling-connections.png)


## AWS CLI 或 Application Auto Scaling API
<a name="Aurora.Integrating.AutoScaling.AddCode"></a>

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

### 註冊 Aurora 資料庫叢集
<a name="Aurora.Integrating.AutoScaling.AddCode.Register"></a>

在使用 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
<a name="Aurora.Integrating.AutoScaling.AddCode.Register.CLI"></a>

若要註冊 Aurora 資料庫叢集，請使用 [https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) 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` 以及叢集中資料庫執行個體數目之間的關係資訊，請參閱 [容量下限和上限](Aurora.Integrating.AutoScaling.md#Aurora.Integrating.AutoScaling.Concepts.Capacity)。
+ `--max-capacity` – Application Auto Scaling 要管理的讀取者資料庫執行個體數量上限。如需了解有關 `--min-capacity`、`--max-capacity` 以及叢集中資料庫執行個體數目之間的關係資訊，請參閱 [容量下限和上限](Aurora.Integrating.AutoScaling.md#Aurora.Integrating.AutoScaling.Concepts.Capacity)。

**Example**  
在下列範例中，您會註冊名為 `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
<a name="Aurora.Integrating.AutoScaling.AddCode.Register.API"></a>

若要向 Application Auto Scaling 註冊您的 Aurora 資料庫叢集，請使用 [https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_RegisterScalableTarget.html](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_RegisterScalableTarget.html) Application Auto Scaling API 操作搭配下列參數：
+ `ServiceNamespace` – 將此值設定為 `rds`。
+ `ResourceID`– Aurora 資料庫叢集的資源識別符。這項參數的資源類型為 `cluster`，且唯一識別符是 Aurora 資料庫叢集的名稱，例如 `cluster:myscalablecluster`。
+ `ScalableDimension` – 將此值設定為 `rds:cluster:ReadReplicaCount`。
+ `MinCapacity` – Application Auto Scaling 要管理的讀取者資料庫執行個體數量下限。如需了解有關 `MinCapacity`、`MaxCapacity` 以及叢集中資料庫執行個體數目之間的關係資訊，請參閱 [容量下限和上限](Aurora.Integrating.AutoScaling.md#Aurora.Integrating.AutoScaling.Concepts.Capacity)。
+ `MaxCapacity` – Application Auto Scaling 要管理的讀取者資料庫執行個體數量上限。如需了解有關 `MinCapacity`、`MaxCapacity` 以及叢集中資料庫執行個體數目之間的關係資訊，請參閱 [容量下限和上限](Aurora.Integrating.AutoScaling.md#Aurora.Integrating.AutoScaling.Concepts.Capacity)。

**Example**  
在下列範例中，您會使用 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 資料庫叢集的擴展原則
<a name="Aurora.Integrating.AutoScaling.AddCode.DefineScalingPolicy"></a>

目標追踪規模調整政策組態由 JSON 區塊表示，其中定義了指標和目標值。您可以將規模調整政策的組態設定，儲存為文字檔案中的 JSON 區塊。叫用 AWS CLI 或 Application Auto Scaling API 時，您可以使用該文字檔案。如需政策組態語法的詳細資訊，請參閱 *Application Auto Scaling API 參考*中的 [https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_TargetTrackingScalingPolicyConfiguration.html](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)。

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

**Topics**
+ [使用預先定義的指標](#Aurora.Integrating.AutoScaling.AddCode.DefineScalingPolicy.Predefined)
+ [使用自訂的指標](#Aurora.Integrating.AutoScaling.AddCode.DefineScalingPolicy.Custom)
+ [使用冷卻時間](#Aurora.Integrating.AutoScaling.AddCode.DefineScalingPolicy.Cooldown)
+ [停用規模縮減活動](#Aurora.Integrating.AutoScaling.AddCode.DefineScalingPolicy.ScaleIn)

#### 使用預先定義的指標
<a name="Aurora.Integrating.AutoScaling.AddCode.DefineScalingPolicy.Predefined"></a>

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

目前 Aurora 在 Aurora Auto Scaling 中支援下列預先定義的指標：
+ **RDSReaderAverageCPUUtilization** – 在 CloudWatch 中，Aurora 資料庫叢集中所有 Aurora 複本的 `CPUUtilization` 指標平均值。
+ **RDSReaderAverageDatabaseConnections** – 在 CloudWatch 中，Aurora 資料庫叢集中所有 Aurora 複本的 `DatabaseConnections` 指標平均值。

如需 `CPUUtilization` 和 `DatabaseConnections` 指標的詳細資訊，請參閱 [Amazon Aurora 的 Amazon CloudWatch 指標](Aurora.AuroraMonitoring.Metrics.md)。

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

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

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

#### 使用自訂的指標
<a name="Aurora.Integrating.AutoScaling.AddCode.DefineScalingPolicy.Custom"></a>

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

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

**Example**  
下列的範例描述規模調整政策的目標追蹤組態設定。在此組態中，自訂指標會根據 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"
    }
}
```

#### 使用冷卻時間
<a name="Aurora.Integrating.AutoScaling.AddCode.DefineScalingPolicy.Cooldown"></a>

您可以指定一個值 (單位為秒)，讓 `ScaleOutCooldown` 為您的 Aurora 資料庫叢集規模擴展新增冷卻時間。同樣的，您可以指定一個值 (單位為秒)，讓 `ScaleInCooldown` 為您的 Aurora 資料庫叢集規模縮減新增冷卻時間。如需 `ScaleInCooldown` 和 `ScaleOutCooldown` 的詳細資訊，請參閱《*Application Auto Scaling API 參考*》中的 [https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_TargetTrackingScalingPolicyConfiguration.html](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)。

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

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

#### 停用規模縮減活動
<a name="Aurora.Integrating.AutoScaling.AddCode.DefineScalingPolicy.ScaleIn"></a>

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

您可以為 `DisableScaleIn` 指定布林值，來啟用或停用 Aurora 資料庫叢集的規模縮減活動。如需 `DisableScaleIn` 的詳細資訊，請參閱《*Application Auto Scaling API 參考*》中的 [https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_TargetTrackingScalingPolicyConfiguration.html](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)。

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

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

### 將擴展原則套用至 Aurora 資料庫叢集
<a name="Aurora.Integrating.AutoScaling.AddCode.ApplyScalingPolicy"></a>

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

#### AWS CLI
<a name="Aurora.Integrating.AutoScaling.AddCode.ApplyScalingPolicy.CLI"></a>

若要將擴展政策套用至 Aurora 資料庫叢集，請使用 [https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) 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 資料庫叢集的目標追蹤擴展政策組態。

**Example**  
在下列範例中，您會使用 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
<a name="Aurora.Integrating.AutoScaling.AddCode.ApplyScalingPolicy.API"></a>

若要使用 Application Auto Scaling API 將擴展政策套用到您的 Aurora 資料庫叢集，請使用 [https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_PutScalingPolicy.html](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_PutScalingPolicy.html) Application Auto Scaling API 操作搭配下列參數：
+ `PolicyName` – 擴展政策的名稱。
+ `ServiceNamespace` – 將此值設定為 `rds`。
+ `ResourceID`– Aurora 資料庫叢集的資源識別符。這項參數的資源類型為 `cluster`，且唯一識別符是 Aurora 資料庫叢集的名稱，例如 `cluster:myscalablecluster`。
+ `ScalableDimension` – 將此值設定為 `rds:cluster:ReadReplicaCount`。
+ `PolicyType` – 將此值設定為 `TargetTrackingScaling`。
+ `TargetTrackingScalingPolicyConfiguration` – 要用於 Aurora 資料庫叢集的目標追蹤擴展政策組態。

**Example**  
在下列範例中，您會使用 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"
        }
    }
}
```