

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

# ElastiCache 元件和功能
<a name="WhatIs.Components"></a>

以下是 Amazon ElastiCache 部署的主要元件概觀。

**Topics**
+ [ElastiCache 節點](#WhatIs.Components.Nodes)
+ [ElastiCache 碎片](#WhatIs.Components.Shards)
+ [ElastiCache 叢集](#WhatIs.Components.Clusters)
+ [ElastiCache 複寫](#WhatIs.Components.ReplicationGroups)
+ [ElastiCache 端點](#WhatIs.Components.Endpoints)
+ [ElastiCache 參數群組](#WhatIs.Components.ParameterGroups)
+ [ElastiCache 安全性](#WhatIs.Components.Security)
+ [ElastiCache 子網路群組](#WhatIs.Components.SubnetGroups)
+ [ElastiCache 備份](#WhatIs.Components.Snapshots)
+ [ElastiCache 事件](#WhatIs.Components.Events)

## ElastiCache 節點
<a name="WhatIs.Components.Nodes"></a>

*節點*是 Amazon ElastiCache 部署中最小的建置區塊。節點可以與其他節點隔離而獨立存在，或與其他節點以某種關係存在。

節點是大小固定、與網路連接的安全 RAM 區塊。每個節點都會執行當您建立叢集時所選擇的引擎和版本執行個體。您可視需要將叢集中的節點垂直擴展或縮減為不同的執行個體類型。如需詳細資訊，請參閱[擴展 ElastiCache](Scaling.md)。

叢集中每個節點的執行個體類型都相同，並且執行相同的快取引擎。每個快取節點都有自己的網域名稱服務 (DNS) 名稱和連接埠。支援多種類型的快取節點，每個節點都有各種數量的相關記憶體。如需支援的節點執行個體類型清單，請參閱[支援的節點類型](CacheNodes.SupportedTypes.md)。

您可以按照依用量付費的方式購買節點，只需支付您使用節點的費用。或以大幅降低的每小時費率購買預留節點。如果您的用量很高，購買預留節點可以為您節省成本。假設您的叢集幾乎總是在使用中，且您會偶爾新增節點來處理使用尖峰。在此情況下，您可以購買多個預留節點來在大多數時間執行。之後您可以在偶爾需要新增節點時，購買依用量計費的節點。如需預留節點的詳細資訊，請參閱[預留節點](CacheNodes.Reserved.md)。

如需節點的詳細資訊，請參閱[管理 ElastiCache 中的節點](CacheNodes.md)。

## ElastiCache 碎片
<a name="WhatIs.Components.Shards"></a>

Valkey 或 Redis OSS *碎片* （在 API 和 CLI 中稱為*節點群組*) 是一到六個相關節點的群組。啟用叢集模式的 Valkey 或 Redis OSS 叢集一律至少有一個碎片。

碎片是一種資料庫分割方法，可將大型資料庫分成較小、更快速且更易於管理的部分，稱為資料碎片。這可以透過將操作分散到多個不同的區段來提高資料庫效率。使用碎片可以提供許多好處，包括改善效能、可擴展性和成本效益。

 啟用叢集模式的 Valkey 和 Redis OSS 叢集最多可有 500 個碎片，您的資料會分割在碎片上。如果 Valkey 或 Redis OSS 引擎版本為 5.0.6 或更高版本，節點或碎片限制可以提高到每個叢集最多 500 個。例如，您可以選擇設定具有 500 個節點的叢集，並容許碎片在 83 個（每個碎片一個主要版本和 5 個複本）到 500 個（單一主要版本並且沒有複本）之間變化。請確保有足夠的可用 IP 地址來容納增加的數量。常見的缺陷包括子網路群組中的子網路的 CIDR 範圍太小，或是子網路被共用並被其他叢集大量使用。如需詳細資訊，請參閱[建立子網路群組](SubnetGroups.Creating.md)。對於 5.0.6 以下的版本，每個叢集的限制為 250 個。

若要請求提高配額，請參閱 [AWS服務配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)，並選擇配額類型 **Nodes per cluster per instance type (每執行個體類型每叢集的節點數)**。

*多個節點碎片*實作複寫的方式，是使用一個讀/寫主節點及 1 至 5 個複本節點。如需詳細資訊，請參閱[使用複寫群組的高可用性](Replication.md)。

如需碎片的詳細資訊，請參閱[在 ElastiCache 中使用碎片](Shards.md)。

## ElastiCache 叢集
<a name="WhatIs.Components.Clusters"></a>

*叢集*是一或多個[節點](CacheNodes.md)的邏輯分組。資料會分割到 Memcached 叢集中的節點，以及啟用叢集模式的 Valkey 或 Redis OSS 叢集中的碎片。

許多 ElastiCache 作業的目標都是叢集：
+ 建立叢集
+ 修改叢集
+ 擷取叢集的快照 (所有 Redis 版本)
+ 刪除叢集
+ 在叢集中檢視元素
+ 從叢集中新增或移除成本配置標籤

如需詳細資訊，請參閱下列相關主題：
+ [在 ElastiCache 中管理叢集](Clusters.md) 和 [管理 ElastiCache 中的節點](CacheNodes.md)

  叢集、節點和相關操作的詳細資訊。
+ [AWS服務限制：Amazon ElastiCache](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_elasticache)

  ElastiCache 配額 (例如節點或叢集數上限) 的相關資訊。如需超過其中某些配額，您可以使用 [Amazon ElastiCache 快取節點請求表單](https://aws.amazon.com/contact-us/elasticache-node-limit-request/)。
+ [減少故障](disaster-recovery-resiliency.md#FaultTolerance)

  有關改善叢集和 Valkey 或 Redis OSS 複寫群組容錯能力的資訊。

### 一般叢集組態
<a name="WhatIs.Components.Clusters.TypicalConfigurations"></a>

以下是一般叢集組態。

#### Valkey 或 Redis OSS 叢集
<a name="WhatIs.Components.Clusters.TypicalConfigurations.Redis"></a>

 停用叢集模式的 Valkey 或 Redis OSS 叢集一律只包含一個碎片 （在 API 和 CLI 中，一個節點群組）。Valkey 或 Redis OSS 碎片包含一到六個節點。如果一個碎片中有多個節點，該碎片便可支援複寫。在這種情況下，一個節點是讀/寫主節點，其他節點則是唯讀複本節點。

為了改善容錯能力，我們建議在 Valkey 或 Redis OSS 叢集中至少有兩個節點，並啟用異地同步備份。如需詳細資訊，請參閱[減少故障](disaster-recovery-resiliency.md#FaultTolerance)。

隨著 Valkey 或 Redis OSS 叢集的需求變更，您可以擴展或縮減規模。若要這樣做，請將您的叢集移至不同的節點執行個體類型。如果您的應用程式需要密集讀取，建議您將唯讀複本新增至叢集。如此一來，您就可以將讀取作業分散在更適當數量的節點間。

您也可以使用資料分層。將較常存取的資料存放在記憶體中，而較不常存取的資料存放在硬碟上。使用資料分層的優點在於可降低記憶體需求。如需詳細資訊，請參閱[ElastiCache 中的資料分層](data-tiering.md)。

ElastiCache 支援動態將 Valkey 或 Redis OSS 叢集的節點類型變更為較大的節點類型。如需擴展或縮減的資訊，請參閱[擴展 Valkey 或 Redis OSS （停用叢集模式） 叢集](scaling-redis-classic.md#Scaling.RedisStandalone)或[擴展 Valkey 或 Redis OSS 的複本節點 （停用叢集模式）](Scaling.RedisReplGrps.md)。

#### Memcached 的一般叢集組態
<a name="WhatIs.Components.Clusters.TypicalConfigurations"></a>

Memcached 支援每個AWS區域每個客戶最多 300 個節點，每個叢集都有 1-60 個節點。您可將您的資料分割到 Memcached 叢集的各節點中。

當您執行 Memcached 引擎時，叢集可以由 1–60 個節點組成。您可將您的資料庫分割至各節點中。您的應用程式會讀取和寫入每個節點的端點。如需詳細資訊，請參閱[自動探索](AutoDiscovery.md)。

為了改善容錯能力，請在叢集AWS區域內的各種可用區域 (AZs) 中找到您的 Memcached 節點。如此一來，單一 AZ 中的故障，對整個叢集和應用程式的影響會降到最低。如需詳細資訊，請參閱[減少故障](disaster-recovery-resiliency.md#FaultTolerance)。

隨著 Memcached 叢集的需求變更，您可以透過新增或移除節點來擴展或縮減節點，在節點的新數量之間重新分割資料。當您分割資料時，建議您使用一致性雜湊。如需一致性雜湊的詳細資訊，請參閱 [設定 ElastiCache 用戶端以實現高效率的負載平衡 (Memcached)](BestPractices.LoadBalancing.md)。

## ElastiCache 複寫
<a name="WhatIs.Components.ReplicationGroups"></a>

對於 Valkey 和 Redis OSS，複寫是透過在碎片 （在 API 和 CLI 中，稱為節點群組） 中從兩個到六個節點分組來實作。其中一個節點是讀取/寫入主要節點。所有其他節點則是唯讀複本節點。複寫僅適用於 ElastiCache for Valkey 和 Redis OSS，不適用於 ElastiCache for Memcached。

每個複本節點都會保有從主要節點取得的資料複本。複本節點使用非同步複寫機制，與主要節點保持同步。應用程式可以從叢集中的任何節點讀取，但只能寫入到主要節點。僅供讀取複本可藉由將讀取分佈到多個端點來增強擴展性。僅供讀取複本也可藉由保留多個資料複本來提升容錯能力。將僅供讀取複本放置在多個可用區域可進一步提升容錯能力。如需容錯能力的詳細資訊，請參閱[減少故障](disaster-recovery-resiliency.md#FaultTolerance)。

 Valkey 或 Redis OSS 叢集支援一個碎片 （在 API 和 CLI 中稱為*節點群組*)。

從 API 和 CLI 觀點來看，複寫使用不同的術語來保留與舊版的相容性，但結果會相同。下表說明用於實作複寫的 API 和 CLI 術語。

**比較複寫：Valkey 或 Redis OSS （停用叢集模式） 和 Valkey 或 Redis OSS （啟用叢集模式）--> 啟用叢集模式的 Valkey 或 Redis OSS 叢集與停用叢集模式的 Valkey 或 Redis OSS 叢集**

在下表中，您可以找到 Valkey 或 Redis OSS （停用叢集模式） 和 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組功能的比較。


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/WhatIs.Components.html)

所有碎片 (在 API 和 CLI 中為節點群組) 和節點都必須位於相同的AWS區域。不過，您可以在該區域內的多個可用區域中佈建個別節點AWS。

僅供讀取複本可防止資料遺失，因為您的資料是透過兩個或多個節點 (主節點和一或多個僅供讀取複本) 進行複寫。為了取得更佳的可靠性和更快的復原速度，建議您在不同可用區域內建立一或多個僅供讀取複本。

您也可以利用全域資料儲存。透過使用適用於 Redis OSS 的全域資料存放區功能，您可以跨AWS區域使用全受管、快速、可靠且安全的複寫。使用此功能，您可以為 ElastiCache 建立跨區域僅供讀取複本叢集，以跨AWS區域啟用低延遲讀取和災難復原。如需詳細資訊，請參閱[使用全域資料存放區的跨AWS區域複寫](Redis-Global-Datastore.md)。

**複寫：限額和排除**
+ 節點類型 T1 不支援多個可用區。

## ElastiCache 端點
<a name="WhatIs.Components.Endpoints"></a>

*端點*是應用程式用來連線至 ElastiCache 節點或叢集的唯一地址。

### 停用叢集模式的 Valkey 或 Redis OSS 的單一節點端點
<a name="WhatIs.Components.Endpoints.Redis"></a>

單一節點 Valkey 或 Redis OSS 叢集的端點用於連線至叢集以進行讀取和寫入。

### 停用叢集模式的 Valkey 或 Redis OSS 的多節點端點
<a name="WhatIs.Components.Endpoints.Redis.Multi"></a>

停用叢集模式的多節點 Valkey 或 Redis OSS 叢集有兩種端點類型。主要端點一律會連線到叢集中的主要節點，即使主要角色中的特定節點變更也一樣。使用主要端點對叢集進行所有寫入。

使用「讀取器端點」來將傳入連線平均分散在所有讀取複本間的端點中。使用個別「節點端點」以進行讀取操作 (在 API/CLI 中，它們稱為「讀取端點」)。

### Valkey 或 Redis OSS （啟用叢集模式） 端點
<a name="WhatIs.Components.Endpoints.Redis.Cluster"></a>

啟用叢集模式的 Valkey 或 Redis OSS 叢集具有單一組態端點。只要連線到組態端點，您的應用程式就可以探索叢集中每個碎片的主要和讀取端點。

如需詳細資訊，請參閱[在 ElastiCache 中尋找連線端點](Endpoints.md)。

### ElastiCache for Memcached 端點
<a name="WhatIs.Components.Endpoints.Memcached"></a>

Memcached 叢集中的每個節點都有自己的端點。叢集也具有稱為*「組態端點」*的端點。如果您啟用自動探索並連線至組態端點，您的應用程式會自動*「知道」*每個節點端點，即使是在叢集新增或移除節點後。如需詳細資訊，請參閱[自動探索](AutoDiscovery.md)。

如需詳細資訊，請參閱[在 ElastiCache 中尋找連線端點](Endpoints.md)。

## ElastiCache 參數群組
<a name="WhatIs.Components.ParameterGroups"></a>

快取參數群組是用於管理受支援引擎軟體之執行時間設定的便利方式。參數用於控制記憶體用量、移出政策、項目大小等等。ElastiCache 參數群組為具名集合，包含可套用至叢集的引擎專屬參數。藉由執行此操作，您可以確保該叢集中的所有節點都以完全相同的方式設定。

如需支援的參數、其預設值及可修改的參數清單，請參閱 [DescribeEngineDefaultParameters](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeEngineDefaultParameters.html) (CLI：[describe-engine-default-parameters](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-engine-default-parameters.html))。

如需 ElastiCache 參數群組的詳細資訊，請參閱「[使用 ElastiCache 參數群組設定引擎參數](ParameterGroups.md)」。

## ElastiCache 安全性
<a name="WhatIs.Components.Security"></a>

為了增強安全性，ElastiCache 節點存取僅限於在您允許的 Amazon EC2 執行個體上執行的應用程式。您可以使用安全群組來控制可存取叢集的 Amazon EC2 執行個體。

依照預設，所有 ElastiCache 叢集都會在 Amazon Virtual Private Cloud (Amazon VPC) 環境中啟動。您可以使用*子網路群組*授予叢集從特定子網路上所執行 Amazon EC2 執行個體進行存取的權限。

除了限制節點存取之外，ElastiCache 還支援執行指定 ElastiCache 版本之節點的 TLS 和就地加密。如需詳細資訊，請參閱下列內容：
+ [Amazon ElastiCache 的資料安全性](encryption.md)
+ [使用 Valkey 和 Redis OSS AUTH 命令進行驗證](auth.md)

## ElastiCache 子網路群組
<a name="WhatIs.Components.SubnetGroups"></a>

*子網路群組*是子網路的集合 (一般是私有)，您可以為在 Amazon VPC 環境中執行的叢集指定這些子網路。

如果您在 Amazon VPC 中建立叢集，則必須指定快取子網路群組。ElastiCache 會使用此快取子網路群組選擇子網路及該子網路中的 IP 地址，以與您的快取節點建立關聯。

如需 Amazon VPC 環境中快取子網路群組使用方式的詳細資訊，請參閱下列文章：
+ [Amazon VPC 和 ElastiCache 安全性](VPCs.md)
+ [步驟 3。授權對叢集的存取](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.AuthorizeAccess.valkey)
+ [子網路和子網路群組](SubnetGroups.md)

## ElastiCache 備份
<a name="WhatIs.Components.Snapshots"></a>

*備份*是 Valkey 或 Redis OSS 叢集或無伺服器快取或 Memcached 無伺服器快取的point-in-time副本。備份可用來還原現有的叢集或植入新叢集。備份包含叢集中的所有資料加上一些中繼資料。

根據叢集上執行的 Valkey 或 Redis OSS 版本，備份程序需要不同數量的預留記憶體才能成功。如需詳細資訊，請參閱下列內容：
+ [快照和還原](backups.md)
+ [同步與備份的實作方式](Replication.Redis.Versions.md)
+ [節點型叢集備份的效能影響](backups.md#backups-performance)
+ [確保您有足夠的記憶體來建立 Valkey 或 Redis OSS 快照](BestPractices.BGSAVE.md)

## ElastiCache 事件
<a name="WhatIs.Components.Events"></a>

當叢集上發生重要事件時，ElastiCache 會傳送通知給特定的 Amazon SNS 主題。這些事件可能包含新增節點失敗或故障、安全群組修改和其他事件等。藉由監控重要的事件，您可以了解叢集目前的狀態，許多情況下還能採取修正動作。

如需 ElastiCache 事件的詳細資訊，請參閱「[Amazon SNS 的 ElastiCache 事件監控](ECEvents.md)」。