
I Tried Out the Express Configuration for Aurora PostgreSQL with CloudFormation
This page has been translated by machine translation. View original
Introduction
On November 13, 2026, the Aurora PostgreSQL express configuration became supported by AWS CloudFormation.
By specifying the WithExpressConfiguration property on AWS::RDS::DBCluster, you can create a cluster and a writer instance with a single declaration. In this article, I created an express configuration cluster in the Tokyo region and, after creation, imported the writer instance into the stack.
Template and Deployment
The template defines only one resource, AWS::RDS::DBCluster. I set WithExpressConfiguration to true and specified an ACU range of 0.5 to 1.
AWSTemplateFormatVersion: 2010-09-09
Resources:
Cluster:
Type: AWS::RDS::DBCluster
Properties:
Engine: aurora-postgresql
DBClusterIdentifier: express-cfn-test
WithExpressConfiguration: true
ServerlessV2ScalingConfiguration:
MinCapacity: 0.5
MaxCapacity: 1
Tags:
- Key: purpose
Value: express-cfn-verification
I saved this template as template.yaml and deployed it with the following command. The CLI commands below were run in an environment where the default region is ap-northeast-1.
aws cloudformation deploy --template-file template.yaml --stack-name express-cfn-test
In the stack events, it took about 22 seconds from the start of Cluster creation to CREATE_COMPLETE.
2026-11-15T04:37:17.249000+00:00 Cluster CREATE_IN_PROGRESS Resource creation Initiated
2026-11-15T04:37:39.259000+00:00 Cluster CREATE_COMPLETE None
The Created Cluster
Stack Resources
According to list-stack-resources, the stack had only one resource, Cluster.
Cluster express-cfn-test AWS::RDS::DBCluster CREATE_COMPLETE
Cluster Settings
These are the values of the cluster immediately after creation, confirmed with describe-db-clusters.
| Item | Value |
|---|---|
| Status | available |
| Engine | aurora-postgresql 17.9 |
| ACU range | 0.5–1 (specified in the template) |
| Port | 5432 |
| IAM authentication | Enabled |
| VPC association | None |
| Internet access gateway | Enabled |
| Backup retention period | 1 day |
| Deletion protection | Disabled |
| Parameter group | default.aurora-postgresql17 |
When ServerlessV2ScalingConfiguration was omitted, the ACU range was 0–16 and SecondsUntilAutoPause was 300. These default values, and the items in the table other than the ACU range, were the same as those of a cluster created with the CLI --with-express-configuration.
Writer Instance
According to describe-db-instances, a writer instance that was not written in the template had been created as db.serverless.
express-cfn-test-instance-1 db.serverless available aurora-postgresql 17.9
Because the writer is not included in the stack resources, you need to import it, as described below, in order to manage instance-level settings with CloudFormation.
Comparison of Creation Time with the Conventional Configuration
Under the same conditions (Tokyo region, Aurora PostgreSQL 17.9, ACU 0.5–1, db.serverless), I compared the express configuration with a conventional configuration created in the default VPC. The conventional configuration uses the default VPC subnets, enables public access, and uses a security group that allows only port 5432 from the IP of the working machine. The times measured are from the start of creation until select version() succeeds with psql on the working machine. Each value is a single measurement.
| Express | Conventional | |
|---|---|---|
| Creation start to CREATE_COMPLETE | 45.3 seconds | 418.9 seconds |
| CREATE_COMPLETE to successful connection | 11.6 seconds | 0.7 seconds |
| Creation start to successful connection | 56.9 seconds | 419.6 seconds (about 7 minutes) |
| Connection authentication | IAM authentication token | Password |
Looking at each resource, in the conventional configuration the Cluster took about 34 seconds and the Instance about 6 minutes 8 seconds. In the express configuration, writer creation is included in the Cluster, and the Cluster completed in about 38 seconds.
Importing the Writer
Template for Import
Add the following Writer to the end of the previous template. The Cluster definition does not change.
Writer:
Type: AWS::RDS::DBInstance
DeletionPolicy: Delete
Properties:
DBInstanceIdentifier: express-cfn-test-instance-1
DBClusterIdentifier: !Ref Cluster
Engine: aurora-postgresql
DBInstanceClass: db.serverless
In CloudFormation resource import, the resources to be imported must include the DeletionPolicy attribute.
Specify the resource to import with the following JSON and save it as resources-to-import.json.
[
{
"ResourceType": "AWS::RDS::DBInstance",
"LogicalResourceId": "Writer",
"ResourceIdentifier": { "DBInstanceIdentifier": "express-cfn-test-instance-1" }
}
]
Running the Import
Using the template.yaml with Writer added, create a change set of type IMPORT. Wait for the creation to complete, then execute the change set.
aws cloudformation create-change-set --stack-name express-cfn-test --change-set-name import-writer --change-set-type IMPORT --template-body file://template.yaml --resources-to-import file://resources-to-import.json
aws cloudformation wait change-set-create-complete --stack-name express-cfn-test --change-set-name import-writer
aws cloudformation execute-change-set --stack-name express-cfn-test --change-set-name import-writer
aws cloudformation wait stack-import-complete --stack-name express-cfn-test
It took about 1 minute 38 seconds from the stack's IMPORT_IN_PROGRESS to IMPORT_COMPLETE. After completion, Writer was added to the stack resources.
Writer express-cfn-test-instance-1 AWS::RDS::DBInstance UPDATE_COMPLETE
Most of the time was spent on Writer's UPDATE_IN_PROGRESS to UPDATE_COMPLETE, which took about 1 minute 34 seconds. Writer's IMPORT_COMPLETE came about 2 seconds after the import started.
Stack events for the import
2026-11-15T04:11:23.678000+00:00 express-cfn-test IMPORT_IN_PROGRESS User Initiated
2026-11-15T04:11:25.938000+00:00 Writer IMPORT_COMPLETE Resource import completed.
2026-11-15T04:11:26.901000+00:00 Writer UPDATE_IN_PROGRESS Apply stack-level tags to imported resource if applicable.
2026-11-15T04:13:01.064000+00:00 Writer UPDATE_COMPLETE None
2026-11-15T04:13:01.629000+00:00 express-cfn-test IMPORT_COMPLETE None
Summary
You can now create a cluster with the express configuration in CloudFormation, just as with the Management Console and the CLI.
For workloads that do not need detailed settings such as a VPC, for example using Aurora Serverless from a Lambda function that is not connected to a VPC, and where you want to shorten the waiting time for creation, the express configuration is an option.
However, to change the writer instance settings in CloudFormation, you need to import the instance created by the express configuration into the stack. Also, because a cluster created with the express configuration is accessible from the internet, please keep in mind that the IAM authentication settings are important when using it.
