記事検索

検索ワードを入力してください。
Sky Tech Blog
【AWS】Amazon Aurora Serverless の​Maxコネクションの​制約

【AWS】Amazon Aurora Serverless の​Maxコネクションの​制約

AWSのAmazon Aurora PostgreSQL Serverlessのmax_connections設定に関する制約とその対応策について説明しています。性能試験でのDBコネクションの枯渇問題を解決するための手順や注意事項が詳述されています。

はじめに

性能試験でDBコネクションの枯渇が発生したため、コネクションのMax値のチューニングを実施しました。
その際に、AWSのAmazon Aurora PostgreSQL Serverlessクラスターに紐づくDBパラメータグループに設定されているmax_connectionsの値を変更しました。
しかし、実機に値が反映されない事象が発生したため、その際に分かった仕様について以下にまとめております。

環境と​調査結果

  • 背景:Aurora PostgreSQL Serverlessのコネクション数のMax値を性能検証のため変更したいという要望がありました
  • 環境:夜間帯はコスト削減のためAurora PostgreSQL Serverlessの最小ACUを0としている環境になります
    ※ACU(Aurora Capacity Unit)はAuroraの容量単位を指します
  • 運用:性能試験の際は最小最大ACUともに1以上の値に変更しております

調査の結果、Aurora PostgreSQL Serverlessには以下の制約があることがわかりました。

最小ACUを0~0.5にした時点でmax_connectionsは"2000"が上限となります

対応策と​注意事項

max_connectionsを"2000"より大きな値に変更したい場合、以下の対応が必要です。

  • 最小ACUを1以上に設定
  • 最小ACUを変更後、インスタンスの再起動を実施

性能試験の​際に​実施した​max_connections適用手順

※前提max_connectionsのパラメータにはすでに"2000"より大きな値が設定されている

  • Aurora PostgreSQL Serverlessを起動する(最小ACUは0)
    →この時のmax_connectionsは制約により"2000"より大きな値は設定できない

  • Aurora PostgreSQL Serverlessの最小ACUを1以上に変更する

  • Aurora PostgreSQL Serverlessを再起動する
    →ここでmax_connectionsのパラメータに設定している"2000"より大きい値が設定される

参考
AWSのAurora PostgreSQL Serverlessのデフォルト設定ではmax_connectionsには以下の数式が設定されています。

LEAST({DBInstanceClassMemory/9531392},5000)

数式でmax_connectionの値を指定している場合は、最大ACUを変更する際に再起動することで最適なmax_connectionsの値が適用されます。

まとめ

  • 最小ACUを0~0.5にした時点でmax_connectionsは"2000"が上限となります
  • 最小ACUを0~0.5から1以上に変更する際、"2000"より大きなmax_connectionsの値を適用するには再起動が必要となります

Amazon Aurora Serverlessの利用機会は日に日に増えていくと思いますので、 この内容が開発の一助となれば幸いです。

参考URL


\シェアをお願いします!/
  • X
  • Facebook
  • LINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム