AWS for Start-ups - Cost Optimisation with AWS

Preview:

DESCRIPTION

A key step in the journey through the AWS Cloud - realise cost aware architectures, use elasticity to gain real and measurable benefit. Do more, use less. By Jonathon Southam, Start-ups UK

Citation preview

Cost optimisation with AWS

Jonathon Southam – Startups UK jsoutham@amazon.co.uk

A key step in the cloud journey Realize cost aware architectures

Use elasticity to gain real and measurable benefit Do more, use less

Cost Optimization

Fundamentals of AWS cost optimisation Cost optimisation in 5 steps Where to go next

Agenda

Fundamentals of cost optimization

Why optimize?

Why optimize?

Utility Compute and Storage are a utility so ‘turning off’ should be natural

Why optimize?

Utility Compute and Storage are a utility so ‘turning off’ should be natural

Efficiency Efficiency allows more to be done

within a given budget

Why optimize?

Utility Compute and Storage are a utility so ‘turning off’ should be natural

Efficiency Efficiency allows more to be done

within a given budget

Architecture Cost awareness drives

adoption of 21st century architectures

Turn off the lights

When you stop EC2 resources you stop paying for them

Be elastic

Support workloads with the right amount of horsepower to get the job

done

Continually optimize

Drive recurring and improving savings through cost aware architectures

Elastic capacity Instance types Reserved instances Spot instances Complementary services

5 Steps for cost optimization

Elastic capacity Instance types Reserved instances Spot instances Complementary services

5 Steps for cost optimization

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Serv

er

Load

Hour of day

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Serv

er

Load

Hour of day

Capacity of 1 Server

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Serv

er

Load

Hour of day

Capacity of 1 Server

Traditional capacity required

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Serv

er

Load

Hour of day

Capacity of 1 Server

Traditional capacity required

1 Server for 8 hours

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Serv

er

Load

Hour of day

Capacity of 1 Server

Traditional capacity required

1 Server for 8 hours 1 Server for 8 hours

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Serv

er

Load

Hour of day

Capacity of 1 Server

Traditional capacity required

1 Server for 8 hours 1 Server for 8 hours

1 Server for 8 hours

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Serv

er

Load

Hour of day

Capacity of 1 Server

Traditional capacity required

1 Server for 8 hours 1 Server for 8 hours

1 Server for 8 hours

1 Server for 8 hours

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Serv

er

Load

Hour of day

Capacity of 1 Server

Traditional capacity required

1/3rd Saving

2 am

Elastic Capacity

8 am

Elastic Capacity

12 am

Elastic Capacity

4 pm

Elastic Capacity

10 pm

Elastic Capacity

Time: +00h

<10 cores

Elastic Capacity

Time: +24h

>1500 cores

Elastic Capacity

Time: +72h

<10 cores

Elastic Capacity

Time: +120h

>600 cores

Elastic Capacity

Manually

Send an API call or use CLI to launch/terminate instances – Only need to specify capacity

change (+/-)

By Schedule

Scale up/down based on date and time

By Policy

Scale in response to changing conditions, based on user

configured real-time monitoring and alerts

Auto-Rebalance

Instances are automatically launched/terminated to ensure the application is

balanced across multiple Azs

Auto-scaling policies

Auto-scaling policies

Scaling base on Policy

Scale up and down base on metrics

Scaling Up policy - Double the group size if avg cpu > 80%

Scaling Down policy - Decrement by 10% if avg cpu < 30%

Scaling by Schedule

Scheduled Actions to meet known demand

Scheduled up to 31 days into the future

Recurring scheduled scaling activities

https://reinvent.awsevents.com/

Elastic capacity Instance types Reserved instances Spot instances Complementary services

5 Steps for cost optimization

Elastic capacity Instance types Reserved instances Spot instances Complementary services

5 Steps for cost optimization

Instance types

Start

Choose instance that meets your basic

requirements best

Match memory & virtual cores

Instance types

Start

