IP addresses is another. AWS gives you 5 before you have to start applying for them. We do email marketing, so we need a lot of IPs (we give dedicated IPs to each customer). With APNIC (Asia Pac) we have a /22 and a /23 range (1536 IPs) for ~ $2900 per year.
Legal reasons are a whopper as well, Australia has some tight laws around privacy and liability if an overseas partner leaks your data.
We still host a lot of things on cloud providers (Rackspace & AWS in both Sydney and US) sites, but at the end of the day our VMs out perform cloud VMs and are considerably cheaper.
If you can build a redundant system, and don't need the extra 99.999999s of hardware resilience, but can have 99.995 network uptime, dedicated is great.
I have had 4x 1 minute dropouts in the past 18 months from our hosting vendor upgrading their routers always at midnight localtime. They provide diverse data paths and we have not lost connectivity despite major outages. If I thought I needed to I could get a separate connection from one of about 20 providers in the local DC I am located in.
I really believe many people put too much weight on the complexity of managing physical hardware, when your already doing 90% of the administration anyway on a cloud server. Yes it is capital intensive, but you will likely make the money back in your first 12-18 months.
I collocate 5x 4u servers with 24 and 36 drive bays, 128GB ram, SSD drives squished in for OS, for a total (multiple raid 5 volumes for each 6 disks) usable space for my project of 375 TB
Power and 2-3gbit of bandwidth is included, as well as remote hands to check up on server (for example IPMI sometimes does not work) or replace drives (pay extra for enterprise grade drives would save you alot of hassle in long term!)
for .... €1500 / month
now go and calculate the cost of that on AWS
I tend to favour dedicated servers which I own over VPS but for small businesses with extremely constrained budgets ("prove we can make money before we invest in hardware") and startups, flexible virtual servers can be a great way to ramp up in the beginning.
you get no tax relief for opex.
Anyway its a once off cost, that accountant can do all sorts of magic with this.
Ive been in business for 7 years and hope to remain around for as long.
Have already saved money as to compared to renting dedicated servers before. AWS etc were never an option the sums simply never work out.
AWS might be great at first when you are starting out, but the costs can cripple a business, especially if you dont have others peoples venture capital to burn.
edit: when bandwidth costs are factored in the difference is and order of magnitude between my current setup and amazon, at time of this post using 2200 mbit outgoing, 800 incoming
edit2: my only regrets is not collocating earlier, have spent well into upper 6 figures over all the years :( on renting, AWS etc werent around when was starting off either.
It's a shallow orange vs. apples comparison, but look at the price of colocating 1/3 rack at Hetzner (119EUR). If you already own the hardware, have no need to use any advanced AWS feature, have the skills to manage it, etc.. sometimes it make sense.
For personal and/or SMB needs, it usually not worth the trouble (specially regarding skills to maintain it).
So you're right, it's becoming more and more a niche.
You could also do hybrid approach - colo for core infrastructure and cloud to scale out, but that's more difficult to setup.
At a certain scale of colo or with very heavy security requirements you'll find it's cheaper to have your own datacenter.
AWS had the fastest network and but colocation allowed for cheaper CPU and RAM upgrades. As it turns out, my RAM/CPU needs plateaued at 4x my previous server so I have twice as much as I need. AWS got steadily cheaper over that same time and the servers got faster.
Upgrading to a new server is pretty disruptive. It would probably be easier to do slowly over time rather than big jumps.