Amazon DevPay
Developer Guide (API Version 2007-12-01)

The Cost of AWS Services


Amazon DevPay is not accepting new seller accounts at this time. Please see AWS Marketplace for information on selling your applications on Amazon Web Services.

This section gives information about the money you're responsible for paying to AWS to cover the cost of AWS services your customers use (e.g., Amazon S3 or Amazon EC2). The first section covers the basics, and the subsequent sections give details about how we handle particular AWS service costs.

The Basics

At the end of each month, you owe AWS the costs of the AWS service (e.g., Amazon S3 or Amazon EC2) each customer used during the month. The next sections cover some important details to understand.

You Pay Only What the Customer Has Already Covered

We charge you for the costs of AWS services only after the customer pays you first. This way, you can use your customers' payments to help cover the costs they incur. Also, the amount we collect never exceeds what the customer has actually paid you. In general, this means that if a customer doesn't pay you, we don't charge you for the costs of the AWS services the customer used. For more information about how this works in real situations involving monthly fees, see If a Customer Doesn't Pay the Monthly Bill.

You Pay Any Costs Not Covered by Expected Revenue

Typically the revenue a customer generates in a given month will be greater than the cost of the AWS services the customer used (this assumes you've priced your product so that you regularly make money and don't lose money). However, depending on how you price your product, you might have situations where the revenue a particular customer generates is less than the corresponding cost of the AWS services used. In this case, you're responsible for the difference, regardless of whether the customer pays. For example, if your customer owes you $10, but has used $15 worth of Amazon S3, you're responsible for paying AWS the $15. But, if the customer doesn't pay the $10, then you're responsible only for the $5 difference.

The Cost of Tiered Usage Types

This section describes how we charge you for usage types that have a tiered cost structure, such as data transfer out and Amazon S3 storage. The section also describes how we determine your value-add per customer given that the usage type has a tiered cost structure applicable across all your customers of a particular DevPay product.


Although this section focuses specifically on one particular usage type (data transfer out), the concepts apply to any usage type that has a tiered cost structure.

How We Calculate Your Costs

The AWS services have tiered costs for data transfer out ($0.17 per GB for the first 10 TB/month data downloaded, $0.13 per GB for the next 40 TB/month, $0.11 per GB for the next 100 TB/month, and $0.10 per GB for any additional bandwidth beyond 150 TB).

When we charge you for tiered data transfer out costs, we apply the tiered discount on a per-product basis. In other words, if you have more than one DevPay product, we don't sum the data transfer out costs across all your DevPay products and then apply the tiered discount. Instead, we sum the costs used by all the customers using one of your particular DevPay products during the month and then apply the tiered discount to that particular product's data transfer out accordingly. We then repeat that for each DevPay product you have.

For example, if during April, your customers download 8 TB for Product A, and 4 TB for Product B, you are charged $0.17 per GB for Product A's 8 TB and $0.17 per GB for Product B's 4 TB; you aren't charged as if you used a total of 12 TB ($0.17 per GB for 10 TB and then $0.13 per GB for 2 TB).

Note that you can charge your customers for data transfer out and use a tiered pricing structure like AWS does. For information about setting tiered pricing for your product's usage-based price components, see Tiered Usage-Based Pricing.

How We Calculate Your Value-Add

Each month, we charge you 3% of your value-add per customer (for more information, see DevPay Fees). Given that we charge you for data transfer out based on the sum total of all your customers' use of the product, how do we calculate your value-add per customer?

We first calculate the cost-per-unit of data transfer out across all your customers and then apply that value to determine each individual customer's cost for data transfer out. The value-add for a particular customer is then the difference between the amount the customer pays you for data transfer out (based on your product's price) and the calculated cost for data transfer out for that customer. Following is a simple (although unlikely) example that illustrates the point.

Example Value-Add Calculation

In this example, you have only two customers: Joe and Bill. Joe uses 8 TB of data transfer out during the month, and Bill uses 4 TB (for a total of 12 TB used).

