12
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[AWS]Aurora Serverless for PostgreSQLが休止状態から起動するまでの時間を調べた

Posted at

概要

Aurora Serverless for PostgreSQLがGAになって少し経ちました。
AuroraのAutoScaling対応やRDSのストレージ自動拡張等が実装されProvisionedでもどんどん便利になっていますが、それでもServerLess版の手軽さはとても魅力的ですね。

私のチームでも早速Serverless版を利用しようと思いましたが、
ウリの一つである一定時間アクセスが無いと自動で休止する機能が、実際どの程度影響を及ぼすのか気になりましたので調べてみました。

調査方法

Aurora Serverlessが休止状態かどうかは、CloudWatchの「ServerlessDatabaseCapacity」の値で確認できます。
この値を60秒置きにチェックし、0のとき(=休止状態)のみDBに接続、
リクエストが返るまでの時間を記録するシェルスクリプトを作成しました。

Auroraは東京リージョンに作成、接続元は同じ東京リージョン上のEC2からとしました。

結果

とりあえず24回取りました。
result.png

|Time|Result(sec)|
|:-----------------|:------------------|:
|2019-07-23T06:51:05|38.095|
|2019-07-23T06:59:36|28.348|
|2019-07-23T07:07:18|23.734|
|2019-07-23T07:15:50|26.829|
|2019-07-23T07:23:20|39.639|
|2019-07-23T07:31:59|27.801|
|2019-07-23T07:40:37|26.824|
|2019-07-23T07:48:11|36.098|
|2019-07-23T07:56:49|34.107|
|2019-07-23T08:04:21|30.995|
|2019-07-23T08:13:51|34.447|
|2019-07-23T08:22:35|28.92|
|2019-07-23T08:30:01|26.74|
|2019-07-23T08:38:35|40.174|
|2019-07-23T08:46:02|22.82|
|2019-07-23T08:54:30|30.375|
|2019-07-23T09:02:55|23.834|
|2019-07-23T09:11:27|24.736|
|2019-07-23T09:20:57|20.693|
|2019-07-23T09:28:23|28.859|
|2019-07-23T09:35:42|26.474|
|2019-07-23T09:48:12|22.746|
|2019-07-23T09:57:45|30.394|
|2019-07-23T10:04:34|29.979|
※環境とスクリプトが適当だったのでUTCだったり実行間隔がバラバラだったりしますがご容赦

結果として、実行時間の平均値は「29.32秒」となりました。
MySQL版登場時に起動に数十秒~数分かかるという記事があがっていたのもあり、
相当悪いと覚悟してましたが、ギリギリ使えるかなという感じですね。

起動時間が気になる場合は、常時起動しておくこともできますが、
「真夜中はほとんど接続が来ないが絶対ではない」 というサービスにとって、
本機能のコストメリットは影響度が非常に高いと思いますので、
キャッシュ等も利用してうまく付き合っていきたいですね。

その他

本稿で調査したとおり、Aurora Serverless for PostgreSQLでは、
一定時間(最短5分最長24時間)未接続だと自動でインスタンスを停止してくれる機能がありますが、
この機能はデフォルトオフなのでご注意ください。(隠れてるので初見時見落とした)

また、Provisionedの感覚でCloudWatch等からヘルスチェック入れると
常時起動状態になってしまうことにも注意してください。

参考

https://dev.classmethod.jp/cloud/aws/aurora-serverless-mysql-generally-available/
https://dev.classmethod.jp/cloud/aws/aurora-postgresql-serverless-ga/

12
8
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
12
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?