amazon web services - elastic beanstalk

Post on 15-Jan-2015

5.199 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

In this presentation, Jeff Barr introduces AWS, with a focus on EC2, and then shows how to use AWS Elastic Beanstalk with Git-based deployment of a PHP application.

TRANSCRIPT

Amazon Web Services – Elastic BeanstalkJeff Barr – Senior Evangelist

@jeffbarr

My Background

Education:• BS in Computer Science, The American University, 1985• Grad student in Digital Media, University of Washington, 2010-Present

Background:• Microsoft Visual Studio team• Consulting to startups and VC’s• Amazon employee since 2002

Author, “Host Your Web Site in the Cloud”

Email: jbarr@amazon.com

Twitter: @jeffbarr

Copyright © 2011, Amazon Web Services LLC or its affiliates. All rights reserved.

What You Will Learn

• What are the Amazon Web Services?

• What are the principal AWS components?

• How do they fit together?

• How can I use AWS Elastic Beanstalk?

Amazon Web Services

• Launched in 2006

• Hundreds of thousands of customers in 190 countries

• Building-block IT services

• Sign up with a credit card at http://aws.amazon.com

AWS PLATFORM

Cloud-Powered Applications

Management & AdministrationAdministration

ConsoleIdentity & Access

Deployment Monitoring

Application Platform ServicesContent

DistributionMessaging

Parallel Processing

Libraries & SDKs

Foundation Services

Compute Storage Database Networking

Global Infrastructure

Availability Zones

RegionsEdge Locations

AWS Management Console

Region

Availability Zone

Amazon EC2 Architecture

EC2 Instance

Elastic IP Address

Security Group(s)

Load Balancing

Elastic Block

StorageCloudWatch

Auto Scaling

Ephemeral Storage

Amazon S3

EBS Snapshot

EBS Snapshot

Amazon Machine

Image (AMI)

EC2 – Regions and Availability Zones

Region – One of 7 distinct physical locations:

• Northern Virginia, San Francisco, Oregon, Tokyo, Singapore, Brazil, Ireland

Availability Zone• Physical infrastructure (1 or more data centers)• 2 or more AZ’s per Region• Fault tolerance across AZ’s

EC2 Instance

• Amazon EC2: A Virtual Server in the Cloud

• Provision and boot new servers in minutes

• Boot from AMI (Amazon Machine Image)

• Your choice of Linux or Windows

• Quickly scale capacity up or down

• Deploy across Regions and Availability Zones for reliability

• Choose from 14 different instance types:

• CPU power

• RAM

• Local disk

• Network speed

EC2 Security Group

• Virtual firewall• Control access to instance• Default configuration: no access

EC2 Elastic IP Address

• Fixed IP address• Map to any EC2 instance in a Region• Retain address after switching instances

EC2 Elastic Load Balancer

Distribute traffic to an array of EC2 instances• Scale up or scale down• Health checks• Traffic goes to healthy instances• Configurable list of ports

Amazon CloudWatch

• Tracks and stores AWS and user-defined metrics• 2 week retention period• Detect issues• Raise alerts

EC2 Auto Scaling

• Control number of running EC2 instances• Scale up or down as needed• Drive decisions based on CloudWatch metrics

• CPU load• Network traffic

• No direct console UI at present:• Command line• API• Elastic Beanstalk

• Auto-scaling group• Instance collection• Actions (rules)

EC2 Elastic Block Storage (EBS)

• Virtual disk volumes• 1 GB – 1 TB per volume• Create and attach to EC2 instance• Format and write data• Snapshot and restore• Provison desired IOPS (up to 1000 per volume)

What’s Next?So…those are all of the parts!

Can we put them all together?

AWS Elastic Beanstalk- Intro

• Easy to deploy and manage applications in AWS• Application Container / PaaS (Platform-as-a-Service)• Get started at no charge (free usage tier)

• You:• Create and upload application

• Elastic Beanstalk:• Capacity provisioning (EC2)• Load balancing (ELB)• Auto-scaling (Auto Scaling)• Application health monitoring (CloudWatch)

AWS Elastic Beanstalk - Environments

.NET

• AWS SDK for .NET• Visual Studio Toolkit• Microsoft Web Deploy• Upload ZIP• Microsoft Windows + IIS

Java

AWS SDK for Java

Eclipse Toolkit

Upload WAR file

Linux + Tomcat + Apache

PHP

• AWS SDK for PHP• Existing dev tools• Git-based deployment• GIT PUSH• Linux + Apache

AWS Elastic Beanstalk – Development & Deployment

AWS Elastic Beanstalk in Action (1)

Create some code (index.php)

Check code into Git:

<devserver>: git initInitialized empty Git repository in /home/jeff/jeffbarr_core/projects/bs_demo_1/.git/

<devserver>: git add .

<devserver>: git commit -m"Initial check-in."[master (root-commit) fc57da3] Initial check-in. 1 files changed, 8 insertions(+), 0 deletions(-) create mode 100644 index.php

AWS Elastic Beanstalk in Action (2)

Create Beanstalk Application

AWS Elastic Beanstalk in Action (2)

Wait for Application to Launch (Several Minutes)

AWS Elastic Beanstalk in Action (3)

AWS Elastic Beanstalk in Action (4)

Install and configure AWS DevTools

<devserver>: git aws.configAWS Access Key: ……………………AWS Secret Key: ……………………………AWS Region: us-east-1AWS Elastic Beanstalk Application: My First Elastic Beanstalk ApplicationAWS Elastic Beanstalk Environment: Default-Environment

AWS Elastic Beanstalk in Action (5)

Push new application code:

<devserver>: git aws.pushCounting objects: 3, done.Compressing objects: 100% (2/2), done.Writing objects: 100% (3/3), 307 bytes, done.Total 3 (delta 0), reused 0 (delta 0)remote:To https://180P9FEG65H0CMCANER2:20120601T212315Zac4b3d5b9f887ae461b3079927762543d94a83855a2ad0beed66b2c27b3b435e@git.elasticbeanstalk.us-east-1.amazonaws.com/repos/4d7920466972737420456c6173746963204265616e7374616c6b204170706c6963617469\6f6e/Default-Environment

AWS Elastic Beanstalk in Action (6)

AWS Elastic Beanstalk in Action (7)

AWS Free Usage Tier

Next Steps for You

• Sign up for free account at http://aws.amazon.com/free/

• Build and deploy your first PHP application

• Read AWS blog at http://aws.typepad.com

• Send questions my way – jbarr@amazon.com

Thanks for Listening!

jbarr@amazon.com

@jeffbarr

top related