copies of installations for each client I have built a Drupal based web app product that I want to give (a trimmed down version) for free. I am expecting 100s and 1000s of subscribers. Each one should get an exclusive code base (drupal files) and database- thats my product's need.
I plan to use AWS- amazon web services.  

1). I want users to visit my company site and click and install the product(the web app site) for themselves. This should automatically
       a. create a sub-domain,
       b. copy my main code base and database. How to do these?   

2). For maintenance and upgrades management, I want to have a single 
parent code base (probably at private github) and would want each of these sites to replicate that. This is to avoid upgrading 1000s of sites individually. How to do this?  

3). Some of my subscribers may want to upgrade to paid version. So I may have to customize their instance. How to ensure the custom changes are not overridden on maintenance acts of above point.

I have a low budget so I cannot buy any service to do this. I am hoping that a module or some Drush way can solve this.
You may be able to use Aegir (Hostmaster): https://www.drupal.org/project/hostmaster