ヤマムギ

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認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

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

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

 - AWS , ,

ad

ad

  関連記事

AWS Summit Tokyo 2017 聴講したセッションのメモ

2017年6月に参加しましたAWS Summitで聴講したセッションのメモを記し …

RDSスナップショットのS3エクスポート結果確認

RDSのスナップショットをS3へエクスポートが日本語マネジメントコンソールでもで …

RDSのポイントインタイムリカバリをしました

WordPressで画像アップロードができなくなった(AWS WAFでブロックし …

Amazon Connectから問い合わせ追跡レコード(CTR)をエクスポート

Amazon Connectから発信した電話に出たのか、出なかったのかを確認した …

Lambda関数からAWS Systems Managerパラメータストアの値を取得して更新する

Lambda関数で自分自身の環境変数を更新する だと、Lambdaのエイリアスと …

RDSインスタンス作成時にEC2に接続設定するオプション

EC2 インスタンスと RDS データベース を自動的に接続するの動作を確認した …

「JAWS-UG 名古屋 2022年 “re:Invent”の復習~忘年会~」に参加しました

re:Inventのおみやげも飲み物、ピザ、お寿司もたくさん。 コラボベースさん …

AWS Lambdaで「Process exited before completing request」

AWS lambdaで「Process exited before comple …

AWS Elastic Beanstalkによって作成されたS3バケットはDeleteBucketが拒否されていた

ちょっとした検証をしたあとに、Elastic Beanstalkのアプリケーショ …

php-fpm で Out of memoryが発生した際にメール通知する(AWS CloudWatch , Amazon SNS)

AWS CloudWatch LogsエージェントでAmazon EC2上のNg …