Amazon DevPay and Paid AMIs
A paid AMI is an AMI that you sell to other Amazon EC2 users. They pay you according to the price you set. To be able to create a paid AMI, you use Amazon DevPay. What is Amazon DevPay?
Amazon DevPay is a billing and account management service that enables you to get paid for an AMI you create and that other Amazon EC2 users use. Amazon DevPay creates and manages the order pipeline and billing system for you. Your customers sign up for your AMI, and Amazon DevPay automatically meters their usage of Amazon EC2, bills them based on the pricing you set, and collects their payments. DevPay offers the following:
-
You can charge customers for your AMI; the charges can include recurring charges based on the customer's usage Amazon EC2, a fixed one-time charge, and a recurring monthly charge.
-
Your customers can easily sign up and pay for your AMI with their trusted Amazon.com accounts.
-
Your customers are authenticated, thus ensuring they have access only to what they should.
-
If your customers don't pay their bills, DevPay turns off their access to your AMI for you.
-
Amazon Payments handles payment processing.
Basic DevPay Flow
1 |
Your customer uses an Amazon.com account to sign up and pay for your AMI. The sign-up page indicates that you have teamed up with Amazon Payments to make billing easy and secure. |
2 |
Your customer pays the price you've defined to use your product. |
3 |
DevPay subtracts a fixed transaction fee and pays you the difference. |
4 |
You pay the costs of Amazon EC2 that your AMI used, and a percentage-based DevPay fee. |
For more information about Amazon DevPay, refer to the Amazon DevPay Developer Guide.
Summary of How Paid AMIs Work
With a paid AMI, your customers:
-
Must be signed up to use Amazon EC2 themselves
-
Buy your paid AMI and then launch instances of it
-
Always use their own AWS credentials when launching instances; you don't launch instances of your paid AMI for them with your credentials
-
Pay the price you set for the paid AMI, and not the normal Amazon EC2 rates
Important | |
---|---|
The discounts you get with Amazon EC2 Reserved Instances don't apply to Amazon DevPay products. That is, if you purchase Reserved Instances, you don't get the lower price associated with them when your customers launch your paid or supported AMIs. Also, if your customers purchase Reserved Instances, when they use your paid or supported AMIs, they continue to pay the price you specified for the use of your paid or supported AMIs. For more information about Reserved Instances, see Reserved Instance Concepts. |
You can also use Amazon EC2 and Amazon DevPay together with a supported AMI. For more information about supported AMIs, see Supported AMIs.
The following figure and table summarize the basic flow for creating and using paid AMIs.
Note | |
---|---|
Detailed information about most of the following steps is provided in the Amazon DevPay Developer Guide. |
Paid AMI Process
1 |
You create an AMI as described elsewhere in this guide. |
|||
2 |
You register a product with Amazon DevPay. For more information, see Product Registration. As part of this process, you provide a product description, product pricing, etc. This registration process creates a product code for the product and a URL where customers can sign up to use the product (called the purchase URL). |
|||
3 |
You use an Amazon EC2 command or API call to associate the product code with your AMI. For more information, see How to Associate a Product Code with an AMI. This makes the AMI a paid AMI. |
|||
4 |
You use an Amazon EC2 command or API call to share the AMI with select customers or the public. For more information, see How to Share Your Paid AMI.
|
|||
5 |
You make your paid AMI available for sale. To do this, you make the aforementioned purchase URL available. You can advertise your paid AMI in the Solutions Catalog on the AWS Developer Connection site and on the Amazon Machine Images (AMIs) page on the AWS Resource Center. |
|||
6 |
Customers use the purchase URL you provide to sign up for and purchase your product. If they're not already signed up for Amazon EC2, they'll be prompted to sign up. They purchase your product with their Amazon.com accounts. They must have the credentials needed to launch Amazon EC2 instances. At this point, they have the AMI ID (from step 5). |
|||
7 |
Customers then launch an Amazon EC2 instance specifying the AMI ID. Because you associated the shared AMI with the product code, the customers are charged at the rate you set. For more information, see Paying for AMIs. |
Note | |
---|---|
You can associate your DevPay product code with more than one AMI. However, a single AMI can be associated with only one product code. If you plan to sell multiple AMIs, you could sell them all under a single product code, or different product codes (by registering multiple DevPay products). For information about why you might choose a single product code or multiple product codes, go to If You Have Multiple AMIs to Sell in the Amazon DevPay Developer Guide. |
Each customer's bill for the AMI is displayed on their Application Billing page, which shows the activity for DevPay products. Also, at any time, you can confirm the customer is still currently subscribed to your product. For more information, refer to the Amazon DevPay Developer Guide.
Note | |
---|---|
In the preceding process, you associate your product code with your own AMI and sell the AMI as a DevPay product. There's another scenario for using DevPay with Amazon EC2 in which you sell software or a service to EC2 users and let them associate your product code with their own AMIs. For more information, see Supported AMIs. |
The Product Code and AMI Rebundling
Associating a product code with an AMI turns it into a paid AMI that EC2 users must sign up for to use. Can you ensure that the product code stays with the AMI if someone rebundles the AMI? The answer varies for Linux/UNIX AMIs and Windows AMIs. These are described in the following sections.
Linux/UNIX AMIs
If you give the customer root access to your paid Linux/UNIX AMI, the customer can rebundle it (for more information, see Creating an AMI). If your customer uses AWS tools to rebundle the AMI, the rebundled AMI inherits the product code. When launching instances of the rebundled AMI, the customer is still billed for usage based on your price. However, if the customer doesn't use the AWS tools when rebundling, the rebundled AMI won't inherit the product code, and the customer will pay normal Amazon EC2 rates and not your price. Also, a customer with root access could find some other way to remove the product code from the AMI.
When a customer contacts you for support for a paid AMI, you can confirm your product code is associated with the AMI and the customer's instance is currently running the AMI. For more information, go to How to Confirm an Instance Is Running with a Product Code.
If you have software installed on the AMI, the software can retrieve the instance metadata to determine if the product code is associated with the instance. For more information, see How to Get the Product Code from Within an Instance.
Keep in mind that the preceding methods for confirming the association of the product code with the instance are not foolproof because a customer with root access to the instance could return false information indicating the product code is associated with the instance.
Windows AMIs
When you associate a product code with a Windows AMI, the association is permanent. Therefore, we recommend you keep a separate, base copy of the AMI that has no product code associated with it.
Anyone who purchases a Windows AMI can rebundle it (for more information, see Creating an AMI). The product code is automatically transferred to the rebundled AMI. When EC2 users launch instances of the rebundled AMI, they pay the rates you set when you registered your DevPay product. In turn, you're charged for the EC2 costs they incur.