DAX 叢集元件 - Amazon DynamoDB

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

DAX 叢集元件

Amazon DynamoDB 加速器 (DAX) 叢集包含 AWS 基礎設施元件。本節說明這些元件及其運作方式。

節點

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

您可以使用下列兩種方式的其中之一,擴展您的 DAX 叢集:

  • 為叢集新增更多節點。這會增加叢集整體的讀取輸送量。

  • 使用更大的節點類型。更大的節點類型可提供更多容量,並可以增加輸送量。(您必須使用新的節點類型建立新叢集。)

叢集中每個節點的節點類型都相同,並且會執行相同的 DAX 快取軟體。如需可用的節點類型清單,請參閱 Amazon DynamoDB 定價

叢集

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

主要節點負責下列項目:

  • 滿足應用程式對快取資料的請求。

  • 處理對 DynamoDB 的寫入操作。

  • 根據叢集的移出政策,從快取中移出資料。

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

僅供讀取複本負責下列項目:

  • 滿足應用程式對快取資料的請求。

  • 根據叢集的移出政策,從快取中移出資料。

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

僅供讀取複本還有另外兩種用途:

  • 延展性。​ 若您有大量的用戶端需要並行存取 DAX,您可以新增更多複本進行讀取擴展。DAX 會將負載平均分佈到叢集中的所有節點。(另一種增加輸送量的方式是使用更大的快取節點類型。)

  • 高可用性。在主節點故障時,DAX 會自動容錯移轉至僅供讀取複本,並將其指派為新的主節點。若複本節點失敗,DAX 叢集中的其他節點仍然可以處理請求,直到可復原失敗的節點為止。為取得最大的容錯能力,建議您將僅供讀取複本部署在分離的可用區域中。這項組態可確保即使整個可用區域都不可使用時,DAX 叢集仍然能夠繼續運作。

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

重要

針對生產用途,我們強烈建議搭配至少三個節點使用 DAX,並將每個節點置放在不同的可用區域中。要容錯的 DAX 叢集需要三個節點。

可使用一或兩個節點來部署 DAX 叢集,以供開發或測試工作負載使用。一和兩個節點叢集無法容錯,因此針對生產用途,我們不建議使用少於三個節點。若一或兩個節點叢集發生軟體或硬體錯誤,叢集可能會無法使用或遺失快取資料。

區域與可用區域

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

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

重要

請不要將您所有的叢集節點置放在單一可用區域中。在這項組態中,若發生可用區域故障的情況,您的 DAX 叢集將會無法使用。

針對生產用途,我們強烈建議搭配至少三個節點使用 DAX,並將每個節點置放在不同的可用區域中。要容錯的 DAX 叢集需要三個節點。

可使用一或兩個節點來部署 DAX 叢集,以供開發或測試工作負載使用。一和兩個節點叢集無法容錯,因此針對生產用途,我們不建議使用少於三個節點。若一或兩個節點叢集發生軟體或硬體錯誤,叢集可能會無法使用或遺失快取資料。

參數群組

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

安全群組

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

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

叢集 ARN

每個 DAX 叢集都會獲得指派一個 Amazon 資源名稱 (ARN)。ARN 格式如下。

arn:aws:dax:region:accountID:cache/clusterName

您可以在 IAM 政策中使用叢集 ARN,定義 DAX API 操作的許可。如需詳細資訊,請參閱 DAX 存取控制

叢集端點

每個 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

節點端點

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

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

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

子網路群組

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

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

事件

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

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

Maintenance window (維護時段)

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

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

區域代碼 區域名稱 Maintenance window (維護時段)
ap-northeast-1 亞太 (東京) 區域 13:00–21:00 UTC
ap-southeast-1 亞太 (新加坡) 區域 14:00–22:00 UTC
ap-southeast-2 亞太 (雪梨) 區域 12:00–20:00 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-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 美國西部 (奧勒岡) 區域 06:00–14:00 UTC