If you are not a large deployment with a large number of active users and revenues, I do not think that you can justify everything except the basic measures.
Instead, make sure that you are sure to know in a timely manner that your system is under attack (by monitoring the processor / memory / requests per second).
If you think you are under attack, ask someone else for the hosts on your servers.
I would like to hear a different opinion, but I think that any approach based on your kind is almost always doomed to failure. Almost regardless of what you do, the link provided by the upstream can be saturated, that is, sometimes the only person who can do something is upstream from your servers, not you.
source share