TurnKey Linux Virtual Appliance Library

Scaling a large website with TKL on AWS

How would one scale a large website on AWS?

 

Many have recommended say a 3 tier approach - 

  1. Load Balancers
  2. Web Tier
  3. Databases - Master - Slave

Elastic Load Balancer could potentially instantiate additional web servers automatically.

How does a Master Slave relationship work?

Can anyone comment?

Liraz Siri's picture

Cluster configurations are currently beyond the scope of TKL

TKL is currently targeted at better serving low-end, single-server type configurations than high-end auto-scaling cluster type deployments. We may improve TKL in the future for that type of usage scenario but currently if you really need this sort of configuration, TKL won't help you much.

Cluster deployments are much more complex than single-server deployments and unnecessary for 99.99% of websites. Before you decide to swallow the bitter pill of a cluster configuration keep in mind that you can get a lot of mileage by just upgrading to a larger instance type. Going straight to cluster configurations if you don't need it yet is a form of premature optimization and will cost you dearly. I personally recommend you try and exhaust the optimization opportunities provided by a single-server setup first. You can switch out to a more efficient web server. Turn on caching, etc.

flexbean's picture

Scaling options

As TKL Hub currently supports: t1.micro, m1.small and m1.large instances. As it's easier to scale a single node and as AWS has larger instances available, is there any possibility of adding AWS EC2 instances: m1.xlarge, m2.xlarge, m2.2xlarge, m2.4xlarge and cc1.4xlarge? I can see using them for projects I'm working on.


Jeremy's picture

Larger instances require 64 bit

Which unfortunately TKL do not currently offer. AFAIK 64 bit TKL shouldn't be too far away though. No timeframe as yet though.

Sounds like a noble approach

How is compatibility across say a 32 bit and 64 bit instance with TKL / TKLBAM and AWS?

When you install an application using webmin, do they typically work for both 32 bit  and 64 bit servers?

How would you recommend measuring your server loads?  how about say grinder? anything that I could easily install with webmin?

http://sf2010.drupal.org/conference/sessions/performance-testing-economi...

Potentially it does not sound too difficult to simultaneously use http://aws.amazon.com/cloudwatch/

I guess when you outgrow the simple single 32 bit instance one could upgrade to 64, and keep growing with instance sizes until you need to create a cluster with a load balancer and potentially autoscaling.  I guess you are saying when you need to grow it is a good problem and not to waste the mental and physical energy planning and developing if the growth demand will never be there.  Alternatively I am always concerned about that simple blog post which could push thousands of users to your site and slow you down. Its a risk one has to take in startup land.

 


Post new comment

The content of this field is kept private and will not be shown publicly. If you have a Gravatar account, used to display your avatar.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <p> <span> <div> <h1> <h2> <h3> <h4> <h5> <h6> <img> <map> <area> <hr> <br> <br /> <ul> <ol> <li> <dl> <dt> <dd> <table> <tr> <td> <em> <b> <u> <i> <strong> <font> <del> <ins> <sub> <sup> <quote> <blockquote> <pre> <address> <code> <cite> <strike> <caption>

More information about formatting options

Leave this field empty. It's part of a security mechanism.
(Dear spammers: moderators are notified of all new posts. Spam is deleted immediately)