Getting Started with EC2 Spot - November 2016 Webinar Series

Post on 16-Apr-2017

403 views 1 download

Transcript of Getting Started with EC2 Spot - November 2016 Webinar Series

Getting Started with Amazon EC2 Spot: Save up to 90%

on your EC2 Bill

Chad Schmutzer, Solutions Architect - EC2 Spot

On-Demand

Pay for compute capacity by the hour with no long-term commitments

For spiky workloads, or to define needs

AWS EC2 Consumption Models

Reserved

Make a low, one-time payment and receive a significant discount on the hourly charge

For committed utilization

Spot

Bid for unused capacity, charged at a Spot Price which fluctuates based on supply and demand

For time-insensitive or transient workloads

Spare capacity at scale

AWS has more than a million active customers in 190 countries.

Amazon EC2 instance usage has increased 93% YoY, comparing Q4 2014 and Q4 2013, not including Amazon use.

With Spot the rules are simple

Capacity pools

AZ1

AZ2

SYD Total Capacity

T2 C4 M4 I2 R3 D2

Shared

Dedicated

Shared

Dedicated

$0.27 $0.29$0.50

1b 1c1a

8XL

$0.30 $0.16$0.214XL

$0.07 $0.08$0.082XL

$0.05 $0.04$0.04XL

$0.01 $0.04$0.01L

C3

$1.76

OnDemand

$0.88

$0.44

$.22

$0.11

Show me the markets!

Each instance family

Each instance size

Each Availability Zone

In every region

Is a separate Spot Market

50% Bid

75% Bid

You pay the market price

Bid Price Vs Market Price

25% Bid

Amazon EC2 Spot – in the wild

1) We make this easy using the Spot bid advisor

2) With deliberate pool selection and bidding, you will keep your Spot instance as long as you need to.

3) And with new features like Spot fleet diversified we do the heavy lifting for you...

Spot Bid Advisor – aws-spot-labs

EC2 Best practices

Fault tolerance

for Spot

Stateless Multi-AZ Loosely coupled Instance Flexibility

Example customer cases 

Why use Spot – customer examples

39 years of drug research re-processed, using over 80,000 cores, in 9 hours for $4,232

- Approximately 87,000 compute cores at peak- Estimated 39 years of computational chemistry performed in 9 hours- Three candidate compounds successfully identified

“By using AWS Spot instances, we've been able to save 75% a month simply by changing four lines of code. It makes perfect sense for saving money when you're running continuous integration workloads or pipeline processing.” - Matthew Leventi, Lead Engineer, Lyft

Why use Spot – customer examples

The $9 Billion Experiment

Why use Spot – customer examples

Why use Spot – customer examples

Scaling up as many as 1000 Spot instances a day to handle real time ad delivery

Petabyte-Scale Data Pipelines with Docker, Luigi and Elastic Spot Instances

EC2 Spot fleet!

Spot fleet helps you

Launch Thousands of Spot Instanceswith one RequestSpotFleet call.

Get Best PriceFind the lowest priced horsepower that works for you.orGet Diversified ResourcesDiversify your fleet. Grow your availability.

And

Apply Custom WeightingCreate your own capacity unit based on your application needs

Diversification with EC2 Spot fleet

Multiple EC2 Spot instances selected

Multiple Availability Zones selected

Pick the instances with similar performance characteristics e.g. c3.large, m3.large, m4.large, r3.large, c4.large.

EC2 Spot fleet

Lets see New Auto Scaling Spot fleet in action..

Queue based processing

Stateless Applications (e.g. web tiers)

Docker powered by ECS

AWS cloud

Region

Amazon S3

DynamoDB

Amazon SQS

CloudWatch172.16.0.0/16

Internet gateway

region-1a - 172.16.0.0/20

region-1b - 172.16.16.0/20

region-1c - 172.16.32.0/20

region-1d - 172.16.48.0/20

ClusterController

c3.4x Spot

r3.4x Spot c3.4x Spot

r3.4x Spot

c3.4x Spot

r3.4x Spot

Queue based processing

Stateless Web Application

Elastic LoadBalancing

Stateless Web Servers

(Spot)

Stateless Web Servers

(Spot)

Session State Data

Spot fleet

Availability Zone A

Availability Zone B

Stateless Web Servers

(Spot)

Stateless Web Servers

(Spot)

Docker powered by ECS

Task

Task TaskTask

Results - Web Application50 instances requested, over 30 days.

- Never dropped below 45 instances

- 85% discount if you wanted 50 and could withstand dropping to 45

- If you only wanted 45 the discount is still 83%

Results - GridRequested 1000 vCores over 30 days

Minimum 960 vCoresMode 1024 vCoresAverage 1012 vCores

Average Price of $0.012 per vCore

Savings of over 80%

Some additional considerations

Session state

Elastic Load Balancing

Two minute warning

Session state for the web application in DynamoDB. • Data replicated across availability zones.

You can also choose other databases to maintain state in your architecture.

• Amazon RDS using Multi-AZ deployments• Amazon Elasticache

Where to store the state?

Since Spot fleet is configured to span across multiple Availability Zones, we highly recommend enabling cross-zone load balancing for the load balancer.

To allow in-flight requests to complete when de-registering Spot instances that are about to be terminated, connection draining can be enabled on the load balancer with a timeout of 90 seconds.

Elastic Load Balancing

Capitalizing on two minute warning

When the Spot price exceeds your bid price, the instance will receive a two-minute warning

Check for the 2 minute spot instance termination notification every 5 seconds leveraging a script invoked at instance launch

Sample script – two minutes left!

1) Check for 2 minute warning

2) If YES, detach instance from ELB

3) OTHERWISE, do nothing

4) Sleep for 5 seconds

$ if curl -s http://169.254.169.254/latest/meta- data/spot/termination-time | \ grep -q .*T.*Z; then instance_id=$(curl -s http://169.254.169.254/latest/meta-data/instance-id); \ aws elb deregister-instances-from-load-balancer \ --load-balancer-name my-load-balancer \ --instances $instance_id; /env/bin/flushsessiontoDBonterminationscript.sh; fi

Batch Processing with Amazon EC2 Spot

Batch oriented applications can leverage on-demand processing using EC2 Spot to save up to 90% cost:

Batch Processing with Amazon EC2 Spot

Monte Carlo simulation

Molecular modeling

Media processing

High energy simulations

DEMO!

Thank you!

Appendix

Reference LinksEC2 Spot Documentation:http://aws.amazon.com/ec2/spot/ http://aws.amazon.com/ec2/spot/bid-advisor/ http://aws.amazon.com/ec2/spot/getting-started/ http://aws.amazon.com/ec2/spot/faqs/ http://aws.amazon.com/ec2/spot/testimonials/

User Guidehttp://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.htmlhttp://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet.html

Helpful AWS Blog Postshttps://aws.amazon.com/blogs/aws/focusing-on-spot-instances-lets-talk-about-best-practices/ https://aws.amazon.com/blogs/aws/building-price-aware-applications-using-ec2-spot-instances/https://aws.amazon.com/blogs/compute/cost-effective-batch-processing-with-amazon-ec2-spot/https://aws.amazon.com/blogs/compute/dynamic-scaling-with-ec2-spot-fleet/