On the one hand "don't add additional layer unless its clearly and instantly beneficial" is a good advice. You can do this at any point in time. On the other hand "allow people to use any feature on AWS they ask for" is a wrong reasoning. When you allow for this you get a ton of dependencies that are not requiered and in turn make your system hard to maintain and sometimes extremely cosly. Keeping your dependencies controlled is always a good advice. The real problem is how to do this without creating internal tools that become costly dependencies on their own.