本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
本節說明如何使用 AWS Command Line Interface (AWS CLI) 建立 Amazon DynamoDB Accelerator (DAX) 叢集。若您尚未執行此作業,您必須安裝及設定 AWS CLI。若要執行此作業,請參閱《AWS Command Line Interface 使用者指南》中的以下說明:
重要
若要使用 管理 DAX 叢集 AWS CLI,請安裝 或升級至 1.11.110 版或更新版本。
所有 AWS CLI 範例都使用us-west-2
區域和虛構的帳戶 IDs。
步驟 1:為 DAX 建立 IAM 服務角色,以使用 存取 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:建立子網路群組
依照此程序,使用 AWS Command Line Interface () 為您的 Amazon DynamoDB Accelerator (DAX) 叢集建立子網路群組AWS CLI。
注意
如果您已建立預設 VPC 的子網路群組,則可略過此步驟。
DAX 旨在於 Amazon Virtual Private Cloud (Amazon VPC) 環境內執行。如果您是在 2013 年 12 月 4 日之後建立 AWS 帳戶,則您在每個 AWS 區域中都會有預設的 VPC。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的預設 VPC 和預設子網路。
注意
具有此 DAX 叢集的 VPC 可以包含其他資源,甚至是其他 服務的 VPC 端點,但 ElastiCache 的 VPC 端點除外,並可能導致 DAX 叢集操作發生錯誤。
建立子網路群組
-
若要判斷您預設 VPC 的識別符,請輸入以下命令。
aws ec2 describe-vpcs
在輸出中,記下您預設 VPC 的識別符,如以下範例所示。
vpc-12345678
-
判斷與您預設 VPC 相關聯的子網路 ID。使用您的實際 VPC ID (例如
vpc-12345678
) 取代vpcID
。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 VPC 中建立 Amazon DynamoDB Accelerator (DAX) 叢集。
建立 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 VPC 中的 Amazon EC2 執行個體存取您的 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