Now let's talk to the 0 user startups with trivial data with their SOA/microservices, NoSQL databases or sharded data bases...
e.g. my company hosts our own legacy BIND servers, so our main root domains live there, but I wanted to be able to use Route53 for easy DNS updates within Cloudformation. So, we just set up sub-zones in BIND that forward to a route 53 hosted zone (*.prod-aws.whatever.com), and our user facing domain names (foo.whatever.com) just cname to something in the sub-zones (Foo.prod-aws.whatever.com) that route53 manages.
That's just one example that's not 100% applicable here, but the point is you can get creative and only use it for what you need, which I've found makes it much easier to accept.
Anycast DNS is one way of pushing local traffic to local servers, but the only thing "load-balanced" is the DNS server itself, not your app. Your app is just geographically routed.
If you want true global load balancing, you're beginning to talk about something like WAN optimization and running your own network fabric. If you get to that point, you're probably better off rolling your own than using AWS anyway.
R53 + Geo DNS | Latency Based DNS | Traffic Manager + Application Load Balancer | Network Balancer is definitely our go-to recommendation and it's used by a variety of customers to handle traffic globally.
Route53 supports ALIAS records, so everything still works at the root of your domain (e.g. mydomain.com). Failover is handled with DNS health checks that propagate more quickly than the cascading BGP routing updates that power alternatives such as anycast, as well as avoiding breakage of other in-flight connections due to route table disruption. R53 + Health Checks is what we use for www.amazon.com.
I'm curious - what would you prefer to see in an alternative?
Or you could use one of the other DNS providers who provide Anycast support. I think DynDNS does it.
Though most people that are convinced they need anycast would be better served with 53's GeoDNS
* Elasticache = Managed Redis and Memcache isn't available on GCP. (I really wish it was.)
* S3 = Cloud Storage
* CloudFront = Cloud CDN
* SQS = Cloud PubSub
* Elastic Beanstalk/CodeDeploy — No GCP alternative.
* Lambda = Cloud Functions (Beta)
Nice thing about GCP is that they don't get creative with naming, so it's pretty easy to infer what their services do.
(Work at g)
Lambda is also nearly costless if you have little traffic so it's not like you would pay extra for it. But serverless architecture isn't always the right decision.
Serverless shines when you have an unpredictable amount of async tasks to run, and those tasks can take a long time to run. Thumbnailing images for example.