管理DAX叢集 - Amazon DynamoDB

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

管理DAX叢集

本節說明 Amazon DynamoDB Accelerator (DAX) 叢集的一些常見管理任務。

IAM 管理DAX叢集的許可

當您使用 AWS Management Console 或 AWS Command Line Interface (AWS CLI) 管理DAX叢集時,強烈建議您縮小使用者可以執行的動作範圍。這樣做有利於降低風險,同時遵循最低權限。

下列討論著重於DAX管理 的存取控制APIs。如需詳細資訊,請參閱 Amazon DynamoDB 參考 中的 Amazon DynamoDB 加速器 DynamoDB API

注意

如需管理 AWS Identity and Access Management (IAM) 許可的詳細資訊,請參閱下列內容:

對於 DAX管理 APIs,您無法將API動作範圍限定在特定資源。Resource 元素必須設為 "*"。這與DAX資料平面API操作不同,例如 QueryGetItemScan。資料平面操作會透過DAX用戶端公開,這些操作可以範圍化為特定資源。

若要說明,請考慮下列IAM政策文件。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "dax:*" ], "Effect": "Allow", "Resource": [ "arn:aws:dax:us-west-2:123456789012:cache/DAXCluster01" ] } ] }

假設此政策的目的在於允許 叢集的DAX管理API呼叫DAXCluster01,而只允許該叢集。

現在假設使用者發出下列 AWS CLI 命令。

aws dax describe-clusters

此命令會失敗,因為基礎DescribeClustersAPI呼叫無法範圍限定在特定叢集。即使此政策在語法上有效,命令仍會失敗,因為 Resource 元素必須設為 "*"。不過,如果使用者執行的程式會將DAX資料平面呼叫 (例如 GetItemQuery) 傳送至 DAXCluster01,則這些呼叫成功。這是因為DAX資料平面APIs可以範圍化為特定資源 (在此情況下為 DAXCluster01)。

如果您想要撰寫單一完整IAM政策來涵蓋DAX管理和APIsDAX資料平面 APIs,建議您在政策文件中包含兩個不同的陳述式。其中一個陳述式應處理DAX資料平面 APIs,而另一個陳述式則處理 DAX 管理 APIs。

以下範例政策示範這種方法。請注意 DAXDataAPIs 陳述式的範圍如何侷限在 DAXCluster01 資源範圍內,但 DAXManagementAPIs 的資源必須是 "*"。每個陳述式中顯示的動作都僅供示範使用。您可以視需要為您的應用程式自訂他們。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DAXDataAPIs", "Action": [ "dax:GetItem", "dax:BatchGetItem", "dax:Query", "dax:Scan", "dax:PutItem", "dax:UpdateItem", "dax:DeleteItem", "dax:BatchWriteItem" ], "Effect": "Allow", "Resource": [ "arn:aws:dax:us-west-2:123456789012:cache/DAXCluster01" ]}, { "Sid": "DAXManagementAPIs", "Action": [ "dax:CreateParameterGroup", "dax:CreateSubnetGroup", "dax:DecreaseReplicationFactor", "dax:DeleteCluster", "dax:DeleteParameterGroup", "dax:DeleteSubnetGroup", "dax:DescribeClusters", "dax:DescribeDefaultParameters", "dax:DescribeEvents", "dax:DescribeParameterGroups", "dax:DescribeParameters", "dax:DescribeSubnetGroups", "dax:IncreaseReplicationFactor", "dax:ListTags", "dax:RebootNode", "dax:TagResource", "dax:UntagResource", "dax:UpdateCluster", "dax:UpdateParameterGroup", "dax:UpdateSubnetGroup" ], "Effect": "Allow", "Resource": [ "*" ] } ] }

擴展DAX叢集

有兩種選項可用於擴展DAX叢集。第一個選項是 horizontal scaling (水平擴展),您可在此將僅供讀取複本新增至叢集。第二個選項是 vertical scaling (垂直擴展),您可在此選取不同的節點類型。如果需要如何為應用程式選擇適當叢集大小和節點類型的建議,請參閱 DAX 叢集調整大小指南

水平擴展

