We have a static family of static websites we're thinking of hosting on Amazon Beanstalk. We currently depend on ssh access for our deployment process:
- We upload a zip file and unzip locally
unzip version.zip
- We maintain symlinks to have shorter alias for some component (e.g. instead of http://oursite.com/verylongcustomername/somemoredetails we user http://oursite.com/K38da/Mc7za
- We're using quick rollback and patching on the server by editing specific files:
mv latest_ver latest_ver.bak;mv older_ver latest_ver
andvim foo.js
We're considering moving to Amazon Beanstalk, and so I installed and configured a sample website. I setup a symlink structure, uploading a version via scp, and edited Tomcat's configuration files. However, I'm not sure if any of these changes are maintained by the Beanstalk manager (in fact I saw some of them did not take when an instance was restarted).
Is there any way to have the Beanstalk manager remember local changes I do to the instance's filesystem, and carry that over to new instances it creates?
If the answer is no, then it seems I should forget about Beanstalk and use an EC2 image directly (I can then create an AMI that includes my custom modifications and relaunch if needed).
To retain those kinds of changes you'll want to use your own AMI that has those changes made already so that when Beanstalk launches or re-launches the instances your data is present.
Alternatively you can use the .config files to automate the process as seen here: http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/customize-containers.html