Choose instance that meets your basic

requirements best

Match memory & virtual cores

Tune

Change instance size up or down based upon

monitoring

Use trusted advisor to assess

Instance types

Start

Choose instance that meets your basic

requirements best

Match memory & virtual cores

Tune

Change instance size up or down based upon

monitoring

Use trusted advisor to assess

Spread

Run instances across multiple availability

zones

Smaller sizes equals greater granularity

Instance types

Instance Amazon

CloudWatch Alarm

Free Memory

Free CPU Free HDD

… Custom Metrics

… At 1-min intervals

PUT 2 weeks

Know your usage

Choose your metric optimize for the metric

Choose your metric optimize for the metric

Cost per unit of work per instance(size)

Workload A

Optimal on 4x m1.xlarge

Workload B

Optimal on 10x m1.medium

Workload C

Optimal on 2x m3.xxlarge

Choose your metric optimize for the metric

Cost per unit of work per instance(size)

100 concurrent jobs on 10 x m1.large @ $0.24 / hr = $ 0.024 / job

300 concurrent jobs on 10 x m3.xlarge @ $0.50 / hr = $ 0.016 / job

vs

Choose your metric optimize for the metric

Think workload density Don’t focus on instance hourly rate per se

Master Account

aws.invoices@mycompany.com

Division B admin@divisionB.com

User2 Dev2 Admin2

IAM

Master Account

aws.invoices@mycompany.com

consolidated billing information

Division B admin@divisionB.com

User2 Dev2 Admin2

IAM

Tags: Own=Div Proj=P

Tags: Own=Div Proj=Q

Tags: Own=Div Proj=R

Master Account

aws.invoices@mycompany.com

consolidated billing information Tags: (key-value)

e.g Own=Div Proj=R

Operating Co. A admin@opcoa.com

User1 Dev1 Admin1

IAM

Tags: Own=OpCo Proj=A

Tags: Own=OpCo Proj=B

Tags: Own=OpCo Proj=C

Division B admin@divisionB.com

User2 Dev2 Admin2

IAM

Tags: Own=Div Proj=P

Tags: Own=Div Proj=Q

Tags: Own=Div Proj=R

Business Unit C admin@busUnitC.com

User3 Dev3 Admin3

IAM

Tags: Own=BusC Proj=X

Tags: Own=BusC Proj=Y

Tags: Own=BusC Proj=Z

Master Account

aws.invoices@mycompany.com

consolidated billing information

Operating Co. A admin@opcoa.com

User1 Dev1 Admin1

IAM

Tags: Own=OpCo Proj=A

Tags: Own=OpCo Proj=B

Tags: Own=OpCo Proj=C

Division B admin@divisionB.com

User2 Dev2 Admin2

IAM

Tags: Own=Div Proj=P

Tags: Own=Div Proj=Q

Tags: Own=Div Proj=R

Business Unit C admin@busUnitC.com

User3 Dev3 Admin3

IAM

Tags: Own=BusC Proj=X

Tags: Own=BusC Proj=Y

Tags: Own=BusC Proj=Z

Master Account

aws.invoices@mycompany.com

consolidated billing information

Operating Co. A admin@opcoa.com

User1 Dev1 Admin1

IAM

Tags: Own=OpCo Proj=A

Tags: Own=OpCo Proj=B

Tags: Own=OpCo Proj=C

Division B admin@divisionB.com

User2 Dev2 Admin2

IAM

Tags: Own=Div Proj=P

Tags: Own=Div Proj=Q

Tags: Own=Div Proj=R

Business Unit C admin@busUnitC.com

User3 Dev3 Admin3

IAM

Tags: Own=BusC Proj=X

Tags: Own=BusC Proj=Y

Tags: Own=BusC Proj=Z

Master Account

aws.invoices@mycompany.com

consolidated billing information

Programmatic billing access

S3 CSV

Operating Co. A admin@opcoa.com

User1 Dev1 Admin1

IAM

