AWS CLIでAurora Serverless v2の最小ACUを0から1に変更してコールドスタートを回避してみた
こんにちは!製造ビジネステクノロジー部の小林です。
今回は、AWS CLIを使ってAurora Serverless v2の最小ACU(Aurora Capacity Unit)を0から1に変更する方法をご紹介します。
なぜACUを変更するのか?
Aurora Serverless v2では、最小ACUを0に設定することでコストの削減が可能です。
この設定では、データベースがアイドル状態のときにコンピューティングリソースへの課金が完全に停止します。
ただし、この設定にはデメリットもあり、最小ACUが0の場合、データベースへのアクセス時にコールドスタートが発生し、一時的に接続エラーとなることがあります。
そこで今回は、コールドスタートを回避するために、最小ACUを0から1に変更してみます。
前提条件
- Aurora Serverless v2クラスター(Postgres)を使用
- コマンドはCloudShellから実行
やってみた
現在のクラスター設定を確認
まず、対象のAurora Serverless v2クラスターの現在の設定を確認します。
aws rds describe-db-clusters --db-cluster-identifier <DBクラスターID>
# 出力
# ...省略
"ServerlessV2ScalingConfiguration": {
"MinCapacity": 0.0,
"MaxCapacity": 1.0,
},
# 省略...
出力結果から、クラスターの最小容量が0ACU、最大容量が1ACUに設定されていることがわかります。
クラスターの最小容量を変更
クラスターの最小容量を1ACUに変更するには、下記のコマンドを実行します。(最大容量は現状のまま(1ACU)に設定します。)
コマンドは下記のドキュメントを参考にしています。
aws rds modify-db-cluster \
--db-cluster-identifier <DBクラスターID> \
--serverless-v2-scaling-configuration MinCapacity=1,MaxCapacity=1 \
--apply-immediately
# 出力
"ServerlessV2ScalingConfiguration": {
"MinCapacity": 1.0,
"MaxCapacity": 1.0
},
この出力から、最小容量が1ACUに設定されたことが確認できます。
念のため設定を確認する
下記のコマンドを実行して、実際に変更が反映されているかを確認します。
aws rds describe-db-clusters --db-cluster-identifier <DBクラスターID>
# 出力
"ServerlessV2ScalingConfiguration": {
"MinCapacity": 1.0,
"MaxCapacity": 1.0,
},
これで、クラスターの最小容量が1ACUに変更されたことが確認できました!
注意事項
最小ACUを0から1に変更すると、クラスターは常に最低1 ACUのリソースを消費するため、その分のコストが発生します。導入前に、あらかじめ料金を確認・試算した上で設定を行うことをおすすめします。
おわりに
今回は、AWS CLIを使ってAurora Serverless v2の最小ACUを0から1に変更する方法をご紹介しました。この設定変更により、コールドスタートの問題が解消し、開発効率が上がるかもしれませんね!
一方で、最小ACUを1に設定することで常時コストが発生するようになるため、コスト効率とパフォーマンスのバランスを考慮して設定を選択することが大事だと思います。この記事がどなたかの参考になれば幸いです。