DAX SDK for Go - Amazon DynamoDB

DAX SDK for Go

다음 절차에 따라 Amazon EC2 인스턴스에서 Amazon DynamoDB Accelerator(DAX) SDK for Go 샘플 애플리케이션을 실행합니다.

DAX용 SDK for Go 샘플을 실행하려면
  1. Amazon EC2 인스턴스에 SDK for Go를 설치합니다.

    1. Go 프로그래밍 언어(Golang)를 설치합니다.

      sudo yum install -y golang
    2. Golang가 설치되었고 올바르게 실행되는지 테스트합니다.

      go version

      다음과 같은 메시지가 나타납니다.

      go version go1.15.5 linux/amd64

      나머지 지침에서는 Go 버전 1.13에서 기본값이 된 모듈 지원을 사용합니다.

  2. 샘플 Golang 애플리케이션을 설치합니다.

    go get github.com/aws-samples/aws-dax-go-sample
  3. 다음 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
  4. 다음 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, QueryScan 테스트에 필요한 시간 정보(밀리초)를 기록해 둡니다.

  5. 전 단계에서 DynamoDB 엔드포인트에 대해 프로그램을 실행했습니다. 이제 프로그램을 다시 실행하되, 이번에는 GetItem, QueryScan 작업을 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보다 현저히 적어야 합니다.

  6. 다음 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