On the accounts already past reasonable, since changing terms on existing users is the awkward part.
What works:
Announce it properly and give real notice. Thirty days minimum, by email, stating exactly what is changing and what it means for them specifically - including their current usage against the new limit. Generic announcements get ignored; a message saying you are using this much and the new limit is that gets read.
Grandfather the small ones, contact the large ones individually. The handful using more than your biggest customer are worth a personal email. Some of them will pay, some are using it for something you would want to know about, and some will leave, which is fine.
Offer a path. The limit plus a paid tier that solves it is a business decision for them. A limit with no option is just a takeaway.
Do not do it silently. Quietly enforcing a new cap on people who built something on the old terms is how you get a bad reputation for very little money.
And write the policy down properly this time, in the terms and on the pricing page, including that limits may change with notice. The reason this is uncomfortable now is that the original tier had no stated bounds, and you are correcting that rather than taking something away.