DAX SDK for Go
この手順に従って、Amazon EC2 インスタンスで Go 対応 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 テーブルを作成します。2 番目のプログラムは、テーブルにデータを書き込みます。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 クラスターのエンドポイントを確認するには、次のいずれかを選択します。
-
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
の経過時間は、DynamoDB を使用した場合より DAX を使用した方が大幅に低いはずです。 -
-
次の 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