Skip to main content
On this page

Coverage by target cloud

How the targets compare

Each row compares a capability of RDS MySQL with its adaptation on each target. A dash means this row is not stated for that target.

Max adaptation

Runtime surface

Management surface

Limits

Infrastructure-only adaptation

Runtime surface

Management surface

Limits

On Google Cloud

How it works

Your application’s MySQL driver connects directly to Cloud SQL for MySQL. Tensor9 provisions the database from the RDS instance declaration and sets the application’s endpoint and credentials. SQL requests form the data plane. RDS management requests form the control plane: Tensor9 accepts those requests in the customer’s appliance and translates snapshots, restores, replicas, failover, and configuration changes to the Cloud SQL admin API.
Before: on AWS your app talks to an RDS for MySQL instance over the MySQL protocol. After: on Google Cloud the same app with the same driver talks over the same MySQL protocol to a native Cloud SQL for MySQL instance, without Tensor9 proxying database traffic.Before: on AWS your app talks to an RDS for MySQL instance over the MySQL protocol. After: on Google Cloud the same app with the same driver talks over the same MySQL protocol to a native Cloud SQL for MySQL instance, without Tensor9 proxying database traffic.

An aws_db_instance (engine = mysql) compiles to a native Cloud SQL for MySQL instance; the workload keeps its driver and speaks the MySQL protocol straight to the database, no proxy in the query path.

Cross-region read replicas

A Cloud SQL primary replicates asynchronously to up to seven read replicas in total, within its region or across regions. A cross-region replica can be promoted to a standalone primary for migration or disaster recovery. RDS allows up to fifteen replicas, so check the required replica count before cutover. Replicas can lag behind the primary; send reads that must see a just-completed write to the primary.
A Cloud SQL primary in Region A replicates asynchronously to an in-region read replica and to a cross-region read replica in Region B. The cross-region replica is promotable for regional migration or disaster recovery. Up to seven read replicas per primary, in-region or cross-region.A Cloud SQL primary in Region A replicates asynchronously to an in-region read replica and to a cross-region read replica in Region B. The cross-region replica is promotable for regional migration or disaster recovery. Up to seven read replicas per primary, in-region or cross-region.

Cloud SQL keeps cross-region read replicas: a primary serves in-region and cross-region read replicas (up to seven per primary), and a cross-region replica is promotable for regional failover or DR.

Regional-instance HA

RDS Multi-AZ maps to a Cloud SQL regional instance with a primary in one zone and a synchronous standby in another. Writes replicate to regional persistent disk in both zones before acknowledgement. This provides a recovery point objective of zero (RPO 0) for HA failover: committed writes are retained. Enterprise Plus has a 99.99% monthly-uptime SLA and reduced-downtime maintenance options. The applicable availability terms depend on the edition and configuration.
A Cloud SQL HA regional instance has a primary in zone A and a synchronous standby in zone B of the same region, replicated at the block level over a regional persistent disk. Failover loses no committed write (RPO 0); Enterprise Plus comes with a 99.99 percent availability SLA.A Cloud SQL HA regional instance has a primary in zone A and a synchronous standby in zone B of the same region, replicated at the block level over a regional persistent disk. Failover loses no committed write (RPO 0); Enterprise Plus comes with a 99.99 percent availability SLA.

Cloud SQL HA is a regional instance: a synchronous standby in a second zone over a regional persistent disk, so failover loses no committed write; Enterprise Plus backs a 99.99% availability SLA.

Parameters as database flags

Settable MySQL parameters become per-instance database flags, such as max_connections and long_query_time. The reusable RDS parameter-group object has no counterpart. If several RDS instances share a parameter group, its supported values are applied to each Cloud SQL instance. Check the selected MySQL version and Cloud SQL’s allowed flag values; parameters outside that list cannot be applied.
An RDS parameter group flattens to Cloud SQL database flags: each settable MySQL parameter becomes the matching per-instance flag. The parameter-group object itself and any parameter outside Cloud SQL's settable list do not cross.An RDS parameter group flattens to Cloud SQL database flags: each settable MySQL parameter becomes the matching per-instance flag. The parameter-group object itself and any parameter outside Cloud SQL's settable list do not cross.

