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 the required DevPay fees and pays you the difference. |
4 |
You pay the costs of Amazon EC2 that your AMI used. |
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
The other way to use Amazon EC2 and Amazon DevPay together is 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 Associating 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 Sharing Your Paid AMI with Select Users or the Public.
|
|||
5 |
You make your paid AMI available for sale. 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. |
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.
Association of the Product Code with the Customer's Instance
If you give the customer root access to your paid AMI, the customer can rebundle it. 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 prices 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, see Confirming an Instance Is Running an AMI Associated 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 Getting 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.