20M req/day is =~ $2000/month in API gateway fees alone. I can imagine it depends on the performance profile, but at a previous job, I replaced a service (lots of GETs, highly cacheable) with a similar number of daily requests with 2 ec2 instances and an elb, with automatic setup / blue green etc. in a matter of hours.
Company policy. Devops team uses X so that's what we have to use. When you keep getting truckloads of cash from investors no one seems to really care much about costs.
Most companies do not have access to an engineer capable of doing this in a matter of hours (or in infinite hours, at some firms). $2k/mo is a business-trivial amount of money to solve the problem. Ignoring the other capabilities of API gateway, that's the niche.
> > Most companies do not have access to an engineer capable of doing this in a matter of hours (or in infinite hours, at some firms).
This would take ~30 min (and at no additional cost) using Elastic Beanstalk[1]. I'm sure there are better, non-free (but not expensive) EB alternatives that can target AWS resources, though.
EB is not perfect, but this is totally wrong.
It can automatically:
- provision EC2 instances (using their pre-configured environments or your own Docker containers)
- set up a load balancer in front of a cluster
- scale horizontally or vertically based on load
- deploy code to all instances in a rolling fashion (zero-downtime deployments)
- run health checks to determine that instances are healthy
- automatically roll back bad deployments (also zero-downtime)
- pipe logs from all instances out to CloudWatch
- perform OS-level upgrades automatically on a certain schedule
All of this is out of the box.
You only need ssh for provisioning and when things break (like that one time etcd went crazy from a full network buffer).