使用水平擴展,您可以將更多的唯讀複本新增至叢集,改善輸送量。單一DAX叢集最多支援 10 個僅供讀取複本,您可以在叢集執行時新增或移除複本。

當您新增節點時,必須同步來自對等節點的快取資料。因此,新增時間會根據快取大小和應用程式工作負載而有所不同。最佳實務是,建議您預先擴展叢集以符合預期的流量峰值。如需正確調整指南和監控建議的相關資訊,請參閱 DAX 叢集調整大小指南

下列 AWS CLI 範例示範如何增加或減少節點數量。--new-replication-factor 引數會指定叢集中的節點總數。其中一個節點是主要節點,其他節點則是僅供讀取複本。

aws dax increase-replication-factor \ --cluster-name MyNewCluster \ --new-replication-factor 5
aws dax decrease-replication-factor \ --cluster-name MyNewCluster \ --new-replication-factor 3
注意

當您修改複寫因素時,叢集狀態會變更為 modifying。當修改完成時,狀態會變更為 available

垂直擴展

如果您有大型的資料工作集,您的應用程式可能得益於使用較大的節點類型。較大的節點可讓叢集在記憶體中存放更多資料、減少快取未中,改善應用程式的整體應用程式效能 (DAX叢集中的所有節點必須為相同類型。)

如果您的DAX叢集具有高寫入操作速率或快取遺失,您的應用程式也可能受益於使用較大的節點類型。寫入操作和快取未中會消耗叢集主節點上的資源,因此,使用較大的節點類型可能會提高主要節點的效能,進而為這類的操作提供較高的輸送量。

您無法修改執行中DAX叢集上的節點類型。而是必須使用所需節點類型建立新的叢集。如需支援的節點類型清單,請參閱「節點」。

您可以使用 AWS Management Console、AWS CloudFormation、 AWS CLI或 建立新的DAX叢集AWS SDK。(對於 AWS CLI,請使用 --node-type 參數來指定節點類型。)

自訂DAX叢集設定

當您建立DAX叢集時,會使用下列預設設定:

  • 啟用自動快取清除功能,存留時間 (TTL) 為 5 分鐘

  • 無偏好的可用區域

  • 無偏好的維護時段

  • 停用通知

針對新的叢集,您可以在建立期間自訂設定。若要在 AWS Management Console中執行此作業,請清除 Use default settings (使用預設設定) 以修改下列設定:

  • 網路和安全性:可讓您在目前 AWS 區域中的不同可用區域中執行個別DAX叢集節點。如果您選擇 No Preference (無偏好設定),節點會自動分散在可用區域中。

  • Parameter Group (參數群組):套用到叢集中每個節點的一組具名參數。您可以使用參數群組來指定快取TTL行為。您可以隨時變更參數群組中任何指定參數的數值 (預設參數群組 default.dax.1.0 除外)。

  • Maintenance Window (維護時段):軟體更新和修補程式套用到叢集中節點的每週時間期間。您可以選擇開始日、開始時間和維護時段的持續時間。如果您選擇 No Preference (無偏好設定),即會在每個區域的 8 小時時段內隨機選取維護時段。如需詳細資訊,請參閱Maintenance window (維護時段)

注意

您也可以隨時在執行中的叢集上變更 Parameter Group (參數群組)Maintenance Window (維護視窗)

發生維護事件時, DAX可以使用 Amazon Simple Notification Service (Amazon SNS) 通知您。若要設定通知,請從SNS通知選擇器的主題中選擇一個選項。您可以建立新的 Amazon SNS主題,或使用現有的主題。

如需設定和訂閱 Amazon SNS主題的詳細資訊,請參閱Amazon Simple Notification Service 開發人員指南中的 Amazon 入門SNS

TTL 設定設定

DAX 會為其從 DynamoDB 讀取的資料維護兩個快取:

  • Item cache (項目快取):適用於使用 GetItemBatchGetItem 擷取的項目。

  • Query cache (查詢快取):適用於使用 QueryScan 擷取的結果集。

如需詳細資訊,請參閱 項目快取查詢快取

