이 단원에서는 AWS Command Line Interface(AWS CLI)를 사용하여 Amazon DynamoDB Accelerator(DAX) 클러스터를 생성하는 방법을 설명합니다. AWS CLI를 아직 설치하지 않았다면 이를 설치하고 구성해야 합니다. 이를 위해 AWS Command Line Interface 사용 설명서에서 다음 지침을 참조하세요.
중요
AWS CLI를 사용하여 DAX 클러스터를 관리하려면 1.11.110 버전 이상을 설치하거나 업그레이드하세요.
모든 AWS CLI 예제는 us-west-2
리전과 가상의 계정 ID를 사용합니다.
1단계: AWS CLI을 사용하여 DAX에서 DynamoDB에 액세스하는 IAM 서비스 역할 생성
Amazon DynamoDB Accelerator(DAX) 클러스터를 생성하려면 먼저 이에 대한 서비스 역할을 생성해야 합니다. 서비스 역할은 사용자를 대신하여 AWS 서비스를 수행하도록 허가하는 AWS Identity and Access Management(IAM) 역할입니다. 사용자가 테이블에 액세스하듯이 서비스 역할을 통해 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 리소스 이름(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(AWS CLI)를 사용하여 Amazon DynamoDB Accelerator(DAX) 클러스터의 서브넷 그룹을 생성합니다.
참고
기본 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를 확인합니다.
vpcID
를 실제 VPC ID(예:vpc-12345678
)로 바꿉니다.aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=
vpcID
" \ --query "Subnets[*].SubnetId"출력에 표시된 서브넷 식별자(예:
subnet-11111111
)를 기록해 둡니다. -
서브넷 그룹을 생성합니다.
--subnet-ids
파라미터에 서브넷 ID를 1개 이상 지정해야 합니다.aws dax create-subnet-group \ --subnet-group-name my-subnet-group \ --subnet-ids
subnet-11111111
subnet-22222222
subnet-33333333
subnet-44444444
클러스터를 생성하는 방법은 3단계: AWS CLI를 사용하여 DAX 클러스터 생성 단원을 참조하세요.
3단계: AWS CLI를 사용하여 DAX 클러스터 생성
다음 절차를 따라 AWS Command Line Interface(AWS CLI)를 사용하여 기본 Amazon VPC에 Amazon DynamoDB Accelerator(DAX) 클러스터를 생성합니다.
DAX 클러스터를 생성하려면
-
서비스 역할의 Amazon 리소스 이름(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
)입니다. 프라이머리 노드 1개와 복제본 2개, 총 3개의 노드(--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 클러스터에 액세스할 수 있습니다.
참고
DAX 클러스터를 default
가 아닌 다른 보안 그룹으로 시작했다면 대신 해당 그룹에 대해 다음 절차를 수행해야 합니다.
보안 그룹 인바운드 규칙을 구성하려면
-
기본 보안 그룹 식별자를 확인하려면 다음 명령을 입력합니다.
를 실제 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