(web304) running and scaling magento on aws | aws re:invent 2014

93
November 14, 2014 | Las Vegas, NV Shaun Pearce, Solutions Architect, AWS Zachary Stevens, Chief Architect, Elastera

Upload: amazon-web-services

Post on 02-Jul-2015

4.397 views

Category:

Technology


8 download

DESCRIPTION

Magento is a leading open source, eCommerce platform used by many global brands. However, architecting your Magento platform to grow with your business can sometimes be a challenge. This session walks through the steps needed to take an out-of-the-box, single-node Magento implementation and turn it into a highly available, elastic, and robust deployment. This includes an end-to-end caching strategy that provides an efficient front-end cache (including populated shopping carts) using Varnish on Amazon EC2 as well as offloading the Magento caches to separate infrastructure such as Amazon ElastiCache. We also look at strategies to manage the Magento Media library outside of the application instances, including EC2-based shared storage solutions and Amazon S3. At the data layer we look at Magento-specific Amazon RDSandndash;tuning strategies including configuring Magento to use read replicas for horizontal scalability. Finally, we look at proven techniques to manage your Magento implementation at scale, including tips on cache draining, appropriate cache separation, and utilizing AWS CloudFormation to manage your infrastructure and orchestrate predictable deployments.

TRANSCRIPT

Page 1: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

November 14, 2014 | Las Vegas, NV

Shaun Pearce, Solutions Architect, AWS

Zachary Stevens, Chief Architect, Elastera

Page 2: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 3: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 4: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

40%

40% of shoppers abandon a site that

takes more than 3 seconds to load

Source: blog.kissmetrics.com/loading-time/

Page 5: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

79%

79% of shoppers who are dissatisfied with

site performance are less likely to buy from

the same site again

Source: blog.kissmetrics.com/loading-time/

Page 6: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

November

Page 7: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

SALEENDS SOON

visit example.com/sale

Page 8: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 9: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 10: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 11: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 12: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 13: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 14: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 15: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

http://youtu.be/xbuiIwEOCAs

Page 16: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Bottleneck

Page 17: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Bottleneck

Page 18: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 19: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 20: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Magento instance

Master Slave Master Slave Master Slave

Page 21: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Bottleneck

Page 22: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 23: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Bottleneck

Page 24: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 25: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 26: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 27: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 28: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 29: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 30: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 31: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 32: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 33: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 34: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

HTTP cache server (10.0.0.1)

Varnish

Magento

10.0.1.1

10.0.1.2

10.0.1.3Internal

load balancer

Magento

Magento

User External

load balancer

default.vcl

example.us-east-1.elb.amazonaws.com

Page 35: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Varnish

HTTP cache server (10.0.0.1)

10.0.1.1

Magento

Internal

load balancer

User External

load balancer

default.vcl

10.0.1.1

Page 36: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Varnish

HTTP cache server (10.0.0.1)

Magento

Magento

Magento

10.0.2.3

10.0.2.4

10.0.2.5

User External

load balancer

default.vcl

10.0.2.3

10.0.2.4

10.0.2.5

Page 37: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Varnish

HTTP cache server (10.0.0.1)

Magento

Magento

Magento

User External

load balancer

10.0.2.3

10.0.2.4

10.0.2.5

default.vcl

10.0.2.3

10.0.2.4

10.0.2.5

10.0.2.6

Page 38: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

HTTP cache server (10.0.0.1)

Varnish Nginx

default.vcl

localhost:8080

User External

load balancer

Magento

10.0.1.1

10.0.1.2

10.0.1.3Internal

load balancer

Magento

Magento

nginx.conf

example.us-

east-

1.elb.amazonaw

s.com

Page 39: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 40: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

HTTP cache server (10.0.0.1)

Varnish Nginx

default.vcl

localhost:8080

User External

load balancer

Magento

10.0.1.1

10.0.1.2

10.0.1.3Internal

load balancer

Magento

Magento

nginx.conf

example.us-

east-

1.elb.amazonaw

s.com

Page 41: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

HTTP cache server (10.0.0.1)

Varnish

default.vcl

localhost:8080

User External

load balancer

Magento

10.0.1.1

10.0.1.2

10.0.1.3

Nginx

Internal

load balancer

Magento

Magento

nginx.conf

example.us-

east-

1.elb.amazonaw

s.com

Page 42: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

HTTP cache server (10.0.0.1)

Varnish

default.vcl

localhost:8080

User External

load balancer

Magento

10.0.1.1

10.0.1.2

10.0.1.3

Nginx

Internal

load balancer

Magento

Magento

nginx.conf

example.us-

east-

1.elb.amazonaw

s.com

Page 43: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

HTTP cache server (10.0.0.1)

Varnish

default.vcl

localhost:8080

User External

load balancer

Magento

10.0.1.1

10.0.1.2

10.0.1.3

Nginx

Internal

load balancer

Magento

Magento

nginx.conf

example.us-

east-

1.elb.amazonaw

s.com

Page 44: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

HTTP cache server (10.0.0.1)

Varnish

default.vcl

localhost:8080

User External

load balancer

Magento

10.0.1.1

10.0.1.2

10.0.1.3

Nginx

Internal

load balancer

Magento

Magento

nginx.conf

example.us-

east-

1.elb.amazonaw

s.com

Page 45: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

HTTP cache server (10.0.0.1)

Varnish

default.vcl

localhost:8080