Each MySQL parameter becomes a Cloud SQL database flag; the parameter-group object itself and any parameter outside Cloud SQL’s settable list do not cross.

Pooling, IAM auth, and the customer key

RDS Proxy connection pooling maps to Cloud SQL Managed Connection Pooling, which requires Enterprise Plus. RDS IAM database authentication maps to Cloud SQL IAM database authentication. A customer KMS key maps to a customer-managed encryption key (CMEK) in Cloud KMS. The customer controls access to that key in the target project.
Three RDS control-plane features map to Cloud SQL: RDS Proxy connection pooling to Cloud SQL Managed Connection Pooling on Enterprise Plus, RDS IAM database authentication to Cloud SQL IAM database authentication, and a KMS customer key to a CMEK in Cloud KMS.Three RDS control-plane features map to Cloud SQL: RDS Proxy connection pooling to Cloud SQL Managed Connection Pooling on Enterprise Plus, RDS IAM database authentication to Cloud SQL IAM database authentication, and a KMS customer key to a CMEK in Cloud KMS.

Managed pooling maps to Cloud SQL Managed Connection Pooling (Enterprise Plus), RDS IAM auth to Cloud SQL IAM database authentication, and a KMS customer key to a CMEK in Cloud KMS.

Limitations

Check these differences when selecting the Cloud SQL edition, instance size, and database version. △ Where RDS for MySQL and Cloud SQL diverge
  • Read replicas cap at seven per primary. Cloud SQL allows seven replicas per primary against RDS’s fifteen, in- or cross-region, so a large read fan-out is sized against seven before cutover.
  • Managed pooling requires Enterprise Plus. RDS Proxy’s pooling maps to Cloud SQL Managed Connection Pooling, available only on the Enterprise Plus edition, so an instance that must pool is placed on that edition.
  • Parameter groups flatten to per-instance database flags. Each MySQL parameter becomes a Cloud SQL flag; the reusable group object and any parameter outside Cloud SQL’s settable-flag list do not cross.
  • The engine build and available versions are Google’s. Cloud SQL runs the MySQL versions and flags its catalog exposes, so an instance requiring a version or flag Cloud SQL does not offer is reconciled to a supported one before cutover.
  • RDS-proprietary extras have no counterpart. Event subscriptions (SNS), S3 / Lambda integration SQL, and Enhanced Monitoring are RDS-specific; zero-ETL replicates to BigQuery via Datastream, not Redshift.

Other considerations

Move data with mysqldump or Cloud SQL Database Migration Service. Validate the copied data and required engine features before switching connections. Google operates the database; the customer controls maintenance settings and access to Query Insights in their project. Query Insights uses Google’s performance tools rather than the RDS Performance Insights interface.

On Azure

How it works

Your application’s MySQL driver connects directly to Azure Database for MySQL Flexible Server. Tensor9 provisions the server from the RDS instance declaration and sets the application’s endpoint and credentials. SQL requests form the data plane. RDS management requests form the control plane: Tensor9 accepts those requests in the customer’s appliance and translates snapshots, restores, replicas, failover, and configuration changes to Azure’s management API.
Before: on AWS your app talks to an RDS for MySQL instance over the MySQL protocol. After: on Azure the same app with the same driver talks over the same MySQL protocol to a native Azure Database for MySQL Flexible Server, without Tensor9 proxying database traffic.Before: on AWS your app talks to an RDS for MySQL instance over the MySQL protocol. After: on Azure the same app with the same driver talks over the same MySQL protocol to a native Azure Database for MySQL Flexible Server, without Tensor9 proxying database traffic.

An aws_db_instance (engine = mysql) compiles to a native Azure Database for MySQL Flexible Server; the workload keeps its driver and speaks the MySQL protocol straight to the database, no proxy in the query path.

