Having one account per database/backend/frontend is not only overkill, but actually a bad practice. You're going to have to expose your DB to the internet instead of having everything inside a single VPC.
What you should do instead is have one account per environment (as you said).
What you should do instead is have one account per environment (as you said).