ヤマムギ

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認定資格試験テキスト AWS認定クラウドプラクティショナー」執筆裏話

今日2019/4/20発売となりました「AWS認定資格試験テキスト AWS認定ク …

Amazon Connectの新規作成からプッシュボタン入力と発信元電話番号をLambdaで処理するまで

とりあえずやりたいことはタイトルに書いたとおり、「電話をかけて、プッシュボタンに …

Amazon Auroraのスナップショットの暗号化とリージョン間コピーを改めて試しました

Amazon Auroraデータベースを暗号化して、スナップショットを作成、クロ …

AWS CLIを使用せずにCodeCommitへSSHユーザーで接続する

AWS CLIやアクセスキーID、シークレットアクセスキーなどを開発環境にセット …

Microsoft TeamsのIncoming Webhooksを使ってAWS Lambda(Python)からFeedlyの記事を自動投稿する

Microsoft Teamsの検証を始めましたので、Slackで自動化している …

名前解決してセッションマネージャが使えるようにVyOSのhost_name.pyを編集しました

発生したエラー セッションマネージャからこんなエラーが出力されました。 [cra …

EC2 Linux ユーザーデータ実行ユーザーとカレントディレクトリの確認

きっと、rootなんだろうなあと認識してたのですが、自分の目で確認したことはなか …

AWS CloudShellでboto3(SDK for Python)使うならpython3

本の執筆をしていて、ちょっとAWS CLIやSDKのふるまいを確認したいことがあ …

Amazon VPCでIPv6を使用する

VPCのIPv6を設定してみました。 設定 [Amazon 提供の IPv6 C …

AWS Toolkit for Eclipseをセットアップする

AWSでそろそろ課金がされつつありますので、夜中はインスタンスを自動停止して朝自 …