DAX SDK for Go
Follow this procedure to run the Amazon DynamoDB Accelerator (DAX) SDK for Go sample application on your Amazon EC2 instance.
To run the SDK for Go sample for DAX
-
Set up the SDK for Go on your Amazon EC2 instance:
-
Install the Go programming language (
Golang
).sudo yum install -y golang
-
Test that Golang is installed and running correctly.
go version
A message like this should appear.
go version go1.15.5 linux/amd64
The remaining instructions rely on module support, which became the default with Go version 1.13.
-
-
Install the sample Golang application.
go get github.com/aws-samples/aws-dax-go-sample
-
Run the following Golang programs. The first program creates a DynamoDB table named
TryDaxGoTable
. The second program writes data to the table.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
-
Run the following Golang programs.
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
Take note of the timing information—the number of milliseconds required for the
GetItem
,Query
, andScan
tests. -
In the previous step, you ran the programs against the DynamoDB endpoint. Now, run the programs again, but this time, the
GetItem
,Query
, andScan
operations are processed by your DAX cluster.To determine the endpoint for your DAX cluster, choose one of the following:
-
Using the DynamoDB console — Choose your DAX cluster. The cluster endpoint is shown on the console, as in the following example.
dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
-
Using the AWS CLI — Enter the following command.
aws dax describe-clusters --query "Clusters[*].ClusterDiscoveryEndpoint"
The cluster endpoint is shown in the output, as in the following example.
{ "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" }
Now run the programs again, but this time, specify the cluster endpoint as a command line parameter.
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
Look at the rest of the output, and take note of the timing information. The elapsed times for
GetItem
,Query
, andScan
should be significantly lower with DAX than with DynamoDB. -
-
Run the following Golang program to delete
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