ヤマムギ

growing hard days.

*

RDS ProxyをAurora MySQLで

      2021/09/27

Lambda関数をたくさん同時実行してMySQLにアクセスしても大丈夫なようにRDS Proxyを試してみました。

AuroraはMySQLでクラスターを起動しておきました。

RDS Proxyの作成

RDSコンソールからプロキシーの作成をしました。
エンジンはMySQL、データベースは作成済のAuroraクラスターを指定して、接続プールの最大数は100%にしました。

Secrets Managerが必須なので作成しました。
ユーザー名、パスワードはAuroraクラスターのマスターユーザー名とパスワードを指定しました。
IAMロールは新規作成しました。
サブネットはAuroraクラスターのサブネットグループと同じ。
セキュリティグループはAuroraクラスターと同じですが、自分自信をソースとして3306を許可しておきました。

データベースの準備

デモデータを用意しておきました。

テスト用のLambda

Lambdaを実行するLambda関数

データベースに接続するLambda関数を100回実行するLambda関数です。

データベースに接続するLambda関数

pymysqlはLambdaレイヤーでアップロードしています。
接続してSELECTを実行するだけです。

Auroraクラスタに直接接続

まずは、Auroraクラスタに直接接続してみました。

リクエストの数だけDB接続が作成され、途中から次のエラーになりました。
[ERROR] OperationalError: (1040, ‘Too many connections’)

RDS Proxyを使って接続

プロキシエンドポイントが作成されていたので、host=の行を差し替えました。

今回は’Too many connections’エラーが発生することなくすべて処理ができました。
RDS Proxyがうまくやってくれたのですね。


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

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

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

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

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

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

 - AWS ,

ad

ad

  関連記事

EC2インスタンスが到達不能になって復旧してMackerelで監視し始めた

きっとばりばり使っておられる方ならよくある事なんだろうけど、はじめて体験したので …

AWS CloudFormationでAmazon DynamoDBテーブルを作ってアイテムを追加する

デモ用にDynamoDBテーブルを作って消して、ということをたまにするので、Cl …

「AWS認定試験対策 AWS クラウドプラクティショナー」の出版が確定したのでAmazon著者セントラルに登録した

初の執筆本、「AWS認定試験対策 AWS クラウドプラクティショナー」の出版が確 …

AWSアカウントrootユーザーのメールアドレスを変更

昔、うっかり会社の個人メールアドレスで作ってしまったAWSアカウントがあるのでメ …

WordPress(EC2)の画像のS3へのオフロードをMedia Cloudで

タイトル通りですが、画像をwebサーバー(EC2)からではなく、S3バケットから …

VPC内のLambdaからVPCエンドポイント経由でSecrets Managerを使う

InternetGatewayのないVPCでMySQLに対して一日数回のレポーテ …

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

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

Amazon Location Service入門ワークショップ-トラッカー

トラッカーでデバイスの位置や移動履歴を追跡できます。 関連記事 Amazon L …

AWS Glueチュートリアル

AWS Glueのマネジメントコンソールの左ペインの一番下にチュートリアルがあり …

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

DynamoDBデベロッパーガイドのDynamoDB Accelerator(D …