Tags: Own=OpCo Proj=A

Tags: Own=OpCo Proj=B

Tags: Own=OpCo Proj=C

Division B admin@divisionB.com

User2 Dev2 Admin2

IAM

Tags: Own=Div Proj=P

Tags: Own=Div Proj=Q

Tags: Own=Div Proj=R

Business Unit C admin@busUnitC.com

User3 Dev3 Admin3

IAM

Tags: Own=BusC Proj=X

Tags: Own=BusC Proj=Y

Tags: Own=BusC Proj=Z

Master Account

aws.invoices@mycompany.com

consolidated billing information

Programmatic billing access

S3 CSV

Business

Basic

Developer

Enterprise

Offering

24x7x365 ✓

Forum Access ✓

Documentation ✓

Access to support Phone, Chat,

Email

Named Contacts 5

Fastest Response Time 1 Hour

Architecture Support Use Case

Guidance

Best Practice ✓

Diagnostics Tools ✓

Direct Routing ✓

3rd Party Software ✓

Trusted Advisor ✓

Elastic capacity Instance types Reserved instances Spot instances Complementary services

5 Steps for cost optimization

Elastic capacity Instance types Reserved instances Spot instances Complementary services

5 Steps for cost optimization

Unix/Linux instances start at $0.02/hour

Pay as you go for compute power

Low cost and flexibility

Pay only for what you use, no up-front commitments or long-term contracts

Use Cases:

Applications with short term, spiky, or

unpredictable workloads;

Application development or testing

On-demand instances

Reserved instances

Unix/Linux instances start at $0.02/hour

Pay as you go for compute power

Low cost and flexibility

Pay only for what you use, no up-front commitments or long-term contracts

Use Cases:

Applications with short term, spiky, or

unpredictable workloads;

Application development or testing

On-demand instances

1- or 3-year terms

Pay low up-front fee, receive significant hourly discount

Low Cost / Predictability

Helps ensure compute capacity is available

when needed

Use Cases:

Applications with steady state or predictable usage

Applications that require reserved capacity,

including disaster recovery

Reserved instances

Reserved instances

Unix/Linux instances start at $0.02/hour

Pay as you go for compute power

Low cost and flexibility

Pay only for what you use, no up-front commitments or long-term contracts

Use Cases:

Applications with short term, spiky, or

unpredictable workloads;

Application development or testing

On-demand instances

1- or 3-year terms

Pay low up-front fee, receive significant hourly discount

Low Cost / Predictability

Helps ensure compute capacity is available

when needed

Use Cases:

Applications with steady state or predictable usage

Applications that require reserved capacity,

including disaster recovery

Reserved instances

Reserved instances

> 80% utilization Lower costs up to 58%

Use Cases: Databases, Large Scale HPC, Always-on infrastructure, Baseline

Heavy utilization RI

Unix/Linux instances start at $0.02/hour

Pay as you go for compute power

Low cost and flexibility

Pay only for what you use, no up-front commitments or long-term contracts

Use Cases:

Applications with short term, spiky, or

unpredictable workloads;

Application development or testing

On-demand instances

1- or 3-year terms

Pay low up-front fee, receive significant hourly discount

Low Cost / Predictability

Helps ensure compute capacity is available

when needed

Use Cases:

Applications with steady state or predictable usage

Applications that require reserved capacity,

including disaster recovery

Reserved instances

Reserved instances

> 80% utilization Lower costs up to 58%

Use Cases: Databases, Large Scale HPC, Always-on infrastructure, Baseline

Heavy utilization RI

41-79% utilization Lower costs up to 49%

Use Cases: Web applications, many heavy processing tasks, running much of the time

Medium utilization RI

Unix/Linux instances start at $0.02/hour

Pay as you go for compute power

Low cost and flexibility

Pay only for what you use, no up-front commitments or long-term contracts

Use Cases:

Applications with short term, spiky, or

unpredictable workloads;

Application development or testing

On-demand instances

1- or 3-year terms

