Currently, our infrastructure sits on AWS (EC2, ElasticBeanstalk, RDS) and consists of a few different services that work together to create our production environment, these consist of a:
- MySQL server
- PHP/Apache server
- few NodeJS servers
Currently for development, it is a real pain to setup a local environment that mimics what we have setup for production. We are using MAMP to setup mysql + apache, but to setup the node servers and configure things locally is quite time consuming.
I'd like to ditch MAMP for a solution that is more similar to the ec2 boxes that each service will run on. I've been looking into setting up docker containers on vagrant, as I think that's the way forward.
My question is: What is the best way to setup a micro-service style architecture for local development using Vagrant + docker (or whatever tool is better) so that the local environment closely matches production?