ヤマムギ

growing hard days.

*

DynamoDB Accelerator(DAX)のサンプルアプリケーション(Python)を実行

      2022/09/15

DynamoDBデベロッパーガイドのDynamoDB Accelerator(DAX)のサンプルアプリケーション(Python)を実行して確認しました。

DAXの準備

DAX用のサブネットグループを2つのAZのプライベートサブネットで作成しました。

DAXのパラメーターグループは、主にTTLの設定でした。

DAXクラスター用のセキュリティグループを作成しました。
アプリケーションクライアント用EC2からのリクエストのみを許可するように設定しました。
8111はDAXクラスターを暗号化しない場合のポートでした。
暗号化する場合は9111です。

DAXクラスターのノードタイプはdax.t3.microにしました。
検証用なのでノードは1つ。

あらかじめ作成したサブネットグループとセキュリティグループを選択しました。

DAXサービスがDynamoDBテーブルに対してリクエストするためのIAMロールとIAMポリシーは新規作成しました。
こんなIAMポリシーが作成されました。

あらかじめ作成しておいたパラメーターグループを選択して、クラスターを作成しました。

アプリケーションクライアント用EC2の起動

DAXを作成したVPCのパブリックサブネットにEC2インスタンスを起動して、セッションマネージャーで接続しました。
EC2のIAMロールにはデベロッパーガイドに記載のとおり、DynamoDBとDAXに対してのフルアクセスを設定しました。

サンプルアプリケーションの実行

Amazon Linux2の現行バージョンでは、pip3、Python3なので、コマンドを対応させました。
あと、2022年7月26日現在のサンプルアプリケーションは、デベロッパーガイド記載のものから変更されているようで、リージョンを環境変数から取得していました。

バージニア北部で試していたので、環境変数にus-east-1を設定してから各サンプルアプリを実行しました。

DAX Pythonクライアントをインストールしてサンプルアプリケーションのダウンロード、展開をしました。

サンプル用テーブルが作成されて、テストデータが書き込まれました。

まず、DynamoDBに対して、GetItem、Query、Scanをして出力から時間を確認しました。
GetItemは50回の平均、Query、Scanは5回実行の平均値でした。

次に、DAXを指定して実行しました。
DAXエンドポイントを指定してサンプルプログラムを実行しました。

Scanはそれほどでもありませんでしたが、Queryは倍ぐらい、GetItemはかなり速くなったようです。

DAX Pythonクライアントは次のように使用されていました。

endpointはdax://からはじまるDAXエンドポイントが指定されています。

DAXがプライベートサブネットでも、NATゲートウェイやVPCエンドポイントはなしで問題ありませんでした。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , ,

  関連記事

AWS App RunnerでGithubリポジトリからデプロイ

AWS App Runner開発者ガイドのチュートリアルをやってみました。 Gi …

共有AMIのコピー時にエラー「You do not have permission to access the storage of this ami」

他アカウントから共有されたAMIをコピーする際に、「You do not hav …

Rocket.ChatにAPIで投稿するテスト(Postman)

トレーニング期間中で一時利用するチャットが欲しいなあと思い、Rocket.Cha …

AWS Toolkit for Eclipseで「Error Message: Unable to find a region via the region provider chain. Must provide an explicit region in the builder or setup environment to supply a region.」

AWS Toolkit for Eclipseをセットアップ(2021年版)の環 …

Amazon EMR 「Hadoop を使用してビッグデータを分析」チュートリアルをやってみました

AWS認定データアナリティクス受験準備の一環で、Amazon EMRのチュートリ …

Amazon RDS MySQLでCSVをload data するときに「Access denied」発生

超小ネタです。 AWSのデータベースサービスの Amazon RDSのMySQL …

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト – プロフェッショナル」を執筆しました

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテク …

RDS自動バックアップの自動クロスリージョンコピー

このブログのRDS for MySQLはAWS Backupで大阪リージョンから …

東京リージョンの1つのAZ(apne1-az2)でt3.nanoスポットインスタンスが拒否されちゃいました

拒否されちゃいました ちょっとした検証をしようとしてて、t3.nanoのスポット …

Amazon Linux2のCloud9でPython CDKのモジュールインストール

AMIがCloud9AmazonLinux2-2021-02-02T16-48の …