This design really isn't so far out from what I planned but the NAT gateways aren't necessary and I was going to use Fargate instead of EC2 to host it. Also, I was going to host it in a single availability zone as the impact of downtime is minimal.
EFS seems like a natural choice also for upload directories, etc, and you can attach EFS volumes to Fargate containers now.
I'd be interested to hear if anyone else has done this and what their experiences are.