Aurora サーバーレスを事前に起動状態にする

2019.05.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

瀬田@大阪オフィスです。
Auroraサーバーレス、甘美な響きですね。不要な時は自分で落ちてくれるインテリジェンスなやつですが初回起動が遅いのが困り者。1つ対応方法のご提案です。

問題

Auroraサーバーレスは、デフォルト5分で一時停止します。この状態では初回起動のコストが発生し、場合によってはタイムアウトの問題が発生する可能性があります。

対応

ドキュメントを確認して見ると、以下のような動作をしています。
Aurora サーバーレスの仕組み

また、接続が 5 分間ない場合は、キャパシティーがゼロまでスケールされます。
アクティビティなしの状態が一定時間続いた場合、Aurora サーバーレス DB クラスターを一時停止できます。

つまり、キャパシティを事前にゼロから上げてやれば良いわけで、以下のコマンドが利用できます。

Aurora サーバーレス DB クラスターのキャパシティーの設定

次の例では、sample-cluster という名前の Aurora サーバーレス DB クラスターのキャパシティーを 2 に設定します。

aws rds modify-current-db-cluster-capacity --db-cluster-identifier sample-cluster --capacity 2

これを処理実行前に仕込んでおくことで、初回起動のタイムアウトにかからず、通常の速度で処理が可能になります。(ユースケースは限られるとはおもいますが)

最後に

Auroraサーバーレスへのひとネタでした。