Transcript
Page 1: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

November 12th, 2014 | Las Vegas, NV

Chris Barclay and Abhishek Singh, Amazon Web Services

Page 2: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 3: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 4: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 5: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

You need to

deliver resilient

applications with

less work

Source: http://xkcd.com/844/

Page 6: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Elastic Beanstalk OpsWorks CloudFormation

Application container Application automation Templated provisioning

Page 7: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 8: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 9: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Java PHP Python Ruby .NET Node.js

Docker

Page 10: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 11: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 12: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Alert

Log

Mon

Ap

p

AZ

EL

B

http://your-app.elasticbeanstalk.com

Page 13: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Alert

Log

Mon

Ap

p

AZ

http://your-app.elasticbeanstalk.com

Page 14: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Alert

Log

Mon

Ap

p

AZ

EL

B

http://your-app.elasticbeanstalk.com

Page 15: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Alert

Log

Mon

Ap

p

AZ

SQS queueProducers

Page 16: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 17: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 18: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Load-based autoscaling

PHP

app

server

PHP

app

server

PHP

app

server

Page 19: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 20: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Alert

Log

Mon

Ap

p

AZ

EL

B

http://your-app.elasticbeanstalk.com

import os

some_var=os.environ.get(‘API_CREDS’)

String some_var = System.getProperty(‘API_CREDS’)

NameValueCollection appConfig = ConfigurationManager.AppSettings;

String param = appConfig[”API_CREDS"];

Python

Java

C#

Page 21: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Alert

Log

Mon

Ap

p

AZ

EL

B

http://your-app.elasticbeanstalk.com

import os

some_var=os.environ.get(‘API_CREDS’)

String some_var = System.getProperty(‘API_CREDS’)

NameValueCollection appConfig = ConfigurationManager.AppSettings;

string param = appConfig[”API_CREDS"];

Python

Java

C#

Page 22: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Alert

Log

Mon

Ap

p

AZ

EL

B

http://your-app.elasticbeanstalk.com

import os

some_var=os.environ.get(‘API_CREDS’)

String some_var = System.getProperty(‘API_CREDS’)

NameValueCollection appConfig = ConfigurationManager.AppSettings;

string param = appConfig[”API_CREDS"];

Python

Java

C#

Page 23: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 24: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 25: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 26: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Recipe

+

Metadata

=

Command

execute “mysql-connect” do

command “/usr/bin/mysql

-u#{node[:deploy][:myphpapp][:database][:username]}

-p#{node[:deploy][:myphpapp][:database][:password]}

#{node[:deploy][:myphpapp][:database][:database]}

“deploy”: {

“myphpapp”: {

“database”: {

“username”: “root”,

“password”: “abcxyz”,

“/usr/bin/mysql -uroot –pabcxyz myphpapp …

Page 27: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 28: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 29: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 30: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Load-based Auto scaling

PHP

App

Server

PHP

App

Server

PHP

App

Server

HA

Proxy

Page 31: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 32: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 33: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Ap

pE

LB

AZ

your-app.com

Alert

Log

Mon

Page 34: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Users table

(DynamoDB)

MySQL primary

(Amazon RDS)

Ap

pE

LB

AZ

your-app.com

Alert

Log

Mon

Page 35: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Users table

(DynamoDB)

MySQL primary

(Amazon RDS)

App Storage

(Amazon S3)

IAM instance profile

Ap

pE

LB

AZ

your-app.com

Alert

Log

Mon

Page 36: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Users table

(DynamoDB)

MySQL primary

(RDS)

App storage

(Amazon S3)

IAM instance profile

Ap

pE

LB

AZ

your-app.com

Alert

Log

Mon

Page 37: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Users table

(DynamoDB)

MySQL primary

(Amazon RDS)

App storage

(Amazon S3)

IAM instance profile

Ap

pE

LB

AZ

your-app.com

Alert

Log

Mon

AWS

CloudFormation

template

Page 38: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 39: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

http://amzn.to/1dh8QkU

http://amzn.to/1bSHOPN

http://amzn.to/1m11Z3K

Come see us:

Dev Chat in the

Developer Lounge

3:15pm

Thursday, Nov 13

Page 40: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 41: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Thank you!

Page 42: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

http://bit.ly/awsevals


Top Related