Compute tiers and zone-redundant HA

Flexible Server has Burstable, General Purpose, and Business Critical compute tiers. The mapping selects a size for the requested CPU and memory, and a tier that supports the required database features. High availability and read replicas require General Purpose or Business Critical; Burstable supports neither. Zone-redundant HA places a synchronous standby in a second zone and uses zone-redundant storage. It provides a recovery point objective of zero (RPO 0) for HA failover and a 99.99% availability SLA, subject to the service’s terms.
Flexible Server offers Burstable, General Purpose, and Business Critical compute tiers. Zone-redundant HA places a synchronous standby in a second availability zone over zone-redundant storage; it is available on the General Purpose and Business Critical tiers, and the Burstable tier supports neither HA nor read replicas.Flexible Server offers Burstable, General Purpose, and Business Critical compute tiers. Zone-redundant HA places a synchronous standby in a second availability zone over zone-redundant storage; it is available on the General Purpose and Business Critical tiers, and the Burstable tier supports neither HA nor read replicas.

Flexible Server has Burstable, General Purpose, and Business Critical tiers; zone-redundant HA is a synchronous standby in a second zone (ZRS), available on General Purpose and Business Critical, with a 99.99% availability SLA.

Read replicas

A Flexible Server source uses MySQL binary-log replication to maintain up to ten read replicas, within its region or across regions. Replicas require General Purpose or Business Critical. Replication is asynchronous. Send reads that must see a just-completed write to the source; replicas may not yet have received that write.
A Flexible Server source replicates asynchronously with binary-log position-based replication to up to ten read replicas, which can be in the same region or in another region for read scale-out.A Flexible Server source replicates asynchronously with binary-log position-based replication to up to ten read replicas, which can be in the same region or in another region for read scale-out.

A Flexible Server source replicates asynchronously (binlog position-based) to up to ten read replicas, in the same region or another region, for read scale-out.

Server parameters

Settable values in an RDS parameter group map to Flexible Server parameters, including settings such as max_connections. Azure configures each server separately, so the reusable parameter-group object has no counterpart. The mapping applies supported values to each server that used the group. Azure controls the allowed values; static parameters require a restart, and some settings can be chosen only when the server is created.
Settable RDS parameter-group values map to individual Flexible Server parameters. Azure has no reusable parameter-group object.Settable RDS parameter-group values map to individual Flexible Server parameters. Azure has no reusable parameter-group object.

Parameter values are applied separately to each Flexible Server.

Pooling, Entra ID auth, and the customer key

RDS IAM database authentication maps to Microsoft Entra ID authentication. A customer KMS key maps to a customer-managed key in Key Vault. Flexible Server has no managed connection pooler equivalent to RDS Proxy. If the workload needs pooling, configure an application pool or operate a separate pooler such as ProxySQL.
RDS IAM database authentication maps to Microsoft Entra ID authentication and a KMS customer key maps to a customer-managed key in Key Vault. RDS Proxy's managed connection pooling has no counterpart: the Flexible Server has no managed pooler, so ProxySQL is customer-managed on the customer's own VM.RDS IAM database authentication maps to Microsoft Entra ID authentication and a KMS customer key maps to a customer-managed key in Key Vault. RDS Proxy's managed connection pooling has no counterpart: the Flexible Server has no managed pooler, so ProxySQL is customer-managed on the customer's own VM.

RDS IAM auth maps to Microsoft Entra ID authentication and a KMS customer key to a Key Vault customer-managed key; RDS Proxy’s managed pooling has no counterpart (customer-managed ProxySQL).

Limitations

