Aurora Serverless v2 が GA されて結構な時間が立ちますが、やっと CloudFormation 対応されました!
CloudFormation のドキュメントがまだ追いついてなさそうなので、GitHub Issue を参照しながら試しました。
CloudFormation 設定
CloudFormation での設定は、既存の Aurora クラスターのプロビジョニングノードに対して、以下の設定を入れるだけです。
Aurora クラスター
クラスター設定は ServerlessV2ScalingConfiguration
を追加して、キャパシティの最大値と最小値を設定します。
DBCluster: Type: AWS::RDS::DBCluster Properties: ServerlessV2ScalingConfiguration: MaxCapacity: 128 MinCapacity: 0.5
Aurora インスタンス
Aurora インスタンスは、インスタンスクラスに db.serverless
を設定します。
DBInstance: Type: AWS::RDS::DBInstance Properties: DBInstanceClass: db.serverless
さいごに
動きを確認してたのですが、インスタンスノードがプロビジョニングから Serverless に置き換わるだけのようで、自動でスケールアップ・ダウンはしますが、スケールイン・アウトはしないようです。
そのため、本番環境であれば Multi-AZ 構成を考える必要がありそうです。
あと、意外と費用はかかります。
東京での最小構成の場合、Serverless 版の Aurora は、インスタンス1台でも $72/月 かかります。
メモリ最適化ノードの最安値の db.r6g.large
をリザーブして月割するほうが安いので、節約のために Serverless 版を使うメリットはなさそうでした。
MySQL デーモンプロセスの再起動なしにスケールアップ・ダウンが自動で素早くしてくれるというのが大きなメリットですね。