I Tried Out the Express Configuration for Aurora PostgreSQL with CloudFormation

I Tried Out the Express Configuration for Aurora PostgreSQL with CloudFormation

I created an Aurora PostgreSQL express configuration with AWS CloudFormation, then imported the writer instance, which wasn't part of the stack's resources, as an AWS::RDS::DBInstance.
2026.11.15

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.

https://aws.amazon.com/jp/about-aws/whats-new/2026/11/aurora-postgresql-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.

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-existing-stack.html

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.

Share this article

AWSのお困り事はクラスメソッドへ