hi Hodgman, thanks for the quick reply.
Yes, I agree, the downside is that you're locked into AWS. *However*, even using EC2 OnDemand and creating my own 'intelligent provisioning engine' would still keep me locked into the AWS API to spin up and shut down instances, right? Since there's really a minimum amount of GameLift SDK code needed to get this up and running, I think the 'commitment' level is reasonably low. If AWS proved to be too expensive even with the dynamic provisioning, I could move to something like Digital Ocean and create my own smart provisioning (which was the other alternative I am considering)...
Also, I agree, the downstream data cost sucks with AWS. Since I'm making a card game and not a shooter or action game, I think that it should be fine though. Although benchmarking tests would probably prove that better.
Also - the other thing that drew me to GameLift is Amazon Aurora. Amazon Aurora is super bad ass, scalable SQL. Since as you pointed out, getting data out of Amazon is expensive, using something like Digital Ocean for the app servers with Aurora for DB servers would be silly since I'd be paying Amazon every time I ran a query. So with AWS you get super scalable SQL too...
PS, I'm open to alternatives to GameLift if anyone has any. The other one already mentioned is Digital Ocean + home brew 'auto provisioning'. I also found GameSparks and PlayFab, but don't love either of them as GameSparks seems too locked down into their own proprietary server engine and PlayFab doesn't have great documentation on how to setup and use their Authoritative Server hosting. It also comes with a whole bunch of bloat I don't need personally (e.g. inventory tracking, player rewards, friends list)