Node.js および DAX - Amazon DynamoDB

Node.js および DAX

このステップに従って、Amazon EC2 インスタンスで Node.js サンプルアプリケーションを実行します。

DAX の Node.js サンプルを実行するには
  1. 以下のように、Amazon EC2 インスタンスで Node.js を設定します。

    1. ノードバージョンマネージャー (nvm) をインストールしてください。

      curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
    2. nvm を使用して Node.js をインストールします。

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

      node -e "console.log('Running Node.js ' + process.version)"

      これにより次のメッセージが表示されるはずです。

      Running Node.js v12.16.3

  2. ノードパッケージマネージャー (npm) を使用して、DAX Node.js クライアントをインストールします。

    npm install amazon-dax-client
  3. サンプルプログラムソースコード (.zip ファイル) をダウンロードします。

    wget http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/samples/TryDax.zip

    ダウンロードが完了したら、ソースファイルを解凍します。

    unzip TryDax.zip
  4. 次の Node.js プログラムを実行します。最初のプログラムは、TryDaxTable という Amazon DynamoDB テーブルを作成します。2 番目のプログラムは、テーブルにデータを書き込みます。

    node 01-create-table.js node 02-write-data.js
  5. 次の Node.js プログラムを実行します。

    node 03-getitem-test.js node 04-query-test.js node 05-scan-test.js

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

  6. 前のステップで、DynamoDB エンドポイントに対してプログラムを実行しました。プログラムを再度実行しますが、今度は GetItemQueryScan オペレーションが 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" }

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

    node 03-getitem-test.js dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com node 04-query-test.js dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com node 05-scan-test.js dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com

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

  7. 次の Node.js プログラムを実行して TryDaxTable を削除します。

    node 06-delete-table

これらのプログラムの詳細については、以下のセクションを参照してください。