
Aurora serverless(PostgreSQL)の最大容量が 384 ACU になったので確かめてみた
はじめに
Aurora PostgreSQL 互換の Aurora serverless で、最大容量が従来の 256 ACU から 384 ACU(50% 増)に引き上げられました。発表では対応バージョンとして 18.4 / 17.10 / 16.14 / 15.18 / 14.23 が挙げられており、Platform Version 4 のクラスターが対象です。
この記事では、東京リージョンで PostgreSQL 18.6 のクラスターを最大 8 ACU で作成し、最小 1 / 最大 384 ACU に変えてクラスター情報を確かめました。あわせて Data API で接続し、エンジンとアーキテクチャを確認しています。
384 ACU で使えるメモリ
1 ACU は約 2 GiB のメモリに対応します。最大容量ごとのメモリ量を、同じメモリ量のインスタンスクラスと並べると次のようになります。
| 最大容量 | メモリ(1 ACU ≒ 2 GiB) | 同じメモリ量のインスタンスクラス |
|---|---|---|
| 256 ACU(従来の最大) | 約 512 GiB | db.r7g.16xlarge、db.r8g.16xlarge(512 GiB) |
| 384 ACU | 約 768 GiB | db.r8g.24xlarge(768 GiB) |
東京リージョンの Aurora PostgreSQL 18.6 で選べる db.r6g と db.r7g は 16xlarge(512 GiB)が最大で、24xlarge は db.r8g から選べるサイズです。
クラスターの作成
384 ACU を設定できるかどうかはエンジンバージョンで決まります。バージョンごとの最大容量は、describe-db-engine-versions の ServerlessV2FeaturesSupport.MaxCapacity で確かめられます。東京リージョンの PostgreSQL 17 系と 18 系は次のとおりでした。
$ aws rds describe-db-engine-versions --engine aurora-postgresql --region ap-northeast-1 --query 'DBEngineVersions[].[EngineVersion,ServerlessV2FeaturesSupport.MaxCapacity]' --output text
17.4 256.0
17.5 256.0
17.6 256.0
17.7 256.0
17.9 256.0
17.10 384.0
17.11 384.0
18.3 256.0
18.4 384.0
18.6 384.0
発表の対応バージョン一覧は 18.4 までですが、18.6 も 384.0 を返しました。出力から省いた 14 系から 16 系も、14.23 / 15.18 / 16.14 とその後の版が 384.0、それより前の版は 256.0 以下でした。
クラスターは最大 8 ACU で、Data API と管理シークレットを有効にして作成します。インスタンスを追加し、利用可能になるまで待ちます。
aws rds create-db-cluster \
--db-cluster-identifier <クラスター名> \
--engine aurora-postgresql \
--engine-version 18.6 \
--master-username postgres \
--manage-master-user-password \
--db-subnet-group-name <DB サブネットグループ名> \
--serverless-v2-scaling-configuration MinCapacity=0.5,MaxCapacity=8 \
--enable-http-endpoint \
--no-deletion-protection \
--region ap-northeast-1
aws rds create-db-instance \
--db-instance-identifier <インスタンス名> \
--db-cluster-identifier <クラスター名> \
--db-instance-class db.serverless \
--engine aurora-postgresql \
--region ap-northeast-1
aws rds wait db-instance-available \
--db-instance-identifier <インスタンス名> \
--region ap-northeast-1
最大容量を 384 ACU に変更
最大容量は modify-db-cluster で変更します。今回は最小 1 / 最大 384 を指定しました。
$ aws rds modify-db-cluster --db-cluster-identifier <クラスター名> --serverless-v2-scaling-configuration MinCapacity=1,MaxCapacity=384 --apply-immediately --region ap-northeast-1 --query 'DBCluster.[Status,ServerlessV2ScalingConfiguration]' --output json
[
"available",
{
"MinCapacity": 1.0,
"MaxCapacity": 384.0
}
]
応答の Status は available でしたが、その後クラスターとインスタンスはいったん modifying になりました。wait db-instance-available で available に戻るのを待ち、describe-db-clusters で確かめました。
$ aws rds describe-db-clusters --db-cluster-identifier <クラスター名> --region ap-northeast-1 --query 'DBClusters[0].{Status:Status,Scaling:ServerlessV2ScalingConfiguration,PV:ServerlessV2PlatformVersion}' --output json
{
"Status": "available",
"Scaling": {
"MinCapacity": 1.0,
"MaxCapacity": 384.0
},
"PV": "4"
}
出力の PV(ServerlessV2PlatformVersion)が 4 より古いクラスターは、保留中のメンテナンスアクションで Platform Version 4 に上げます。前の節で 256.0 だったバージョンのクラスターは、最大容量と一緒にエンジンバージョンも更新します。発表では、Platform Version 4 のクラスターは停止なしで最大容量を変更できるとされています。
インスタンスの default.aurora-postgresql18 の ParameterApplyStatus は、変更中は in-sync でしたが、available に戻った後は pending-reboot になっていました。max_connections など一部のパラメータは、インスタンスを再起動するまで以前の最大容量に基づく値のままです。
Data API でエンジンを確認
Data API の execute-statement で select version() と select aurora_version() を実行しました。シークレットの ARN は、describe-db-clusters の MasterUserSecret.SecretArn から取得できます。
$ aws rds-data execute-statement --resource-arn <クラスターの ARN> --secret-arn <シークレットの ARN> --database postgres --sql 'select version()' --region ap-northeast-1 --output json
{
"records": [
[
{
"stringValue": "PostgreSQL 18.6 on aarch64-linux, compiled by gcc-10.5.0, 64-bit"
}
]
],
"numberOfRecordsUpdated": 0
}
$ aws rds-data execute-statement --resource-arn <クラスターの ARN> --secret-arn <シークレットの ARN> --database postgres --sql 'select aurora_version()' --region ap-northeast-1 --output json
{
"records": [
[
{
"stringValue": "18.6.1"
}
]
],
"numberOfRecordsUpdated": 0
}
Aurora のバージョンは 18.6.1 で、PostgreSQL 18.6 は aarch64(64 ビットの Arm)向けのビルドでした。
まとめ
Aurora PostgreSQL の Aurora serverless で、最大容量を 384 ACU まで設定できるようになり、プロビジョンドでいえば db.r8g.24xlarge 相当の最大性能が利用可能になりました。
ACU の上限が増えたことで、従来の 256 ACU では DB 性能が不足していたワークロードでも、Aurora serverless を候補にできる可能性が高まりました。
今回 384 ACU に対応した DB エンジンは Aurora PostgreSQL 互換のみでしたが、Aurora MySQL 互換の対応にも期待したいと思います。








