Introduction
Laravel Cloud provides fully managed AWS RDS databases (both MySQL and Postgres) for your application. RDS databases 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 a dedicated cluster 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 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 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. While you can increase this value at any point, you can never decrease it.Enabling public endpoint
By default, RDS databases on Laravel Cloud are not publicly accessible. To enable public access, enable the public endpoint in your RDS 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 will automatically inject the environment variables needed by the Laravel application to connect to the database, includingDB_HOST, DB_USERNAME, DB_PASSWORD, and DB_DATABASE. You may view these variables in your “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 cluster. Make sure your public endpoint is enabled and either click the “DeepLink” to open your database in a management client like TablePlus, or manually connect using the provided credentials.
Database users
Every RDS 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 cluster:- Navigate to “Organization > Resources > Databases”
- Click on your RDS 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’s Backups page. Manual snapshots are retained until you delete them and are independent of the PITR retention period.

