本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
管理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
注意
對於 DAX管理 APIs,您無法將API動作範圍限定在特定資源。Resource
元素必須設為 "*"
。這與DAX資料平面API操作不同,例如 Query
、 GetItem
和 Scan
。資料平面操作會透過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
此命令會失敗,因為基礎
DescribeClusters
API呼叫無法範圍限定在特定叢集。即使此政策在語法上有效,命令仍會失敗,因為 Resource
元素必須設為 "*"
。不過,如果使用者執行的程式會將DAX資料平面呼叫 (例如 GetItem
或 Query
) 傳送至 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 (項目快取):適用於使用
GetItem
或BatchGetItem
擷取的項目。 -
Query cache (查詢快取):適用於使用
Query
或Scan
擷取的結果集。
這些快取TTL的預設值為 5 分鐘。如果您想要使用不同的TTL設定,您可以使用自訂參數群組啟動DAX叢集。若要在主控台上執行此操作,請在導覽窗格中選擇 DAX | 參數群組。
您也可以使用 AWS CLI執行這些任務。下列範例示範如何使用自訂參數群組啟動新的DAX叢集。在此範例中,項目快取TTL設定為 10 分鐘,查詢快取TTL設定為 3 分鐘。
-
建立新的參數群組。
aws dax create-parameter-group \ --parameter-group-name custom-ttl
-
將項目快取TTL設定為 10 分鐘 (600000 毫秒)。
aws dax update-parameter-group \ --parameter-group-name custom-ttl \ --parameter-name-values "ParameterName=record-ttl-millis,ParameterValue=600000"
-
將查詢快取TTL設定為 3 分鐘 (180000 毫秒)。
aws dax update-parameter-group \ --parameter-group-name custom-ttl \ --parameter-name-values "ParameterName=query-ttl-millis,ParameterValue=180000"
-
驗證參數設定是否正確。
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 叢集標籤
在 開啟 DynamoDB 主控台https://console.aws.amazon.com/dynamodb/
。 -
在導覽窗格中的 下DAX,選擇叢集 。
-
選擇您想要使用的叢集。
-
選擇 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