Introduction
Laravel Cloud provides fully managed AWS RDS databases (both MySQL and Postgres) for your application. RDS database clusters offer powerful features, including point-in-time recovery (PITR), read replicas, multiple deployment options, and more.
RDS databases are only available with Private Cloud. If you do not see RDS as an option when creating a database, please contact us to provision Private Cloud in your chosen region.
Creating RDS databases
To create and attach an RDS database to an environment:- Navigate to Organization > Resources > Databases
- Click ”+ New database cluster”
- Cluster name: A unique name for your database cluster
- Type: Choose between AWS RDS MySQL 8.4 or AWS RDS Postgres 18
- Region: Choose a Private Cloud region
- Configuration: Choose a preset or customize your RDS configuration
It may take up to 20 minutes for your RDS database to be fully created. You do not need to stay on the page.
Customizing RDS databases
Laravel Cloud offers you complete control over your RDS configuration. When creating or editing an RDS database cluster, you may control the following:Choosing the right compute size
Laravel Cloud supports both m8g and m7g instances (depending on your desired region). The amount of RAM your RDS database cluster has determines how many simultaneous connections it can support:
You can update your compute size at any point. Changing the compute size restarts the instance and causes a short period of downtime. On a Multi-AZ deployment, applying the change triggers a failover to the standby instance, which typically takes 60 to 120 seconds.
Provisioning storage
You may provision from 20GB up to 1,000GB of storage on your RDS database cluster. While you can increase this value at any point, you can never decrease it.Enabling public endpoint
By default, RDS database clusters on Laravel Cloud are not publicly accessible. To enable public access, enable the public endpoint in your RDS database cluster settings. You can change this setting at any time.Picking a maintenance window
AWS may occasionally need to perform maintenance on your RDS instance, which may cause downtime. You can control your scheduled maintenance window by clicking Edit settings > Maintenance window and picking a 30-minute slot. If you don’t pick a specific time slot, AWS will perform those updates during the default time slot for your region.Selecting a deployment option
Laravel Cloud supports the following RDS deployment options:- Single-AZ, 1 instance. One DB instance in a single availability zone. Best for dev or non-critical workloads.
- Single-AZ, with read replicas. One primary instance plus up to 15 read replicas for read-heavy workloads.
- Multi-AZ, 2 instances. Two instances in different availability zones for higher availability. AWS automatically fails over to the standby if the primary fails.

Using read replicas requires enabling point-in-time recovery (PITR) with a retention period of at least 1 day.
Connecting to database clusters
From your application
When a database is attached to an environment, Laravel Cloud automatically injects database connection environment variables, includingDB_HOST, DB_USERNAME, DB_PASSWORD, and DB_DATABASE. You may view these variables under Environment > Settings > General > Injected variables.
From your local machine
To connect to your database from your local machine, navigate to your organization’s Resources page, then to your RDS database cluster. Make sure your public endpoint is enabled and either click DeepLink to open your database in a management client like TablePlus, or manually connect using the provided credentials.
Database users
Every RDS database cluster is created with a default user, whose credentials Laravel Cloud injects into your environment as theDB_USERNAME and DB_PASSWORD environment variables. In addition to this default user, you may create additional users with their own credentials and access level. For example, you might create a read-only user for a reporting tool or a scoped user for a background service. Database users are supported on both RDS MySQL, RDS Postgres and Laravel MySQL clusters.
Creating a database user
To create a new database user:- Navigate to Organization > Resources > Databases and click the database cluster
- In the “Users” section, click “Create user”
- Configure the user:
- Username: A unique username for the user
- Access level: Choose Read-only or Read-write
- Schemas (optional): Restrict the user to specific schemas within the cluster
- Click “Create”
The default user injected into your environment cannot be edited or deleted.
Read-only vs. read-write access
- Read-only users may query data but cannot insert, update, or delete records or modify the schema. This is ideal for reporting dashboards or teammates who only need to inspect data.
- Read-write users have full read and write access to the schemas they are scoped to.
Database backups
To configure backups for your RDS database cluster:- Navigate to Organization > Resources > Databases
- Click on your RDS database cluster
- Click “Backups”
Point-in-time recovery (PITR)
Point-in-time recovery (PITR) combines daily snapshots with continuous transaction logging to protect your data. This allows you to restore your database to any specific second within your retention period (up to 30 days). To set up PITR, click “Edit” on your backup retention settings and enter your desired backup retention period.Manual snapshots
In addition to the automated PITR, you can take manual snapshots at any time from the database cluster’s Backups page. Manual snapshots are retained until you delete them and are independent of the PITR retention period.