In turn, AWS charges you $0.17 per GB for the first 10 TB of data transfer out used, and $0.13 per GB for the next 40 TB used. This translates into $174.08 per TB for the first 10 TB, and $133.12 per TB for the next 40 TB (remember that 1 TB = 1024 GB). This means for the 12 TB Joe and Bill have used, the AWS costs you owe are: ($174.08 * 10 TB) + ($133.12 * 2 TB) = $1740.80 + $266.24 = $2007.04 (as shown in the following figure).

							Data transfer out value-add example: usage

The cost-per-unit of data transfer out for the month is therefore $2007.04 / 12 TB = $167.25 per TB.

You charge your customers $0.18 per GB data transfer out (or $184.32 per TB). Therefore, Joe pays you $184.32 * 8 TB = $1474.56, as shown in the following figure. Your value-add for Joe is the price he pays you, minus the per-unit cost of data transfer out multiplied by his usage: $1474.56 - ($167.25 * 8 TB) = $1474.56 - $1338.00 = $136.56.

							Data transfer out value-add example: value-add for Joe

Bill pays you $184.32 * 4 TB = $737.28, as shown in the following figure. Your value-add for Bill is $737.28 - ($167.25 * 4 TB) = $737.28 - $669.00 = $68.28.

							Data transfer out value-add example: value-add for Bill

The Cost of Regional Bandwidth

One of the costs of using Amazon EC2 is regional data transfer. You can charge your customers for their use of regional data transfer by including it in the price of your paid and supported AMIs.

Regional data transfer covers two items:

  • Data transferred in and out between instances in different availability zones in the same region (for information about availability zones, go to the Amazon Elastic Compute Cloud Developer Guide)

  • Data transferred in and out between instances inside the Amazon EC2 network using public IP addresses or elastic IP addresses, even if the instances are in the same availability zone

AWS charges for both regional data transfer in and regional data transfer out of Amazon EC2 instances. This means that if both instances involved in the transfer are instances of your paid AMI, the customer pays you for your regional data transfer price at both ends of the data transfer. You also pay the corresponding AWS cost for regional data transfer at both ends of the data transfer.

For example, let's say AWS charges $0.01 per GB for regional data transfer, and you charge your customers $0.05 per GB. The following figure shows the price the customer pays you and the corresponding cost you pay AWS for data transfer in and out of the instances.

					Regional data transfer: two instances of your paid AMI

By contrast, what if the transfer is between an instance of your paid AMI and an instance of the customer's personal AMI? The following figure shows this situation.

					Regional data transfer: one instance of your paid AMI

Costs You're Not Responsible For

You're responsible for paying the costs of the AWS services your customers use. There are several exceptions to this:

  • Amazon EC2 elastic IP addresses

  • Amazon Elastic Block Store (Amazon EBS)

  • Elastic Load Balancing

  • Auto Scaling

  • Amazon CloudWatch


Currently you can't use Elastic Load Balancing (either by itself or in conjunction with Auto Scaling) with instances of paid or supported AMIs.

You're not responsible for the AWS costs your customers incur for these features, and you can't include charges for the features in the price of your DevPay product. Why not?

You can't because AWS bills Amazon EC2 users directly for their use of the features. We do this because customers can use the features with any instances they launch (or that Auto Scaling launches on their behalf). That usage is associated with the customer's Amazon EC2 account, not the instance itself or the owner of the AMI. The instance can be of your paid AMI, someone else's paid AMI, or the customer's own AMI. Because of this separation, you can't charge for the features in your product's price. For elastic IP addresses, this applies to the charges for having—but not using—elastic IP addresses and for remapping elastic IP addresses beyond the number of free mappings allowed each month. For all of the other features, this applies to all charges related to the feature's use. For a list of the usage-based charges you can include in your product's price, see Allowed Usage-Based Charges.