本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
本節說明 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
許多 AWS 服務,包括 DynamoDB,都支援標記功能,以使用者定義名稱標記資源。您可以將標籤指派給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 叢集,建議您刪除它,以避免支付未使用資源的費用。
您可以使用主控台或 AWS CLI來刪除 DAX 叢集。以下是範例。
aws dax delete-cluster --cluster-name mydaxcluster