Amazon DynamoDB
開発者ガイド (API バージョン 2012-08-10)

DAX SDK for Go

Amazon EC2 インスタンスで DynamoDB Accelerator (DAX) SDK for Go サンプルアプリケーションを実行するには、次の手順に従います。

  1. Amazon EC2 インスタンス上の SDK for Go の設定

    1. Go プログラミング言語のインストール (Golang):

      sudo yum install -y golang
    2. GOPATH 環境変数を設定します:

      # GOROOT is the location where Go package is installed on your system export GOROOT=/usr/lib/golang # GOPATH is the location of your work directory export GOPATH=$HOME/projects # PATH in order to access go binary system wide export PATH=$PATH:$GOROOT/bin

      注記

      前のコマンドでは、現在のセッションに対してのみ環境変数を設定します。これらの設定を永続的なものにするには、~/.bash_profile ファイルでコマンドを追加します。

    3. Golang が正しくインストールおよび実行されているかテストします。

      go version

      以下のメッセージが表示されます。

      go version go1.9.6 linux/amd64/

  2. DAX Golang クライアントをインストールします。

    go get github.com/aws/aws-dax-go
  3. サンプル Golang アプリケーションをインストールします。

    go get github.com/aws-samples/aws-dax-go-sample
  4. 以下の Golang プログラムを実行します。

    go run $GOPATH/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dynamodb -command create-table
    go run $GOPATH/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dynamodb -command put-item

    最初のプログラムは、TryDaxGoTable という DynamoDB テーブルを作成します。2 番目のプログラムは、テーブルにデータを書き込みます。

  5. 以下の Golang プログラムを実行します。

    go run $GOPATH/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dynamodb -command get-item
    go run $GOPATH/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dynamodb -command query
    go run $GOPATH/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dynamodb -command scan

    タイミング情報を書き留めます。これは GetItemQueryScan テストに必要なミリ秒の数字です。

  6. 前のステップで、DynamoDB エンドポイントに対してプログラムを実行しました。ここでプログラムを再度実行しますが、今度は GetItemQueryScan オペレーションが DAX クラスターによって処理されます。

    DAX クラスターのエンドポイントを確認するには、次のいずれかを選択します。

    • [DynamoDB コンソールの使用]—DAX クラスターを選択します。次の例のように、クラスターエンドポイントが console;に表示されます。

      mycluster.frfx8h.clustercfg.dax.usw2.amazonaws.com:8111
    • [AWS CLI の使用]—次のコマンドを入力します。

      aws dax describe-clusters --query "Clusters[*].ClusterDiscoveryEndpoint"

      クラスターエンドポイントポートとアドレスが出力に表示されます。その例を次に示します。

      { "Port": 8111, "Address":"mycluster.frfx8h.clustercfg.dax.usw2.amazonaws.com" }

    ここでプログラムを再度実行しますが、今度はクラスターエンドポイントをコマンドラインパラメータとして指定します。

    go run $GOPATH/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dax -command get-item -endpoint mycluster.frfx8h.clustercfg.dax.usw2.amazonaws.com:8111
    go run $GOPATH/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dax -command query -endpoint mycluster.frfx8h.clustercfg.dax.usw2.amazonaws.com:8111
    go run $GOPATH/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dax -command scan -endpoint mycluster.frfx8h.clustercfg.dax.usw2.amazonaws.com:8111

    出力の残りの部分を見て、タイミング情報を書き留めます。GetItemQueryScan の経過時間は、DynamoDB を使用した場合より DAX を使用した方が大幅に低いはずです。

  7. 次の Golang プログラムを実行して TryDaxGoTable を削除します。

    go run $GOPATH/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dynamodb -command delete-table