Check these differences when selecting the Flexible Server tier, instance size, and database version. △ Where RDS for MySQL and Azure Flexible Server diverge
  • The Burstable tier supports neither HA nor replicas. Zone-redundant HA and read replicas require the General Purpose or Business Critical tier, so an instance that needs either is placed off Burstable.
  • No managed connection pooler. The Flexible Server has no RDS-Proxy equivalent; pooling is customer-managed ProxySQL on the customer’s own VM, an operational component to plan for.
  • Read replicas cap at ten and lag asynchronously. A source serves up to ten binlog-based replicas, so a read path needing read-after-write goes to the source and a fan-out near the ceiling is sized against ten.
  • Parameter groups flatten to per-server parameters. Each MySQL parameter becomes a server parameter; the reusable group object and any parameter outside the Flexible Server’s settable list do not cross.
  • The engine build and available versions are Azure’s. The Flexible Server runs the MySQL major/minor versions and server plugins Azure’s catalog offers, so an instance requiring a version or plugin Azure does not expose is reconciled to a supported one before cutover.
  • RDS-proprietary extras have no counterpart. Event subscriptions (SNS), S3 / Lambda integration SQL, and Enhanced Monitoring are RDS-specific; zero-ETL replicates to Microsoft Fabric, not Redshift.

Other considerations

Move data with mysqldump or Azure Database Migration Service. Validate the copied data and required engine features before switching connections. Microsoft operates the database. The customer controls maintenance settings and access to Azure’s Query Performance Insight; it uses Azure’s performance tools rather than the RDS Performance Insights interface.

On OCI

How it works

Your application’s MySQL driver connects directly to an OCI MySQL HeatWave DB system. Tensor9 provisions it from the RDS instance declaration and sets the application’s endpoint and credentials. SQL requests form the data plane. RDS management requests form the control plane: Tensor9 accepts those requests in the customer’s appliance and translates snapshots, restores, replicas, failover, and configuration changes to OCI’s management API.
Before: on AWS your app talks to an RDS for MySQL instance over the MySQL protocol. After: on OCI the same app with the same driver talks over the same MySQL protocol to a native OCI MySQL HeatWave DB system, without Tensor9 proxying database traffic.Before: on AWS your app talks to an RDS for MySQL instance over the MySQL protocol. After: on OCI the same app with the same driver talks over the same MySQL protocol to a native OCI MySQL HeatWave DB system, without Tensor9 proxying database traffic.

An aws_db_instance (engine = mysql) compiles to a native OCI MySQL HeatWave DB system; the workload keeps its driver and speaks the MySQL protocol straight to the database, no proxy in the query path.

Optional analytics with HeatWave

The DB system runs MySQL for transactional queries. An optional HeatWave cluster adds in-memory analytics nodes and loads table data into its analytics engine. Applications can use those tables for analytics without maintaining a separate extraction and loading pipeline. The analytics cluster is optional. An RDS migration can use the MySQL DB system without enabling it. Check the selected MySQL version and supported plugins for the workload.
OCI MySQL HeatWave runs MySQL with optional analytics. The MySQL DB system serves transactional (OLTP) queries against your tables, and a HeatWave cluster of in-memory analytics nodes attaches to the same DB system to serve analytics (OLAP) queries against the same data without a separate extraction and loading pipeline.OCI MySQL HeatWave runs MySQL with optional analytics. The MySQL DB system serves transactional (OLTP) queries against your tables, and a HeatWave cluster of in-memory analytics nodes attaches to the same DB system to serve analytics (OLAP) queries against the same data without a separate extraction and loading pipeline.

A HeatWave cluster loads MySQL table data into its analytics engine.

Read replicas and cross-region replication

An OCI MySQL DB system supports up to eighteen read replicas in its own region, distributed across availability and fault domains. Each replica has an endpoint. OCI’s managed read-replica resource does not span regions. Cross-region replication instead uses a separate DB system and an asynchronous replication channel. That database can serve reads, but requires separate configuration and can lag behind the source. A cross-region backup copy supports restore, not live reads.
An OCI MySQL DB system serves up to eighteen in-region read replicas, automatically distributed across availability and fault domains. Managed read replicas stay in-region. A replication channel can maintain a readable DB system in another region; a backup copy must be restored.An OCI MySQL DB system serves up to eighteen in-region read replicas, automatically distributed across availability and fault domains. Managed read replicas stay in-region. A replication channel can maintain a readable DB system in another region; a backup copy must be restored.

