(arc307) infrastructure as code | aws re:invent 2014

50
November 12, 2014 | Las Vegas David Winter, Alex CorleyAmazon Web Services Tom WanielistaSimple.com

Upload: amazon-web-services

Post on 02-Jul-2015

1.625 views

Category:

Technology


2 download

DESCRIPTION

While many organizations have started to automate their software develop processes, many still engineer their infrastructure largely by hand. Treating your infrastructure just like any other piece of code creates a ''programmable infrastructure'' that allows you to take full advantage of the scalability and reliability of the AWS cloud. This session will walk through practical examples of how AWS customers have merged infrastructure configuration with application code to create application-specific infrastructure and a truly unified development lifecycle. You will learn how AWS customers have leveraged tools like CloudFormation, orchestration engines, and source control systems to enable their applications to take full advantage of the scalability and reliability of the AWS cloud, create self-reliant applications, and easily recover when things go seriously wrong with their infrastructure.

TRANSCRIPT

Page 1: (ARC307) Infrastructure as Code | AWS re:Invent 2014

November 12, 2014 | Las Vegas

David Winter, Alex Corley—Amazon Web Services

Tom Wanielista—Simple.com

Page 2: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 3: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 4: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 5: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 6: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 7: (ARC307) Infrastructure as Code | AWS re:Invent 2014

echo "Bulding Instance"

echo "ec2run $ami -t m2.2xlarge -n 1 -k $ec2region -g $sec -s

$new_subnetID"

ec2run $ami -t $ec2type -n 1 -k $ec2region -g $sec -s $new_subnetID

| tee log/new_instance

cat log/new_instance

i=`cat log/new_instance | grep INSTANCE | cut -f2`

sleep 5

echo "Creating eth1 network interface for $i"

echo ec2-create-network-interface -d "$hostname - eth1" -g $sec

$new_subnetID

ec2-create-network-interface -d "$hostname - eth1" -g $sec

$new_subnetID | tee log/new_nic

nic=`cat log/new_nic | grep NETWORKINTERFACE| cut -f2`

Page 8: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 9: (ARC307) Infrastructure as Code | AWS re:Invent 2014

#Main Instance

if wf and wf['workflow']['instance'] == 0:

try:

self.stacks.update({'guid':wf['guid']},

{'$set':{'workflow.instance':2}})

reservation =

self.ec2_master.run_instances(wf['stack']['ami'],

instance_type=wf['stack']['instance_type'],

security_group_ids=[wf['stack']['security_group']],

subnet_id=wf['stack']['subnet_id'])

Page 10: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 11: (ARC307) Infrastructure as Code | AWS re:Invent 2014

aws.amazon.com/security/

Page 12: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 13: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 14: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 15: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 16: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 17: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 18: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 19: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 20: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 21: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 22: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 23: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 24: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 25: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 26: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 27: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 28: (ARC307) Infrastructure as Code | AWS re:Invent 2014

Network

Compute

Storage

Dev

Stage

Prod

Page 29: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 30: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 31: (ARC307) Infrastructure as Code | AWS re:Invent 2014

Tom Wanielista

Page 32: (ARC307) Infrastructure as Code | AWS re:Invent 2014

Prehistory

Page 33: (ARC307) Infrastructure as Code | AWS re:Invent 2014

PCI

Page 34: (ARC307) Infrastructure as Code | AWS re:Invent 2014

What we needed

Page 35: (ARC307) Infrastructure as Code | AWS re:Invent 2014

Security

Insight

Growth

Speed

Page 36: (ARC307) Infrastructure as Code | AWS re:Invent 2014

AWS CloudFormation

Amazon Virtual Public Cloud,

Amazon Machine Images (AMIs),

AWS Identity and Access Management (IAM) roles,

Instances, Auto Scaling Groups (ASGs),

Security Groups …

Page 37: (ARC307) Infrastructure as Code | AWS re:Invent 2014

cloudbank

Simple’s AMIs, IAM roles, instances,

ASGs, security groups …

Page 38: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 39: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 40: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 41: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 42: (ARC307) Infrastructure as Code | AWS re:Invent 2014

Benefits?

Page 43: (ARC307) Infrastructure as Code | AWS re:Invent 2014

You write code every day.

Page 44: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 45: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 46: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 47: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 48: (ARC307) Infrastructure as Code | AWS re:Invent 2014

<my_app/>

Page 49: (ARC307) Infrastructure as Code | AWS re:Invent 2014
Page 50: (ARC307) Infrastructure as Code | AWS re:Invent 2014

http://bit.ly/awsevals