ヤマムギ

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 Control Towerランディングゾーンをセットアップする

AWS Control Towerの最初の画面で[ランディングゾーンの設定]を押 …

Kinesis Data AnalyticsをKinesis Data Streamsに接続してSQL検索する

Amazon Kinesis Data StreamsにTwitter検索データ …

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

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

WordPress W3 Total Cache のDatabaseCacheをAmazon ElastiCacheのmemcachedに格納する

このブログのアーキテクチャは現在こちらです。 データベースは、Amazon Au …

Amazon FSx for Lustreのユーザーガイド入門演習

ファイルシステムの作成 FSx for Lustreを選択しました。 容量やスル …

Cloud9でCodeWhispererを使用する

アクセス権限 Cloud9のEC2に設定するIAMロールのIAMポリシーで co …

AWSアカウント内のすべてのS3バケットを削除するLambda(Python)

やりたいこと 特定アカウント内のS3バケットを全部削除したいです。 バケット内の …

CloudFrontからのバーチャルホストなサイトのテストってどうしてます?

このブログの構成です。 AWSで構築しています。 4つのサイトを1つのEC2で配 …

Aurora Serverless Data APIを有効にしてLambdaからクエリを実行

Aurora Serverless作成 MySQLを作成しました。 作成時にDa …

ACM(AWS Certificate Manager)の承認メールを受け取るためにAmazon SESを設定する

何のためでもいいのですが、ドメインは持っているけど、そのドメイン宛にメールを送ら …