

# 管理集群操作
<a name="dax-cluster-operations"></a>

DAX 会为您处理集群的维护和运行状况。但是，您需要提供操作输入才能横向或纵向扩展集群以匹配您的使用模式。本节介绍扩展 DAX 集群时建议采用的流程。

**Topics**
+ [横向扩展集群](#dax-cluster-horizontal-scaling)
+ [纵向扩展集群](#dax-cluster-vertical-scaling)

## 横向扩展集群
<a name="dax-cluster-horizontal-scaling"></a>

扩展 DAX 集群涉及调整其容量以满足吞吐量需求。通过在集群运行时增加或减少集群中的节点（副本）数量，可完成此调整。此过程称为[横向扩展](DAX.cluster-management.md#DAX.cluster-management.scaling.read-scaling)，有助于将工作负载分配给更多节点，或者在需求较低时整合到更少的节点。

可以使用 AWS CLI 中的 `decrease-replication-factor` 或 `increase-replication-factor` 命令横向缩减和扩大 DAX 集群。

**增加复制因子（横向扩展）**  
增加 DAX 集群的复制因子会为该集群添加更多节点。下面的示例展示如何使用 `increase-replication-factor` 命令。

```
aws dax increase-replication-factor \
    --cluster-name yourClusterName  \
    --new-replication-factor desiredReplicationFactor
```
+ 在此命令中，`cluster-name` 参数指定集群的名称。例如，*yourClusterName*。
+ `new-replication-factor` 参数指定扩展后要添加到集群中的节点总数。其中包括主节点和副本节点。例如，如果您的集群当前有 3 个节点，并且您想再添加 2 个节点，请将 `new-replication-factor` 的值设置为 5。

**降低复制因子（横向缩减）**  
降低 DAX 集群的复制因子会从集群中移除节点。在需求低迷时段，移除节点可以帮助降低成本。下面的示例展示如何使用 `decrease-replication-factor` 命令。

```
aws dax decrease-replication-factor \
    --cluster-name yourClusterName  \
    --new-replication-factor desiredReplicationFactor
```
+ 在此命令中，`cluster-name` 参数指定集群的名称。例如，*yourClusterName*。
+ `new-replication-factor` 参数指定扩展后集群中减少的节点数。此数字必须小于当前的复制因子，并且必须包括主节点。例如，如果您的集群有 5 个节点，而您想要移除 2 个节点，请将 `new-replication-factor` 的值设置为 3。

### 横向扩展注意事项
<a name="dax-horizontal-scaling-considerations"></a>

在计划横向扩展时，请考虑以下几点：
+ **主节点** - DAX 集群包括一个主节点。复制因子包括该主节点。例如，复制因子为 3 表示一个主节点和两个副本节点。
+ **可用性** - 添加或删除 DAX 节点会改变集群的可用性和容错能力。更多的节点可以提高可用性，但也会增加成本。
+ **数据迁移** – 当您增加复制因子时，DAX 会自动处理新节点集之间的数据分布。当一个新节点开始提供流量时，其缓存已经过预热。但是，在此过程中，在数据迁移期间可能会对性能产生暂时的影响。

在扩展期间和扩展之后，请务必密切监控 DAX 集群，以确保它们按预期运行，并根据需要进行进一步调整。

## 纵向扩展集群
<a name="dax-cluster-vertical-scaling"></a>

要纵向扩展现有集群的节点大小，需要创建一个新集群并将应用程序流量迁移到该新集群。迁移到具有不同节点的新集群需要完成几个步骤，以确保平稳过渡，同时最大限度减少对应用程序性能和可用性的影响。

要创建用于纵向扩展节点大小的新集群，请考虑以下几点：
+ **访问当前设置** - 查看当前 DAX 集群的指标，以确定所需的新节点大小和数量。使用此信息作为输入来确定所需集群的大小。有关信息，请参阅[设置 DAX 集群的容量](dax-cluster-sizing.md)。
+ **设置新的 DAX 集群** – 使用所确定的节点类型和数量创建新的 DAX 集群。除非需要进行调整，否则可以使用[参数组](dax-deploy-cluster.md#dax-cluster-parameter-group)中的现有配置设置。
+ **同步数据** - 由于 DAX 是 DynamoDB 的缓存层，因此无需直接迁移数据。但是，在向新 DAX 集群发送流量之前，新的 DAX 集群在内存中不会有任何工作数据集。
+ **更新应用程序配置** - 更新应用程序配置以指向新的 [DAX 集群端点](DAX.concepts.cluster.md#DAX.concepts.cluster-endpoint)。可能需要更改代码或更新环境变量，具体取决于应用程序的配置。

  为了减少切换到新集群时带来的影响，请从一小部分应用程序队列向新集群发送金丝雀流量。为此，可以缓慢推出应用程序更新，或者在 DAX 端点前使用基于权重的路由 DNS 条目。
+ **监控和优化** - 切换到新的 DAX 集群后，请密切监控其性能[指标和日志](DAX.Monitoring.md)中是否存在任何问题。准备好根据更新的工作负载模式调整节点数量。

  在新集群正确缓存工作数据集之前，您将看到更高的缓存未命中率和延迟。
+ **停用旧集群** – 当您确定新集群能够按预期运行时，请安全地停用旧 DAX 集群以避免产生不必要的成本。