I am experimenting with deploying a standalone, executable Spring Boot JAR on AWS with SSL support.
I tried using Elastic Beanstalk, which created an EC instance. It uses Route 53 with an Elastic Load Balancer to get SSL. I deployed it on a URL nobody knows about, and it works.
But the prices are astronomical! Just last month the load balancer alone cost me $16—for nothing! Nobody even knows about the site. I even forgot I had the site for a while. Random hackers have accessed the site more than I have.
For comparison I have a static site served out of S3 and deployed around the world with SSL using CloudFront for pennies a month. Literally. I think last month the cost was $0.50.
I could manually deploy my JAR on a single EC instance. But then I would have to set up Apache and set up LetsEncrypt and keep the EC instance up-to-date, etc. Or maybe I could go some Docker route, but still I’d have to maintain the machine, and it’s not clear to me a way to automatically get SSL support baked into the Docker image just by deploying it.
I realize the benefit of Elastic Beanstalk’s ability to spin up other EC instances as needed, and maintain transparent SSL support to both of them. But surely there is a cheaper way to get SSL. (If it costs me this much for a site that isn’t used, imagine when I have a few users.)
So let’s start simple. Is there an easy way to deploy a Spring Boot application in an executable JAR on AWS using SSL without configuring and maintaining a machine and manually setting up SSL—but with reasonable costs? The current situation doesn’t seem much different than when I was deploying Java web sites two decades ago. I thought by now I would be able to just drop a JAR somewhere and get a cheap cloud deployment with SSL. (If another service besides AWS can do this for me better, please let me know that as well.)