

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

# DAX 叢集元件
<a name="DAX.concepts.cluster"></a>

Amazon DynamoDB Accelerator (DAX) 叢集由 AWS 基礎設施元件組成。本節說明這些元件及其運作方式。

**Topics**
+ [節點](#DAX.concepts.nodes)
+ [叢集](#DAX.concepts.clusters)
+ [區域與可用區域](#DAX.concepts.regions-and-azs)
+ [參數群組](#DAX.concepts.parameter-groups)
+ [安全群組](#DAX.concepts.security-groups)
+ [叢集 ARN](#DAX.concepts.cluster-arn)
+ [叢集端點](#DAX.concepts.cluster-endpoint)
+ [節點端點](#DAX.concepts.node-endpoints)
+ [子網路群組](#DAX.concepts.cluster.security)
+ [事件](#DAX.concepts.events)
+ [Maintenance window (維護時段)](#DAX.concepts.maintenance-window)

## 節點
<a name="DAX.concepts.nodes"></a>

*節點*是 DAX 叢集最小的建置區塊。每個節點都會執行 DAX 軟體的執行個體，並且維持快取資料的單一複本。

您可以使用下列兩種方式的其中之一，擴展您的 DAX 叢集：
+ 為叢集新增更多節點。這會增加叢集整體的讀取輸送量。
+ 使用更大的節點類型。更大的節點類型可提供更多容量，並可以增加輸送量。(您必須使用新的節點類型建立新叢集。) 

叢集中每個節點的節點類型都相同，並且會執行相同的 DAX 快取軟體。如需可用的節點類型清單，請參閱 [Amazon DynamoDB 定價](https://aws.amazon.com/dynamodb/pricing)。

## 叢集
<a name="DAX.concepts.clusters"></a>

*叢集*是 DAX 作為單一單位管理的一或多個節點的邏輯群組。叢集中的其中一個節點會指定為*主節點*，其他節點 (若有的話) 則為*僅供讀取複本*。

主節點負責下列項目：
+ 滿足應用程式對快取資料的請求。
+ 處理對 DynamoDB 的寫入操作。
+ 根據叢集的移出政策，從快取中移出資料。

對主節點上的快取資料進行變更時，DAX 會使用複寫日誌將變更散佈到所有僅供讀取複本節點。當從所有僅供讀取複本收到確認後，DynamoDB 會從主節點刪除複寫日誌。

DAX 叢集最多可支援每個叢集 11 個節點 (主節點，加上最多 10 個僅供讀取複本)。

僅供讀取複本負責下列項目：
+ 滿足應用程式對快取資料的請求。
+ 根據叢集的移出政策，從快取中移出資料。

但是，與主節點不同的是，僅供讀取複本不會對 DynamoDB 進行寫入。

僅供讀取複本還有另外兩種用途：
+ **可擴展性**。若您有大量的用戶端需要並行存取 DAX，您可以新增更多複本進行讀取擴展。DAX 會將負載平均分佈到叢集中的所有節點。(另一種增加輸送量的方式是使用更大的快取節點類型。)
+ **高可用性**。在主節點故障時，DAX 會自動容錯移轉至僅供讀取複本，並將其指派為新的主節點。若複本節點失敗，DAX 叢集中的其他節點仍然可以處理請求，直到可復原失敗的節點為止。為取得最大的容錯能力，建議您將僅供讀取複本部署在分離的可用區域中。這項組態可確保即使整個可用區域都不可使用時，DAX 叢集仍然能夠繼續運作。

**重要**  
針對生產用途，我們強烈建議搭配至少三個節點使用 DAX，並將每個節點置放在不同的可用區域中。要容錯的 DAX 叢集需要三個節點。  
可使用一或兩個節點來部署 DAX 叢集，以供開發或測試工作負載使用。單節點和雙節點叢集無法容錯，因此針對正式作業用途，我們不建議使用少於三個節點。若單節點或雙節點叢集發生軟體或硬體錯誤，叢集可能會無法使用或遺失快取資料。

**重要**  
DAX 叢集最多支援 500 個 DynamoDB 資料表。如果超過 500 個資料表，您的叢集可用性和效能就可能降低。

## 區域與可用區域
<a name="DAX.concepts.regions-and-azs"></a>

AWS 區域中的 DAX 叢集只能與位於相同區域的 DynamoDB 資料表互動。因此，請確認您在正確的區域中啟動您的 DAX 叢集。若您在其他區域中具有 DynamoDB 資料表，您必須在那些區域中啟動 DAX 叢集。

每個區域皆設計為與其他區域完全隔離。在每個區域中皆有多個可用區域。藉由在不同的可用區域中啟動您的節點，您可以實現最大的容錯能力。

**重要**  
請不要將您所有的叢集節點置放在單一可用區域中。在這項組態中，若發生可用區域故障的情況，您的 DAX 叢集將會無法使用。  
針對生產用途，我們強烈建議搭配至少三個節點使用 DAX，並將每個節點置放在不同的可用區域中。要容錯的 DAX 叢集需要三個節點。  
可使用一或兩個節點來部署 DAX 叢集，以供開發或測試工作負載使用。一和兩個節點叢集無法容錯，因此針對生產用途，我們不建議使用少於三個節點。若一或兩個節點叢集發生軟體或硬體錯誤，叢集可能會無法使用或遺失快取資料。

## 參數群組
<a name="DAX.concepts.parameter-groups"></a>

「參數群組」**可用來管理 DAX 叢集的執行時期設定。DAX 有數個參數，可讓您用來最佳化效能 (例如定義快取資料的 TTL 政策)。參數群組為可以套用到叢集的具名參數組。藉由執行此作業，您可以確保該叢集中的所有節點都以完全相同的方式設定。

## 安全群組
<a name="DAX.concepts.security-groups"></a>

DAX 叢集會在 Amazon Virtual Private Cloud (Amazon VPC) 環境中執行。此環境是一個您 AWS 帳戶的專用虛擬網路，與其他 VPC 隔離。「安全群組」**做為 VPC 的虛擬防火牆，可讓您控制傳入及傳出網路流量。

當您在 VPC 中啟動叢集時，您會為您的安全群組新增「輸入」**規則，允許傳入網路流量。輸入規則會指定您叢集的通訊協定 (TCP) 和連接埠號碼 (8111)。在為您的安全群組新增此規則後，在您 VPC 中執行的應用程式便可存取 DAX 叢集。

## 叢集 ARN
<a name="DAX.concepts.cluster-arn"></a>

每個 DAX 叢集都會獲得指派一個 *Amazon Resource Name* (ARN)。ARN 格式如下。

```
arn:aws:dax:{{region}}:{{accountID}}:cache/{{clusterName}}
```

您可以在 IAM 政策中使用叢集 ARN，定義 DAX API 操作的許可。如需更多詳細資訊，請參閱 [DAX 存取控制](DAX.access-control.md)。

## 叢集端點
<a name="DAX.concepts.cluster-endpoint"></a>

每個 DAX 叢集都會提供「叢集端點」**供您的應用程式使用。藉由使用此端點存取叢集，您的應用程式便不需要知道叢集中個別節點的主機名稱和連接埠號碼。您的應用程式會自動「得知」叢集中的所有節點，即使您新增或移除僅供讀取複本。

以下是 us-east-1 區域中未設為使用傳輸中加密的叢集端點範例。

`dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com`

以下是相同區域中未設為使用傳輸中加密的叢集端點範例。

`daxs://my-encrypted-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com`

## 節點端點
<a name="DAX.concepts.node-endpoints"></a>

DAX 叢集上的每個個別節點都有其自身的主機名稱和連接埠號碼。以下是「節點端點」**的範例。

`myDAXcluster-a.2cmrwl.clustercfg.dax.use1.cache.amazonaws.com:8111 `

您的應用程式可使用其端點直接存取節點。但是，我們建議您將 DAX 叢集作為單一單位處理，並改為使用叢集端點進行存取。叢集端點可讓您的應用程式無須維持節點的清單，並在您為叢集新增節點或從叢集移除節點時，將該清單保持在最新狀態。

## 子網路群組
<a name="DAX.concepts.cluster.security"></a>

對 DAX 叢集節點的存取會限制於在 Amazon VPC 環境中 Amazon EC2 執行個體上執行的應用程式。您可以使用「子網路群組」**授予叢集從特定子網路上所執行 Amazon EC2 執行個體進行存取的權限。子網路群組是子網路的集合 (一般是私有)，您可以為在 Amazon VPC 環境中執行的叢集指定這些子網路。

建立 DAX 叢集時，您必須指定子網路群組。DAX 會使用此子網路群組選取子網路及該子網路中的 IP 位址，以與您的節點建立關聯。

## 事件
<a name="DAX.concepts.events"></a>

DAX 會記錄您叢集內重要的事件，例如新增節點失敗、新增節點成功，或是變更安全群組。藉由監控重要的事件，您可以了解叢集目前的狀態，並根據事件採取正確的動作。您可以使用 DAX 管理 API 中的 AWS 管理主控台 或 `DescribeEvents` 動作存取這些事件。

您也可以請求將通知傳送至特定的 Amazon Simple Notification Service (Amazon SNS) 主題。您接著便會在您的 DAX 叢集中發生事件時立即得知。

## Maintenance window (維護時段)
<a name="DAX.concepts.maintenance-window"></a>

每個叢集都有每週一次的維護時段，用於套用系統變更。變更依序套用時，會取代現有節點，並將套用變更的新節點新增至叢集。在此期間，您的應用程式可能會發現暫時錯誤或限流。因此我們建議您在最低用量時間內排定維護時段，並視需要定期調整此排程。您可以指定最高達 24 小時的時間範圍，並讓任何您請求的維護活動在此期間進行。

若您在建立或修改快取叢集時並未指定偏好的維護時段，則 DAX 會在工作日隨機選取一天並指派 60 分鐘的維護時段。這個 60 分鐘時段是從每個 AWS 區域 的 8 小時時段內隨機選取。下表列出每個區域的時段，預設維護時段會從此時段中指派。


****  

| 區域代碼 | 區域名稱 | Maintenance window (維護時段) | 
| --- | --- | --- | 
|  ap-northeast-1  |  亞太地區 (東京) 區域  |  下午 1 時至下午 9 時 (UTC)  | 
|  ap-southeast-1  |  亞太地區 (新加坡) 區域  |  下午 2 時至下午 10 時 (UTC)  | 
|  ap-southeast-2  |  亞太地區 (雪梨) 區域  |  中午 12 時至下午 8 時 (UTC)  | 
|  ap-south-1  |  亞太地區 (孟買) 區域  |  下午 5 時 30 分至次日上午 1 時 30 分 (UTC)  | 
|  cn-northwest-1  |  中國 (寧夏) 區域  |  下午 11 時至次日上午 7 時 (UTC)  | 
|  cn-north-1  |  中國 (北京) 區域  |  下午 2 時至下午 10 時 (UTC) | 
|  eu-central-1  |  歐洲 (法蘭克福) 區域  |  下午 11 時至次日上午 7 時 (UTC)  | 
|  eu-north-1  |  歐洲 (斯德哥爾摩) 區域  |  上午 1 時至上午 9 時 (UTC)  | 
|  eu-south-2  |  歐洲 (西班牙) 區域  |  下午 9 時至次日上午 5 時 (UTC)  | 
|  eu-west-1  |  歐洲 (愛爾蘭) 區域  |  下午 10 時至次日上午 6 時 (UTC)  | 
|  eu-west-2  |  歐洲 (倫敦) 區域  |  下午 11 時至次日上午 7 時 (UTC)  | 
|  eu-west-3  |  歐洲 (巴黎) 區域  |  下午 11 時至次日上午 7 時 (UTC)  | 
|  sa-east-1  |  南美洲 (聖保羅) 區域  |  上午 1 時至上午 9 時 (UTC)  | 
|  us-east-1  |  美國東部 (維吉尼亞北部) 區域  |  上午 3 時至上午 11 時 (UTC)  | 
|  us-east-2 |  美國東部 (俄亥俄) 區域  |  下午 11 時至次日上午 7 時 (UTC)  | 
|  us-west-1  |  美國西部 (加利佛尼亞北部) 區域  |  上午 6 時至下午 2 時 (UTC)  | 
|  us-west-2  |  美國西部 (奧勒岡) 區域  |  上午 6 時至下午 2 時 (UTC)  | 