Managed read replicas stay in-region; a cross-region replication channel targets a separate DB system.

Group Replication HA

OCI MySQL high availability uses a three-node Group Replication group across availability or fault domains. A majority must acknowledge transaction changes before commit. The service provides a recovery point objective of zero (RPO 0) for automatic HA failover, retaining committed writes. Oracle operates the HA group. Its 99.99% monthly-uptime SLA applies under the service’s availability terms.
OCI MySQL HeatWave HA is a three-node Group Replication quorum with Paxos consensus, spread across availability or fault domains. A transaction is acknowledged by a quorum before commit, so failover loses no committed write (RPO 0), with a 99.99 percent availability SLA.OCI MySQL HeatWave HA is a three-node Group Replication quorum with Paxos consensus, spread across availability or fault domains. A transaction is acknowledged by a quorum before commit, so failover loses no committed write (RPO 0), with a 99.99 percent availability SLA.

OCI MySQL HeatWave HA is a three-node Group Replication quorum (Paxos) across availability or fault domains; a quorum acknowledges each commit, so failover loses no committed write, with a 99.99% SLA.

Parameters, native auth, and the customer key

Settable MySQL parameters map to OCI configuration variables. The reusable RDS parameter-group object and parameters outside OCI’s allowed list have no counterpart. A customer KMS key maps to a customer-managed key in OCI Vault. OCI MySQL uses native MySQL accounts rather than RDS IAM database authentication. A workload using RDS IAM authentication needs target database credentials.
An RDS parameter group flattens to OCI MySQL configuration variables and a KMS customer key maps to a customer-managed key in OCI Vault. RDS IAM database authentication has no counterpart: OCI MySQL uses native MySQL accounts, with no cloud-IAM database authentication.An RDS parameter group flattens to OCI MySQL configuration variables and a KMS customer key maps to a customer-managed key in OCI Vault. RDS IAM database authentication has no counterpart: OCI MySQL uses native MySQL accounts, with no cloud-IAM database authentication.

MySQL parameters map to OCI MySQL configuration variables and a KMS customer key to an OCI Vault customer-managed key; RDS IAM database auth has no counterpart (native MySQL accounts).

Limitations

Check these differences when sizing the DB system and planning authentication, connection pooling, and recovery. △ Where RDS for MySQL and OCI MySQL HeatWave diverge
  • Cross-region replication needs a separate DB system. Managed read replicas stay in-region (up to eighteen). A replication channel can maintain a readable database in another region, but it needs separate configuration and can lag behind the source.
  • No cloud-IAM database authentication. OCI MySQL authenticates with native MySQL accounts, so a workload on RDS IAM database auth moves that path to native credentials.
  • No managed connection pooler. The DB system has no RDS-Proxy equivalent; connection pooling is a component to run in front of it.
  • Parameters flatten to configuration variables. Each settable MySQL parameter becomes a configuration value; the group object and any parameter outside OCI’s settable list do not cross.
  • The engine build and available versions are Oracle’s. The DB system runs the MySQL versions OCI offers, so an instance requiring a version OCI does not publish is reconciled to a supported one before cutover.
  • RDS-proprietary extras have no counterpart. S3 / Lambda integration SQL and Enhanced Monitoring are RDS-specific, and zero-ETL has no Redshift counterpart.

Other considerations

Move data with MySQL Shell dump utilities or a HeatWave inbound replication channel. Validate the copied data before switching connections. Oracle operates the database; the customer controls maintenance and access to OCI’s performance tools. These tools use OCI’s interface rather than RDS Performance Insights. Configure a separate pooler if needed: an OCI load balancer routes connections but does not pool them.

On Private Kubernetes

How it works

