I've spent the past two weeks working on architecture proposal around this. At a very high level my conclusions were basically:
API Gateway could be very useful but is extremely overpriced.
Lambda is a bit more reasonable but not worth the trouble for me.
Both of those services have easy alternatives such as Auto Scale rules, EC2, and ELB.
Kinesis is really nice. And for our use case, isn't very expensive. If people used it for things like a distributed task queue I could see how things could get out of hand. We will use it for more of an ingress data buffer.
I'm also using the KCL which uses dynamodb to handle some distributed state issues. A bit like ZooKeeper. This will allow you to handle some coordination between your consumers and meet the demands of your delivery requirements.