You can still share AMIs without charging. Public and paid AMIs can be listed in the Resource Center.
How can I determine if a particular AMI is a paid AMI?
By describing images (ec2dim) with the "-a" flag and looking for AMIs that have a product
code. For example, if you run
ec2dim -a, the result contains an AMI with the
ami-bd9d78d4. This is our Demo Paid AMI with product code A79EC0DB.
How can I determine if a public AMI is paid?
By describing images (ec2dim). An AMI is a paid AMI if a product code is returned. Example: run ec2dim -a amazon, and the AMI ami-bd9d78d4 will be returned with a product code (A79EC0DB).
Is there anything that prevents a paid AMI from being rebundled? How can this be restricted?
Paid AMIs are comparable to shared AMIs with regards to rebundling and trying to restrict rebundling. If you allow a user running the AMI to see all of its contents (e.g. by giving root access to the AMI), the user could rebundle these into their own AMI.
Why can't I query a particular AMI's attributes to see if the AMI is paid?
Only the owner of an AMI can query the AMI attributes. However, anyone can tell if an AMI is paid by describing images (ec2dim). An AMI is paid if a product code is returned. Example: run ec2dim -a amazon, and the AMI with ID ami-bd9d78d4 will be returned with a product code (A79EC0DB).
Who can use the confirm-product-instance command?
Only the owner of the AMI can use this command. Owners use this command with supported AMIs to determine if a supported instance with a given product code attached is up and running.
Will the product code be inherited by the rebundled AMI?
If your customer uses AWS tools to rebundle the AMI, the product code associated with the AMI is inherited by the rebundled AMI. When launching the rebundled AMI the customer is still billed for usage based on your price.
This is a convenience feature and not a guarantee that the product code will always be attached to rebundled AMIs.
Note that the customer's workflow could bundle the AMI outside of Amazon EC2, or the customer could use modified versions of the AWS tools, preventing the product code from being inherited.
Will the kernel/RAM disk be inherited by the rebundled AMI?
If you rebundle an AMI, it inherits the kernel and RAM disk from the source AMI unless you specify a different kernel and RAM disk.
This is a convenience feature and not a guarantee that the kernel/RAM disk will always be attached to rebundled AMIs.
I created my paid AMIs with one AWS developer account, but I want to sell them using a different AWS developer account. Can I transfer them?
No, you can't automatically transfer AMIs from one account to another. You would have to upload them again using the second AWS developer account and then register them with DevPay using that account. Alternately, you could leave the AMIs with the original account (the AMI owner account) and register them with DevPay using another AWS developer account (the product owner account). You could then use the AMI owner account to associate the product code with the AMIs. However, keep in mind that only the product owner (and not the AMI owner in this case) can use the ec2-confirm-product-instance command, which confirms that an instance is running an AMI associated with the product owner's product code.
How do I prevent someone from stripping the product code from my paid AMI?
If you do not provide root access to your AMI, it cannot be rebundled. If you provide root access, our tools attempt to preserve the product code.
To increase security, we recommend that you configure your application to check the instance metadata to verify that the product code is intact.