I'm looking at the various offerings form Amazon for managing a cloud based app and in short am unsure whether it is best to attempt to accomplish what I need using simply EC2 & EBS, Beanstalk, or OpsWorks or even CloudFormation.
To elaborate I want to offer customers of our web/Tomcat based app a cloud based trial version upon sign up, running on a custom domain (via Route53) with their data stored on an EBS volume. Certain directorys on the file system will need to be created upon instance creation.
My intention is make appropriate calls using the Java AWS SDK upon successful sign up to provision a system for the user, who will then be notified of the URL to access their custom site.
I'm not looking at multi-scaling as the number of concurrent users will never be high but each customers version should be running in isolation.
So I'm looking at the beanstalk API.. but then saw the OpsWorks Api, and then the CloudFormation templates.
If I were to use the Beanstalk API, I could launch an 'environment' for each customer, which means all customers would be part of the same beanstalk 'Application', meaning if I update the app version.. everyone would receive the update which sounds positive, however it seems wrong doing an environment per customer as typically environments are used for testing,production etc...
So I'm back at the beginning wondering what would be the typical deployment strategy for this type of AWS based SAAS system.
For clarity, the app does not require RDS and would only require a single instance per customer.
Aucun commentaire:
Enregistrer un commentaire