My use case is a singleton HTTP server (no horizontal scaling). I already tried ECS, App Runner, Elastic Beanstalk among other tools. Every deployment option has minute+ downtime or otherwise takes minutes to complete. Is there any option on AWS to achieve instant deploy like Heroku? I simply want to restart my app with new code / new configuration.
If you don’t need to scale and you want something simple you might try rolling your own blue/green deployment using nginx or haproxy.
The basic idea is that traffic gets served by nginx or haproxy and forwarded to your app server. When you deploy another app server and background process gets spun up. Then when the new app server is ready you have nginx/haproxy switch where it’s forwarding traffic.
You can do this on a regular vm and skip all the extra tooling.
I am happily using a few other AWS services for this project, provisioned by CDK. I thought I could simplify things my getting rid of Heroku altogether but this turned out to be an incredibly frustrating rabbit hole with no solution in sight. Unless I’m missing something obvious, it seems that Amazon is incapable of this seemingly easy task.
I should have mentioned in my original post that my web server also has a background process which needs to be a singleton. I could split it off into a separate container, but this will require a third container because they need a shared cache that's used for rate limiting. At that point I have little to gain vs. just running a single "web" dyno on Heroku.
The basic idea is that traffic gets served by nginx or haproxy and forwarded to your app server. When you deploy another app server and background process gets spun up. Then when the new app server is ready you have nginx/haproxy switch where it’s forwarding traffic.
You can do this on a regular vm and skip all the extra tooling.