neev-hosting magento enterprise on aws

3
Neev Information Technologies Pvt. Ltd. www.neevtech.com [email protected] Hosting Magento Enterprise on AWS Amazon Web Services (AWS) is the most popular and robust Cloud Hosting Infrastructure. Millions of sites and some of Internet’s most popular sites, portals and eCommerce Sites run on Amazon. Deploying Magento Enterprise on AWS for serving millions of users and a large catalog size would require a deeper understanding of Magento and AWS. This article talks about the architecture and points to consider while deploying Magento Enterprise on AWS. The diagram below shows a recommended minimum architecture to deploy Magento for High Concurrent Traffic. Given the architecture above the following points / settings need to be considered while setting up the servers 1. Make your App Servers Stateless:

Upload: neev-technologies-pvt-ltd

Post on 25-Mar-2016

215 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Neev-Hosting Magento Enterprise on AWS

Neev Information Technologies Pvt. Ltd. www.neevtech.com [email protected]

Hosting Magento Enterprise on AWS

Amazon Web Services (AWS) is the most popular and robust Cloud Hosting Infrastructure.

Millions of sites and some of Internet’s most popular sites, portals and eCommerce Sites run on

Amazon.

Deploying Magento Enterprise on AWS for serving millions of users and a large catalog size

would require a deeper understanding of Magento and AWS.

This article talks about the architecture and points to consider while deploying Magento

Enterprise on AWS.

The diagram below shows a recommended minimum architecture to deploy Magento for High

Concurrent Traffic.

Given the architecture above the following points / settings need to be considered while setting

up the servers

1. Make your App Servers Stateless:

Page 2: Neev-Hosting Magento Enterprise on AWS

Neev Information Technologies Pvt. Ltd. www.neevtech.com [email protected]

What this essentially means is ensure that none of the user specific information like

sessions, shopping bag contents etc are not stored on the server. The sessions storage

must be moved to the DB or Memcache. This will allow you to easily add or remove an

app server, without the online users getting logged out or losing their shopping basket

contents.

2. Do not enable sticky sessions on the Load Balancer:

A load balancer is usually programmed to re-direct users to the app servers on a

round robin method. However if sticky sessions are enabled then the load balancer will

direct all traffic from one user to that one single server where his session is

created. While this works fine in most cases, there could be scenarios where the users

connected to one server would be more active than the ones on the other, this would lead

to an overload of one server while the other is relatively low on load. This

would obviously affect the response times for users connected on the loaded server.

3. Ensure that the Media Folder is stored in an S3 bucket and it served via Cloud

Front:

I’ve seen many deployments where the media folder, which contains all the product

images and other static content is being duplicated across the multiple app servers and is

being rsynched each time a change happens. This is not ideal as the replication take times

and while users would be able to see the images, the other would not be able to. The ideal

way is to have the media folder on a S3 bucket and have it served via Cloud

Front (CDN) so that the images are served from the nearest node.

4. Put your CSS and JS also on CloudFront:

Well that’s a no brainer, all static content should be served out of cloudfront. Don’t forget

to concatenate, merge and minify the JS and CSS files. Magento is notorious to have 12-

16 different JS files in their default and Enterprise themes.

5. Enable IOPS for your RDS database:

Relational Database Service (RDS) is usually the most preferred way to get your MySQL

on AWS. RDS will make it really easy for you to get your database in Master Slave

mode, and schedule automated data backups. However RDS can turn out to be a bottle

neck when it comes to high read writes to the DB which Magento does a lot. This is

because the RDS is essentially stored on a SAN which comes with its own latency

problems. The one way to overcome that is to enable IOPS for RDS to make sure the app

servers can read and write data to the RDS database sufficiently fast.

6. CPU over RAM:

Page 3: Neev-Hosting Magento Enterprise on AWS

Neev Information Technologies Pvt. Ltd. www.neevtech.com [email protected]

Magento users a lot more CPU than it uses RAM, so while choosing an Instance try and

go for one that gives you more CPU power than RAM.

7. Use Memcache:

User a Memcache server this will significantly improve the sites performance. Also

importantly ensure you have a bank of memcache servers running and have it properly

configured in Magento, else your memecache server can become a single point of failure.

8. Use Nginix instead of Apache:

During most of our load tests, we notice the web servers being overworked most of the

time and using most of the CPU power. Nginx has a much smaller foot print as compared

to Apache and can server a significantly higher number of concurrent users than Apache.

9. Varnish can be a double edged sword:

Many architects think simply throwing in a reverse proxy like varnish before the app

servers will help boost performance, that’s quite wrong. Putting Varnish in front of

Magento Enterprise with full page caches on can actually be counterproductive especially

if Varnish is configured to server only images and static content. In many scenarios it’s

actually good not to use APC instead of Varnish to improve speeds.

10. Disable xDebug: xDebug comes default within the Magento Installation and is quite useful for debugging

the application during development. However it will slow down the site while running in

production mode. Significant performance benefits can be achieved by disabling xDebug

in Magento.

With the above configurations we’ve been able to have our Magento Enterprise Portals server

50+Million visitors with under 5 seconds of page load times during peak loads.

If you need help with Magento or with deploying applications on the Cloud, please feel free to

contact us

Visit us at Neevtech.com to know more about our offerings.