Pay low up-front fee, receive significant hourly discount

Low Cost / Predictability

Helps ensure compute capacity is available

when needed

Use Cases:

Applications with steady state or predictable usage

Applications that require reserved capacity,

including disaster recovery

Reserved instances

Reserved instances

> 80% utilization Lower costs up to 58%

Use Cases: Databases, Large Scale HPC, Always-on infrastructure, Baseline

Heavy utilization RI

41-79% utilization Lower costs up to 49%

Use Cases: Web applications, many heavy processing tasks, running much of the time

Medium utilization RI

15-40% utilization Lower costs up to 34%

Use Cases: Disaster Recovery, Weekly / Monthly reporting, Elastic Map Reduce

Light utilization RI

Best RI for Utilisation

$-

$2,000

$4,000

$6,000

$8,000

$10,000

$12,000

$14,000

$16,000

$18,000

Heavy

Medium

Light

O-Demand

Best RI for Utilisation

$-

$2,000

$4,000

$6,000

$8,000

$10,000

$12,000

$14,000

$16,000

$18,000

Heavy

Medium

Light

O-Demand

0

2

4

6

8

10

12

14

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

On Demand

Light Utilization RI

Medium Utilization RI

Heavy utilization RI

Optimizing costs with RIs

https://reinvent.awsevents.com/

Elastic capacity Instance types Reserved instances Spot instances Complementary services

5 Steps for cost optimization

Elastic capacity Instance types Reserved instances Spot instances Complementary services

5 Steps for cost optimization

Unix/Linux instances start at $0.02/hour

Pay as you go for compute power

Low cost and flexibility

Pay only for what you use, no up-front commitments or long-term contracts

Use Cases:

Applications with short term, spiky, or

unpredictable workloads;

Application development or testing

On-demand instances

1- or 3-year terms

Pay low up-front fee, receive significant hourly discount

Low Cost / Predictability

Helps ensure compute capacity is available

when needed

Use Cases:

Applications with steady state or predictable usage

Applications that require reserved capacity,

including disaster recovery

Reserved instances

Spot instances

Unix/Linux instances start at $0.02/hour

Pay as you go for compute power

Low cost and flexibility

Pay only for what you use, no up-front commitments or long-term contracts

Use Cases:

Applications with short term, spiky, or

unpredictable workloads;

Application development or testing

On-demand instances

1- or 3-year terms

Pay low up-front fee, receive significant hourly discount

Low Cost / Predictability

Helps ensure compute capacity is available

when needed

Use Cases:

Applications with steady state or predictable usage

Applications that require reserved capacity,

including disaster recovery

Reserved instances

Bid on unused EC2 capacity

Spot Price based on supply/demand, determined automatically

Cost / Large Scale, dynamic workload handling

Use Cases:

Applications with flexible start and end times

Applications only feasible at very low compute prices

Spot instances

Spot instances

100%

Achieving economies of scale

Time

Reserved capacity

100%

Achieving economies of scale

Time

On

Reserved capacity

100%

On-demand

Time

Achieving economies of scale

On

Reserved capacity

100%

On-demand

Time

Achieving economies of scale

Spot

If your bid > spot price You get an instance

If your bid < spot price Your instance is terminated

Architecting for spot instances

Decouple components

Separate interactive & backend processing

Use frameworks such as Elastic MapReduce

Design for interruption

Use SQS, SWF

Place data in a durable store such as S3, SimpleDB or DynamoDB

Save progress regularly

Job Flow

14 Hours

Duration:

Scenario #1

EMR with spot instances

#1: Cost without Spot 4 instances *14 hrs * $0.50 = $28

Job Flow

14 Hours

Duration:

Scenario #1

Duration:

Job Flow

7 Hours

Scenario #2

EMR with spot instances

#1: Cost without Spot 4 instances *14 hrs * $0.50 = $28

Job Flow

14 Hours

Duration:

Scenario #1

Duration:

Job Flow

7 Hours