這些快取TTL的預設值為 5 分鐘。如果您想要使用不同的TTL設定,您可以使用自訂參數群組啟動DAX叢集。若要在主控台上執行此操作,請在導覽窗格中選擇 DAX | 參數群組

您也可以使用 AWS CLI執行這些任務。下列範例示範如何使用自訂參數群組啟動新的DAX叢集。在此範例中,項目快取TTL設定為 10 分鐘,查詢快取TTL設定為 3 分鐘。

  1. 建立新的參數群組。

    aws dax create-parameter-group \ --parameter-group-name custom-ttl
  2. 將項目快取TTL設定為 10 分鐘 (600000 毫秒)。

    aws dax update-parameter-group \ --parameter-group-name custom-ttl \ --parameter-name-values "ParameterName=record-ttl-millis,ParameterValue=600000"
  3. 將查詢快取TTL設定為 3 分鐘 (180000 毫秒)。

    aws dax update-parameter-group \ --parameter-group-name custom-ttl \ --parameter-name-values "ParameterName=query-ttl-millis,ParameterValue=180000"
  4. 驗證參數設定是否正確。

    aws dax describe-parameters --parameter-group-name custom-ttl \ --query "Parameters[*].[ParameterName,Description,ParameterValue]"

您現在可以使用此參數群組啟動新的DAX叢集。

aws dax create-cluster \ --cluster-name MyNewCluster \ --node-type dax.r3.large \ --replication-factor 3 \ --iam-role-arn arn:aws:iam::123456789012:role/DAXServiceRole \ --parameter-group custom-ttl
注意

您無法修改執行中DAX執行個體正在使用的參數群組。

的標記支援 DAX

包括 DynamoDB 在內的許多 AWS 服務都支援標記,也就是使用使用者定義名稱標記資源的能力。您可以為DAX叢集指派標籤,讓您快速識別具有相同標籤的所有 AWS 資源,或依您指派的標籤分類 AWS 帳單。

如需詳細資訊,請參閱將標籤和標籤新增至 DynamoDB 中的資源

使用 AWS Management Console

管理 DAX 叢集標籤
  1. 在 開啟 DynamoDB 主控台https://console.aws.amazon.com/dynamodb/

  2. 在導覽窗格中的 下DAX,選擇叢集

  3. 選擇您想要使用的叢集。

  4. 選擇 Tags (標籤) 索引標籤。您可以在此新增、列出、編輯或刪除您的標籤。

    當您滿意設定後,請選擇 Apply Changes (套用變更)

使用 AWS CLI

當您使用 AWS CLI 管理DAX叢集標籤時,您必須先判斷叢集的 Amazon Resource Name (ARN)。下列範例示範如何判斷名為 ARN的叢集的 MyDAXCluster

aws dax describe-clusters \ --cluster-name MyDAXCluster \ --query "Clusters[*].ClusterArn"

在輸出中, ARN看起來會類似: arn:aws:dax:us-west-2:123456789012:cache/MyDAXCluster

以下範例示範如何標記叢集。

aws dax tag-resource \ --resource-name arn:aws:dax:us-west-2:123456789012:cache/MyDAXCluster \ --tags="Key=ClusterUsage,Value=prod"

列出叢集的所有標籤。

aws dax list-tags \ --resource-name arn:aws:dax:us-west-2:123456789012:cache/MyDAXCluster

您可以指定標籤的鍵來移除標籤。

aws dax untag-resource \ --resource-name arn:aws:dax:us-west-2:123456789012:cache/MyDAXCluster \ --tag-keys ClusterUsage

AWS CloudTrail 整合

DAX 已與 整合 AWS CloudTrail,可讓您稽核DAX叢集活動。您可以使用 CloudTrail 日誌來檢視叢集層級所做的所有變更。您也可以查看對叢集元件進行的變更,例如節點、子網路群組和參數群組。如需詳細資訊,請參閱使用 AWS CloudTrail記錄 DynamoDB 操作

刪除DAX叢集

如果您不再使用DAX叢集,您應該將其刪除,以避免針對未使用的資源收取費用。

您可以使用主控台或 刪除DAX叢集 AWS CLI。以下是範例。

aws dax delete-cluster --cluster-name mydaxcluster