MasterKuniWhen you purchase time on AWS, you're sharing resources and bandwidth with x other VMs on the same box. These services are intended for web servers, and they simply cannot provide the low-latency, high-reliability, on-demand performance demanded by a game server.
Only the micro instances share hardware, and they're not powerful enough to run TF2 anyway since you don't even have enough RAM. Other instances aren't effected by what any other customers might be doing, the performance you're paying for whatever instance you have is guaranteed.
I had an ec2 instance boot up for 4hrs at scrim time during the week for a month while our normal provider (ozfortress has ~20 servers any1 can book for free for scrims/pugs) was having issues. It cost me ~$10 for the month. I had multiple people asking what host I was using as it was the best ping/smoothest server they'd used. I know of at least 3 other teams who started doing the same thing until our usual host fixed up its issues. FYI I was using a c1.medium instance and it was overpowered for a TF2 server but gives great, smooth performance. Obviously this hosting won't be the best for everyone, depending on where you are compared to the host, your ISP etc. is going to get you better latency to different hosts, but they're certainly good enough for hosting any kind of gaming server.
While the performance is great, renting an already running TF2 server is far easier. I think in certain scenario's this kind of technology is really useful. For example, maybe running a short 1 day competition where you need multiple servers but only for a few hours. Or ESEA finals when everyone tries to join STV and it fills up. Booting up a bunch of ec2 instances and running some 250 slot STV's on really great performing hardware for only a couple of hours would cost next to nothing.