Decision record
Kubernetes runs the application; RDS owns the state
I kept MySQL outside the EKS cluster in Amazon RDS rather than treating the database as another Kubernetes workload. The application pods are disposable and can scale between one and ten replicas, while the data layer sits in dedicated database subnets and only accepts MySQL traffic from the EKS nodes or the bastion path. This removes database storage, backups and lifecycle from the cluster's operational burden. The trade-off is tighter AWS coupling and a separate managed service to provision and pay for, but application rollouts and node replacement no longer share a failure domain with the database.