User External

load balancer

Magento

10.0.1.1

10.0.1.2

10.0.1.3

Nginx

Internal

load balancer

Magento

Magento

nginx.conf

example.us-

east-

1.elb.amazonaw

s.com

Page 46: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

HTTP cache server (10.0.0.1)

Varnish

default.vcl

localhost:8080

User External

load balancer

Magento

10.0.1.1

10.0.1.2

10.0.1.3

Nginx

Internal

load balancer

Magento

Magento

nginx.conf

example.us-

east-

1.elb.amazonaw

s.com

Page 47: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

HTTP cache server (10.0.0.1)

Varnish

default.vcl

localhost:8080

User External

load balancer

Magento

10.0.1.1

10.0.1.2

10.0.1.3

Nginx

Internal

load balancer

Magento

Magento

nginx.conf

example.us-

east-

1.elb.amazonaw

s.com

Page 48: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

HTTP cache server (10.0.0.1)

Varnish

default.vcl

localhost:8080

User External

load balancer

Magento

10.0.1.1

10.0.1.2

10.0.1.3

Nginx

Internal

load balancer

Magento

Magento

nginx.conf

example.us-

east-

1.elb.amazonaw

s.com

Page 49: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 50: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 51: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 52: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 53: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 54: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

SaaS BEST OF BOTH DIY

No headaches

Predictable cost

Lower TCOHeadaches

Spiraling cost

High TCO

Renting

Constraints

Ownership

Freedom

Ownership

Freedom

Less headaches

Lower Cost

Page 55: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

RUN

MANAGE

EVOLVE

Page 56: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Availability Zone Availability Zone

Magento Admin Primary Read Rep

Auto Scaling groupMagento MagentoMagento Magento MagentoMagento Media

CDN

Static

CDN

Media

S3

Page 57: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 58: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 59: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Magento Admin

Primary

CloudFront Amazon S3

Auto Scaling group

Magento MagentoMagento

Page 60: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Magento Admin

Primary

CloudFront Amazon S3

Auto Scaling group

Magento MagentoMagento

Magento Admin

Primary

CloudFront Amazon S3

Auto Scaling group

Magento MagentoMagento

Page 61: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Magento Admin

Primary

CloudFront Amazon S3

Auto Scaling group

Magento MagentoMagento

Page 62: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Magento Admin

Primary

CloudFront Amazon S3

Auto Scaling group

Magento MagentoMagento

Magento Admin

Primary

CloudFront Amazon S3

Auto Scaling group

Magento MagentoMagento

Page 63: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

QUALITY from code

Page 64: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

log_bin_trust_function_creators

Page 65: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 66: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 67: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 68: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 69: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 70: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

• local.xmlConfiguration

• Magento codeWebsite

• Apache, PHP

• Chef, NewRelic

System software

• Amazon LinuxBase OS

Page 71: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 72: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

• local.xmlConfiguration

• Magento codeWebsite

• Apache, PHP

• Chef, NewRelic

System software

• Amazon LinuxBase OS

Page 73: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 74: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

PROACTIVELY

Page 75: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 76: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

• local.xmlConfiguration

• Magento codeWebsite

• Apache, PHP

• Chef, NewRelic

System software

• Amazon LinuxBase OS

Page 77: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

• local.xmlConfiguration

• Magento codeWebsite

• Apache, PHP

• Chef, NewRelic

System software

• Amazon LinuxBase OS

Page 78: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Magento Admin

Auto Scaling group

Magento Magento Magento Admin

Auto Scaling group

Magento Magento

Live

Deploy

server

Staging

Developer Deploy

bucket

Page 79: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Magento Admin

Auto Scaling group

Magento Magento Magento Admin

Auto Scaling group

Magento Magento

Live

Deploy

server

Staging

Developer Deploy

bucket

Page 80: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Magento Admin

Auto Scaling group

Magento Magento Magento Admin

Auto Scaling group

Magento Magento

Live

Deploy

server

Staging

Developer Deploy

bucket

Page 81: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

PUSH

Page 82: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

where are you

Page 83: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Magento Admin

Auto Scaling group

Magento Magento

Deploy

bucket

Live

Deploy

server

Magento Admin

Auto Scaling group

Magento Magento

Staging

Developer

Page 84: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Magento Admin

Auto Scaling group

Magento Magento

Deploy

bucket

Live

Deploy

serverDeveloper

Magento Admin

Auto Scaling group

Magento Magento

Staging

Page 85: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

UPGRADE

Page 86: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Magento Admin

Auto Scaling group

Magento Magento

Deploy

bucket

Live

Deploy

serverDeveloper

Magento Admin

Auto Scaling group

Magento Magento

Staging

Page 87: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Magento Admin

Auto Scaling group

Magento Magento

Deploy

bucket

Live

Deploy

serverDeveloper

Magento Admin

Auto Scaling group

Magento Magento

Staging

Page 88: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Note

Page 89: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 90: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Magento Admin

Auto Scaling group

Magento Magento

Deploy

bucket

Live

Deploy

serverDeveloper

Magento Admin

Auto Scaling group

Magento Magento

Staging

Page 91: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

Magento Admin

Auto Scaling group

Magento Magento

Deploy

bucket

Live

Deploy

serverDeveloper

Magento Admin

Auto Scaling group

Magento Magento

Staging

Page 92: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
Page 93: (WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014

http://bit.ly/awsevals