3
3

More than 3 years have passed since last update.

実運用して気づいた Aurora Serverless の注意点

Last updated at Posted at 2020-11-07

Aurora Serverless を使用する機会がありましたので、調べたことをまとめてみました。

1. 自動スケーリングのしきい値

設定に応じて、Aurora Serverless は、CPU 使用率、接続、および使用可能メモリの各しきい値に関するスケーリングルールを自動的に作成します。

スケールアップ&ダウンの条件はCPU、メモリ、同時接続数のAWS側の閾値をもとにスケールアップ&ダウンされる。 現時点はこちらで閾値を設定することはできなそうでした。

2. 自動スケーリングアップ

スケーリングポイントは、データベースが安全にスケーリングオペレーションを開始できる時点です。以下の条件では Aurora Serverless がスケーリングポイントを見つけられない場合があります。
長期実行クエリまたはトランザクションが進行中である
一時テーブルまたはテーブルロックが使用中である

スロークエリが発生している場合などはスケールアップできいないので注意が必要です。
(クエリを強制終了してスケールアップするオプションもあります。)
■自動スケーリングダウン

スケールアップ後のスケールダウンのクールダウン期間は 15 分です。スケールダウン後の再スケールダウンのクールダウン期間は 310 秒です。

■注意点
- 1つのクエリに時間がかかっている場合スケールアップの条件を満たしていたも自動でスケールアップされない
- テーブルロックがかかっている場合も同様にスケールアップされない。
(クライアントとの接続を切って、強制的にスケールアップさせる設定を入れることも可能です。)

手動でスケールアップすることも可能です。
手動の際も、クライアントの接続を強制的に切って変更することも可能

3. ACUあたりの同時接続数 (検証済み)

1ACU: 90
2ACU: 180
4ACU: 270
8ACU: 1000

■1ACU(2GB)の場合
mysql> select @@max_connections;
+-------------------+
| @@max_connections |
+-------------------+
|                90 |
+-------------------+
1 row in set (0.00 sec)
■2ACU(4GB)の場合
mysql> select @@max_connections;
+-------------------+
| @@max_connections |
+-------------------+
|               180 |
+-------------------+
1 row in set (0.00 sec)
■4ACU(8GB)の場合の
mysql> select @@max_connections;
+-------------------+
| @@max_connections |
+-------------------+
|               270 |
+-------------------+
1 row in set (0.00 sec)
■8ACU(16GB)の場合
mysql> select @@max_connections;
+-------------------+
| @@max_connections |
+-------------------+
|              1000 |
+-------------------+
1 row in set (0.00 sec)

4. AZ障害

Aurora Serverless とフェイルオーバー
Aurora Serverless DB クラスターの DB インスタンスが使用不能になるか DB クラスターがあるアベイラビリティーゾーン (AZ) に障害が発生した場合、Aurora は別の AZ に DB インスタンスを再作成します。この機能は、自動マルチ AZ フェイルオーバーとも呼ばれます。
このフェイルオーバーメカニズムは、Aurora プロビジョンドクラスターのフェイルオーバーよりも時間がかかります。Aurora Serverless のフェイルオーバー時間は、AWS リージョン内の他の AZ の需要やキャパシティーの可用性によって異なるため、現在定義されていません。
Aurora では、コンピューティングキャパシティーとストレージは分離されるため、クラスターのストレージボリュームは複数の AZ に分散されます。停止が DB インスタンスまたは関連する AZ に影響する場合でも、データは引き続き利用することができます。

フェールオーバーの時間は未定義ですが、AZ障害時は自動でAZ変更してくれるので良いですね。

■参考資料
仕組み
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.how-it-works.html
同時接続数について
https://dev.classmethod.jp/articles/aurora-serverless-maxconnection/
料金
https://aws.amazon.com/jp/rds/aurora/pricing/
https://dev.classmethod.jp/articles/calculate-amazon-aurora-serverless-costs/
注意点
https://dev.classmethod.jp/articles/lessons-learned-from-up-and-running-aurora-serverless/

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3