本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
本節說明如何使用 (DAX) 建立 Amazon DynamoDB Accelerator AWS Command Line Interface () 叢集AWS CLI。若您尚未執行此作業,您必須安裝及設定 AWS CLI。若要執行此作業,請參閱《AWS Command Line Interface 使用者指南》中的以下說明:
重要
若要使用 管理DAX叢集 AWS CLI,請安裝 或升級至 1.11.110 版或更新版本。
所有 AWS CLI 範例都使用us-west-2
區域和虛構帳戶 IDs。
步驟 1:建立 IAM的服務角色DAX,以使用 存取 DynamoDB AWS CLI
您必須先為其建立服務角色,才能建立 Amazon DynamoDB Accelerator (DAX) 叢集。服務角色是 AWS Identity and Access Management (IAM) 角色,授權 AWS 服務代表您。服務角色允許 DAX存取您的 DynamoDB 資料表,就像您自行存取這些資料表一樣。
在此步驟中,您會建立 IAM 政策,然後將該政策連接到 IAM 角色。這可讓您將角色指派給DAX叢集,以便其代表您執行 DynamoDB 操作。
為 DAX 建立 IAM 服務角色
-
使用下列內容建立名為
service-trust-relationship.json
的檔案。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "dax.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
建立服務角色。
aws iam create-role \ --role-name DAXServiceRoleForDynamoDBAccess \ --assume-role-policy-document file://service-trust-relationship.json
-
使用下列內容建立名為
service-role-policy.json
的檔案。{ "Version": "2012-10-17", "Statement": [ { "Action": [ "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:GetItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:BatchGetItem", "dynamodb:BatchWriteItem", "dynamodb:ConditionCheckItem" ], "Effect": "Allow", "Resource": [ "arn:aws:dynamodb:us-west-2:
accountID
:*" ] } ] }將 取代
accountID
為 AWS 您的帳戶 ID。若要尋找 AWS 您的帳戶 ID,請在主控台的右上角選擇您的登入 ID。 AWS 您的帳戶 ID 會出現在下拉式功能表中。在範例中的 Amazon Resource Name (ARN) 中,
accountID
必須是 12 位數字。請勿使用連字號或其他任何標點符號。 -
建立服務角色的 IAM 政策。
aws iam create-policy \ --policy-name DAXServicePolicyForDynamoDBAccess \ --policy-document file://service-role-policy.json
在輸出中,記下您建立之政策ARN的 ,如下列範例所示。
arn:aws:iam::123456789012:policy/DAXServicePolicyForDynamoDBAccess
-
將該政策連接到服務角色。將下列程式碼
arn
中的 取代為上ARN一個步驟的實際角色。aws iam attach-role-policy \ --role-name DAXServiceRoleForDynamoDBAccess \ --policy-arn
arn
接著,您可以為預設 指定子網路群組VPC。子網路群組是 內一或多個子網路的集合VPC。請參閱 步驟 2:建立子網路群組。
步驟 2:建立子網路群組
依照此程序,使用 (DAX) 為您的 Amazon DynamoDB Accelerator AWS Command Line Interface () 叢集建立子網路群組AWS CLI。
注意
如果您已為預設 建立子網路群組VPC,您可以略過此步驟。
DAX 旨在於 Amazon Virtual Private Cloud 環境 (Amazon VPC) 內執行。如果您在 2013 年 12 月 4 日之後建立 AWS 帳戶,則VPC每個 AWS 區域都已有一個預設值。如需詳細資訊,請參閱《Amazon VPC使用者指南》中的預設VPC和預設子網路。
注意
VPC 具有此DAX叢集的 可以包含其他資源,甚至包含其他服務的VPC端點,但 的VPC端點除外, ElastiCache 可能會導致DAX叢集操作發生錯誤。
建立子網路群組
-
若要判斷預設 的識別符VPC,請輸入下列命令。
aws ec2 describe-vpcs
在輸出中,記下預設 的識別符VPC,如下列範例所示。
vpc-12345678
-
判斷與您預設 IDs相關聯的子網路VPC。將 取代
vpcID
為您實際VPC的 ID,例如vpc-12345678
。aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=
vpcID
" \ --query "Subnets[*].SubnetId"在輸出中,記下子網路識別碼 (例如
subnet-11111111
)。 -
建立子網路群組。確認您在
--subnet-ids
參數中至少指定一個子網路 ID。aws dax create-subnet-group \ --subnet-group-name my-subnet-group \ --subnet-ids
subnet-11111111
subnet-22222222
subnet-33333333
subnet-44444444
若要建立叢集,請參閱 步驟 3:使用 建立DAX叢集 AWS CLI。
步驟 3:使用 建立DAX叢集 AWS CLI
依照此程序,使用 AWS Command Line Interface (AWS CLI) 在預設 Amazon 中建立 Amazon DynamoDB Accelerator (DAX) 叢集VPC。
建立DAX叢集
-
取得服務角色的 Amazon Resource Name (ARN)。
aws iam get-role \ --role-name DAXServiceRoleForDynamoDBAccess \ --query "Role.Arn" --output text
在輸出中,記下服務角色 ARN,如下列範例所示。
arn:aws:iam::123456789012:role/DAXServiceRoleForDynamoDBAccess
-
建立 DAX 叢集
將 取代為上一個步驟ARN中的 。roleARN
aws dax create-cluster \ --cluster-name mydaxcluster \ --node-type dax.r4.large \ --replication-factor 3 \ --iam-role-arn
roleARN
\ --subnet-group my-subnet-group \ --sse-specification Enabled=true \ --region us-west-2叢集中的所有節點類型皆為
dax.r4.large
(--node-type
)。共有三個節點 (--replication-factor
):一個主節點和兩個複本。注意
由於
sudo
和grep
是預留關鍵字,因此您無法在DAX叢集名稱中建立具有這些字詞的叢集。例如,sudo
和sudocluster
是無效的叢集名稱。
若要檢視叢集狀態,請輸入以下命令。
aws dax describe-clusters
狀態會在輸出中顯示,例如 "Status":
"creating"
。
注意
建立叢集需要幾分鐘。當叢集準備就緒時,其狀態會變更為 available
。同時,請繼續進行 步驟 4:使用 設定安全群組傳入規則 AWS CLI,並遵循其中的說明。
步驟 4:使用 設定安全群組傳入規則 AWS CLI
Amazon DynamoDB Accelerator (DAX) 叢集中的節點會使用 Amazon 的預設安全群組VPC。對於預設安全群組,您必須授權TCP連接埠 8111 上未加密叢集的傳入流量,或授權連接埠 9111 用於加密叢集。這可讓 Amazon 中的 Amazon EC2執行個體VPC存取您的DAX叢集。
注意
若使用不同的安全群組 (而非 default
) 啟動您的 DAX 叢集,您必須改為該群組執行此程序。
設定安全群組傳入規則
-
若要判斷預設安全群組識別符,請輸入以下命令。
以您的實際 VPC ID 取代 (來自 步驟 2:建立子網路群組)。vpcID
aws ec2 describe-security-groups \ --filters Name=vpc-id,Values=
vpcID
Name=group-name,Values=default \ --query "SecurityGroups[*].{GroupName:GroupName,GroupId:GroupId}"在輸出中,記下安全群組識別碼 (例如
sg-01234567
)。 -
然後輸入以下內容。將
取代成您實際的安全群組識別符。請將連接埠sgID
8111
用於未加密的叢集,再將9111
用於加密的叢集。aws ec2 authorize-security-group-ingress \ --group-id
sgID
--protocol tcp --port8111