An aws_db_instance with engine = "mysql" compiles to a PerconaXtraDBCluster custom resource (pxc.percona.com/v1), which the Percona operator reconciles into a running Galera cluster on Kubernetes. The workload connects with its unchanged MySQL driver and speaks the MySQL wire protocol straight to the cluster’s HAProxy endpoint; Tensor9 adds no proxy or protocol translation to this connection. Your application sends SQL over the MySQL protocol; these requests are the data plane. Management requests, called the control plane, go through the Tensor9 adapter in the customer’s appliance. It translates RDS requests for snapshots, restore, replicas, failover, and configuration changes to the Percona operator’s Kubernetes resources.
Before: on AWS your app talks to an RDS for MySQL instance over the MySQL protocol. After: in Kubernetes cluster the same app with the same driver talks over the same MySQL protocol to a PerconaXtraDBCluster custom resource, an HAProxy endpoint fronting three pxc pods, with no Tensor9 adapter in the query path.Before: on AWS your app talks to an RDS for MySQL instance over the MySQL protocol. After: in Kubernetes cluster the same app with the same driver talks over the same MySQL protocol to a PerconaXtraDBCluster custom resource, an HAProxy endpoint fronting three pxc pods, with no Tensor9 adapter in the query path.

An aws_db_instance (engine = mysql) compiles to a PerconaXtraDBCluster custom resource, a Galera cluster fronted by HAProxy, which the workload reaches over the native MySQL protocol.

Architecture

Percona XtraDB Cluster uses Galera to distribute transaction changes in a common order. Each node checks those changes for conflicts, a process called certification. A successful commit does not mean every other node has already applied the change; reads sent to another node may need synchronization. This differs from RDS Multi-AZ’s primary-and-standby architecture. The cluster accepts writes only while a majority of nodes are in contact. Use an odd node count, typically three. If a two-node cluster loses the connection between its nodes, neither can form a majority, so both refuse writes to prevent conflicting changes. An odd node count avoids adding a node without increasing the number of failures the cluster can tolerate.
Three Percona nodes replicate transaction changes using Galera. A majority must remain connected for the cluster to accept writes.Three Percona nodes replicate transaction changes using Galera. A majority must remain connected for the cluster to accept writes.

Galera checks replicated transactions for conflicts. Three nodes can retain a majority after losing one node.

Instance sizing and storage

engine_version selects the Percona Server for MySQL image; allocated_storage sizes each pod’s PersistentVolumeClaim (PVC); and instance_class maps to CPU and memory requests. The selected Kubernetes StorageClass determines volume type and encryption. Each database pod must fit on a cluster node. Storage growth requires explicitly increasing the PVC size on a StorageClass that supports expansion; it does not happen automatically as usage grows.
The RDS instance's fields map into the PerconaXtraDBCluster spec: engine_version becomes the Percona Server for MySQL image tag, allocated_storage becomes the PersistentVolumeClaim size, and instance_class becomes the pods' CPU and memory resource requests.The RDS instance's fields map into the PerconaXtraDBCluster spec: engine_version becomes the Percona Server for MySQL image tag, allocated_storage becomes the PersistentVolumeClaim size, and instance_class becomes the pods' CPU and memory resource requests.

Instance fields configure the cluster: engine_version to the image tag, allocated_storage to the PVC size, and instance_class to the pods’ CPU and memory.

Backups and point-in-time recovery

RDS backup settings map to the Percona operator’s backup configuration. The operator schedules full backups to S3-compatible or Azure-compatible object storage and supports on-demand backup objects. Point-in-time recovery comes with it: with PITR enabled, the operator runs a binlog-collector pod that continuously streams the cluster’s binary logs to the same object storage, and a restore replays those logs forward onto the nearest full backup to reach a chosen transaction or timestamp. Set the retention and recovery window on the operator. Backups are stored in the customer’s bucket.
RDS backup settings become Percona operator backup configuration. The operator writes full backups to S3-compatible or Azure-compatible object storage. Point-in-time recovery runs a binlog-collector pod that streams binary logs to the same object storage; a restore replays them onto the nearest full backup.RDS backup settings become Percona operator backup configuration. The operator writes full backups to S3-compatible or Azure-compatible object storage. Point-in-time recovery runs a binlog-collector pod that streams binary logs to the same object storage; a restore replays them onto the nearest full backup.

