At the moment one of my side projects which I want to keep alive is Rediscover.Work. It is currently hosted in AWS using Elastic Beanstalk and RDS. This made sense at the time when I was trying to get the site up quickly. Now that the project is no longer funded though it is time to do a bit of belt tightening.
As with any project it is worth looking at different options for how it could be deployed. There were never more than there are now:
* AWS Elastic Beanstalk + RDS. Current running cost of around $96 per month. + Easy install. - Cost.
* AWS Lambda + RDS. + Simple scaling. - Migration costs are prohibitive.
* EC2 Instance: $9.52 according to the price calculator. + Already have needed tools - More admin to manage instance personally.
* Google App Engine and Cloud SQL: $8.01 according to the price calculator. + Ease of mantenance and app engine security scanning. - Migration to app engine layout.
As I already have all the tools needed to create the EC2 Instance solution and it requires the minimum investment in tooling I chose to go down that route first and see how things played out. In part 2 of this blog I will see how hard it is to migrate to app engine as this seems like a better solution for the long term.
- Build dependencies and update dependency versions using
- Package the code into a WAR to be deployed on the new shared EC2 instance.
- Launch a new instance which will run the site and database.
- Start hacking ansible (and loose the will to live due to so many issues with config).
Look out for part 2 where I will probably decide to migrate the whole project as managing machines is getting too painful for this time poor old coder.