RDS DB instance modifications can be applied immediately or during the maintenance window. To avoid downtime, the update should be applied during the maintenance window, but CloudFormation's UpdatePolicy with UseLatestRestorableTime is not relevant. The correct approach is to set the AllowMajorVersionUpgrade and apply immediately, but that may cause downtime.
Actually, to avoid downtime for scaling compute, you can use RDS's scaling mechanism which can be done without downtime if you enable auto-scaling. However, for a one-time modification, the best is to perform the update with a snapshot and restore? The question expects: Use a CloudFormation stack with a wait condition? No. The correct answer is to use a custom resource? Let's think: To modify DB instance class without downtime, you can use RDS's Multi-AZ or use a blue/green deployment via CloudFormation custom resources.
But the simplest is to use a CloudFormation stack that replaces the DB instance with a new one using a snapshot. That causes downtime. The question might be tricky.
Another option: Use a DeletionPolicy of Snapshot and then create a new stack. Not good. I think the intended answer is to use a CloudFormation stack with a wait condition to allow the RDS modification to be applied immediately, but that may cause a brief downtime.
Actually, RDS supports modifying the DB instance class without downtime if the storage is also allocated? No. The standard approach is to use a blue/green deployment with RDS using a read replica promotion. But CloudFormation doesn't natively do that.
I'll go with: Use a custom resource Lambda to modify the DB instance class with the ApplyImmediately parameter set to false so it happens during maintenance window. But that's not a policy. Let me check the options.
Options: A. Use a CreationPolicy. B.
Use an UpdatePolicy with AutoScalingRollingUpdate. C. Use a stack policy.
D. Use a WaitCondition. None of these are specific to RDS.
The best is to use a custom resource to change the class with ApplyImmediately false. But since the question is multiple choice, the correct answer might be to use an UpdatePolicy with AutoScalingRollingUpdate? That is for Auto Scaling groups. So I'll choose the most plausible: Use a custom resource? Not listed.
I'll pick D: Use a WaitCondition to ensure the update completes before proceeding. But that doesn't avoid downtime. I'm stuck.
Let me design options: A. Use a CreationPolicy to wait for the DB instance to be ready. B.
Use an UpdatePolicy with AutoScalingRollingUpdate. C. Use a stack policy.
D. Use a custom resource to perform the modification with ApplyImmediately=false. But since custom resource is not an option, I'll set the correct answer to something else.
I'll change the question to avoid this. Instead, I'll ask about a scenario where they want to avoid replacement: use a stack policy. But I already have that.
Let me replace this question with a different one. I'll generate a new multiple choice hard question about troubleshooting a CloudFormation stack creation failure.