The Percona operator schedules full backups and collects binary logs for point-in-time recovery.

Parameters, pooling, and the RDS extras

Settable MySQL parameters, such as innodb_buffer_pool_size and max_connections, map to the cluster configuration. RDS-only parameters and the reusable parameter-group object have no counterpart. HAProxy routes connections without RDS Proxy-style pooling. Configure an application pool or separate pooler if required. The cluster uses native MySQL accounts and Kubernetes monitoring; RDS IAM authentication, S3 and Lambda integration SQL, Enhanced Monitoring, and the RDS-managed CA certificate are unsupported.
A parameter group flattens to the cluster's MySQL configuration and RDS-only parameters drop. HAProxy routes MySQL connections but does not provide RDS Proxy-style connection pooling. IAM database authentication, S3 and Lambda integration SQL, Enhanced Monitoring, and the RDS-managed CA certificate have no counterpart.A parameter group flattens to the cluster's MySQL configuration and RDS-only parameters drop. HAProxy routes MySQL connections but does not provide RDS Proxy-style connection pooling. IAM database authentication, S3 and Lambda integration SQL, Enhanced Monitoring, and the RDS-managed CA certificate have no counterpart.

MySQL parameters map to the cluster configuration. HAProxy routes connections; it does not replace RDS Proxy connection pooling. IAM auth, integration SQL, and Enhanced Monitoring have no counterpart.

Operating the cluster

The customer’s team operates the cluster after migration, including upgrades, backup verification, failover tests, and capacity. There is no managed database availability SLA. Additional nodes and the HAProxy read endpoint serve reads within one region; cross-region reads require a second cluster. The adapter returns RDS request and response formats for management calls and executes those calls on the Percona operator’s resources. Moving existing data and operating the cluster are separate tasks.
RDS Multi-AZ is AWS-operated with an availability SLA. The Percona XtraDB Cluster is a self-operated Galera quorum on Kubernetes with no vendor SLA, and cross-region reads need a second cluster.RDS Multi-AZ is AWS-operated with an availability SLA. The Percona XtraDB Cluster is a self-operated Galera quorum on Kubernetes with no vendor SLA, and cross-region reads need a second cluster.

RDS is AWS-operated with an availability SLA; the Percona cluster is self-operated on Kubernetes with no vendor SLA, and cross-region reads need a second cluster.

Limitations

Check the operating requirements and RDS-specific gaps before choosing a self-managed cluster. △ Where RDS for MySQL and Percona XtraDB Cluster diverge
  • No vendor availability SLA. The cluster is self-operated on Kubernetes, so unlike RDS Multi-AZ there is no cloud vendor SLA to point to; availability is a property of how the team runs the cluster.
  • No cross-region read scale-out. The appliance runs one cluster, so live cross-region reads or a standby region require a second cluster and a replication link.
  • A majority must remain connected. Three nodes tolerate one unavailable node; losing the majority interrupts normal database service until quorum is restored.
  • Synchronous replication has a per-write cost. Write-set certification across the cluster adds coordination to every commit, so a write-heavy workload tuned for a single RDS writer validates throughput on the cluster before cutover.
  • Capacity is cluster-bound. A pod fits a Kubernetes node and a PersistentVolumeClaim sizes on its StorageClass; there is no RDS instance-type catalog and no usage-triggered storage autoscaling.
  • RDS-specific settings have no counterpart. IAM database authentication, S3 / Lambda integration SQL, Enhanced Monitoring, and the RDS-managed CA certificate are RDS-specific; the cluster uses native MySQL accounts and Kubernetes-native observability.

Other considerations

Move data with mysqldump or replication, then validate the copy before switching connections. Test backup restoration and failover as part of cutover. The customer’s team continues to operate the cluster, including upgrades, monitoring, and capacity. Service Catalog.