Scenario #2

EMR with spot instances

#1: Cost without Spot 4 instances *14 hrs * $0.50 = $28

#2: Cost with Spot 4 instances *7 hrs * $0.50 = $14 + 5 instances * 7 hrs * $0.25 = $8.75

Total = $22.75

Job Flow

14 Hours

Duration:

Scenario #1

Duration:

Job Flow

7 Hours

Scenario #2

EMR with spot instances

#1: Cost without Spot 4 instances *14 hrs * $0.50 = $28

#2: Cost with Spot 4 instances *7 hrs * $0.50 = $14 + 5 instances * 7 hrs * $0.25 = $8.75

Total = $22.75

Time Savings: 50% Cost Savings: ~22%

Spot market Bidding strategies

0%

2%

4%

6%

8%

10%

12%

14%

16%

18%

20%

Perc

enta

ge o

f th

e D

istr

ibu

tio

n

Bid Price as Percentage of the On-Demand Price

Bid Distribution (for 3 months period)

Spot bidding strategies

0%

2%

4%

6%

8%

10%

12%

14%

16%

18%

20%

Perc

enta

ge o

f th

e D

istr

ibu

tio

n

Bid Price as Percentage of the On-Demand Price

Bid Distribution (for 3 months period)

Spot bidding strategies

Bid near the RI hourly price

0%

2%

4%

6%

8%

10%

12%

14%

16%

18%

20%

Perc

enta

ge o

f th

e D

istr

ibu

tio

n

Bid Price as Percentage of the On-Demand Price

Bid Distribution (for 3 months period)

Spot bidding strategies

Bid above the spot price history

0%

2%

4%

6%

8%

10%

12%

14%

16%

18%

20%

Perc

enta

ge o

f th

e D

istr

ibu

tio

n

Bid Price as Percentage of the On-Demand Price

Bid Distribution (for 3 months period)

Spot bidding strategies

Bid near the on-demand

price

0%

2%

4%

6%

8%

10%

12%

14%

16%

18%

20%

Perc

enta

ge o

f th

e D

istr

ibu

tio

n

Bid Price as Percentage of the On-Demand Price

Bid Distribution (for 3 months period)

Spot bidding strategies

Bid above the on-demand price

Bid near the reserved hourly price You only pay for a full hour

Bid near the reserved hourly price You only pay for a full hour

(if you are interrupted the hour is free)

Bid above the on-demand price Expect fewer interruptions

Bid above the on-demand price Expect fewer interruptions

(only pay the spot price)

Implement cost aware architecture Flip from spot to on-demand as price dictates

Spot customers

Elastic capacity Instance types Reserved instances Spot instances Complementary services

5 Steps for cost optimization

Elastic capacity Instance types Reserved instances Spot instances Complementary services

5 Steps for cost optimization

$0.025 per hour

Web Servers

Availability Zone

Elastic Load

Balancer DNS

Web Servers

$0.06 per hour

(small instance)

Availability Zone

$0.025 per hour

Web Servers

Availability Zone

EC2 instance

+ software LB

Elastic Load

Balancer DNS

DNS

VS

SQS queue

Consumers Producer

$0.01 per

10,000 Requests ($0.000001 per Request)

Producer

SQS queue

Consumers

Consumers Producer

EC2 instance

+ software queue

$0.01 per

10,000 Requests ($0.000001 per Request)

$0.06 per hour

(small instance)

VS

Software vs Services

Software on EC2

Pros: Use custom features

Cons:

Requires an instance SPOF

Limited to one AZ DIY administration

AWS Services

ELB, SNS, SQS, SES, SWF, DynamoDB etc

Pros: Pay as you go

Scalability Availability

High performance

Summary

Elastic capacity Instance types Reserved instances Spot instances Complementary services

5 Steps for cost optimization

Where to go next

aws.amazon.com/economics

aws.amazon.com/calculator

Useful links

Useful links

http://aws.amazon.com/whitepapers

Recommended