DAX SDK for Go
다음 절차에 따라 Amazon EC2 인스턴스에서 Amazon DynamoDB Accelerator(DAX) SDK for Go 샘플 애플리케이션을 실행합니다.
DAX용 SDK for Go 샘플을 실행하려면
-
Amazon EC2 인스턴스에 SDK for Go를 설치합니다.
-
Go 프로그래밍 언어(
Golang
)를 설치합니다.sudo yum install -y golang
-
Golang가 설치되었고 올바르게 실행되는지 테스트합니다.
go version
다음과 같은 메시지가 나타납니다.
go version go1.15.5 linux/amd64
나머지 지침에서는 Go 버전 1.13에서 기본값이 된 모듈 지원을 사용합니다.
-
-
샘플 Golang 애플리케이션을 설치합니다.
go get github.com/aws-samples/aws-dax-go-sample
-
다음 Golang 프로그램을 실행합니다. 첫 프로그램은
TryDaxGoTable
이라는 DynamoDB 테이블을 생성합니다. 두 번째 프로그램은 해당 테이블에 데이터를 씁니다.go run ~/go/pkg/mod/github.com/aws-samples/aws-dax-go-sample@v1.0.2/try_dax.go -service dynamodb -command create-table
go run ~/go/pkg/mod/github.com/aws-samples/aws-dax-go-sample@v1.0.2/try_dax.go -service dynamodb -command put-item
-
다음 Golang 프로그램을 실행합니다.
go run ~/go/pkg/mod/github.com/aws-samples/aws-dax-go-sample@v1.0.2/try_dax.go -service dynamodb -command get-item
go run ~/go/pkg/mod/github.com/aws-samples/aws-dax-go-sample@v1.0.2/try_dax.go -service dynamodb -command query
go run ~/go/pkg/mod/github.com/aws-samples/aws-dax-go-sample@v1.0.2/try_dax.go -service dynamodb -command scan
GetItem
,Query
및Scan
테스트에 필요한 시간 정보(밀리초)를 기록해 둡니다. -
전 단계에서 DynamoDB 엔드포인트에 대해 프로그램을 실행했습니다. 이제 프로그램을 다시 실행하되, 이번에는
GetItem
,Query
및Scan
작업을 DAX 클러스터에서 처리합니다.DAX 클러스터의 엔드포인트를 정의하려면 다음 중 하나를 선택합니다.
-
Using the DynamoDB console(DynamoDB 콘솔 사용) - DAX 클러스터를 선택합니다. 다음 예제와 같이 클러스터 엔드포인트가 콘솔에 표시됩니다.
dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
-
AWS CLI 사용 - 다음 명령을 입력합니다.
aws dax describe-clusters --query "Clusters[*].ClusterDiscoveryEndpoint"
다음 예제와 같이 클러스터 엔드포인트가 출력에 표시됩니다.
{ "Address": "my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com", "Port": 8111, "URL": "dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com" }
이제 프로그램을 다시 실행합니다. 이번에는 클러스터 엔드포인트를 명령줄 파라미터로 지정합니다.
go run ~/go/pkg/mod/github.com/aws-samples/aws-dax-go-sample@v1.0.2/try_dax.go -service dax -command get-item -endpoint my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com:8111
go run ~/go/pkg/mod/github.com/aws-samples/aws-dax-go-sample@v1.0.2/try_dax.go -service dax -command query -endpoint my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com:8111
go run ~/go/pkg/mod/github.com/aws-samples/aws-dax-go-sample@v1.0.2/try_dax.go -service dax -command scan -endpoint my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com:8111
나머지 출력을 확인하여 시간 정보를 기록해 둡니다.
GetItem
,Query
,Scan
에 대한 경과 시간은 DAX가 DynamoDB보다 현저히 적어야 합니다. -
-
다음 Golang 프로그램을 실행하여
TryDaxGoTable
을 삭제합니다.go run ~/go/pkg/mod/github.com/aws-samples/aws-dax-go-sample@v1.0.2/try_dax.go -service dynamodb -command delete-table