How to successfully list a container solution in AWS Marketplace
AWS Marketplace is a curated digital software catalog that enables AWS customers to easily find, buy, test, and deploy third-party software. Software usage is billed alongside customer AWS bills, with flexible pricing options across both Pay-As-You-Go (PAYG) and upfront contracts.
Sellers curious about selling in AWS Marketplace frequently ask me these questions:
- Will my target customers want to purchase my software via AWS Marketplace?
- What features does AWS Marketplace support?
- Who needs to be involved from my end?
- What sort of effort is involved?
- Who can I contact for support?
In this blog post, I will show how to list your container products in AWS Marketplace. I will answer these previous questions and offer best practices for successfully listing your containerized solution via AWS Marketplace.
This blog post assumes that you are registered as a seller in AWS Marketplace. To understand the Total Economic ImpactTM of AWS Marketplace, read this blog post highlighting a study conducted by Forrester Consulting.
Solution walkthrough: how to successfully list a container product in AWS Marketplace
1. Research your customers and market
Before structuring an execution plan, conduct market research to ensure AWS Marketplace is a good fit for your customers and prospects. In order to successfully sell via AWS Marketplace, you should have a cohort of either prospects or existing buyers already consuming AWS services, or that may start consuming AWS services in the near future.
You should understand which of your target customers have business models that benefit from using the cloud and which are migrating or will be migrating to the cloud soon. If you’re not sure, survey customers directly. You should also ask current customers what type of cloud software they are currently purchasing or plan to purchase in the next 12 months. Additionally, most sellers find it helpful to browse AWS Marketplace and review existing container solutions.
Many of our sellers also read reports on cloud marketplace trends and value from analysts such as Gartner, IDC, Canalys, and Forrester.
2. Plan your listing
- Review requirements
The AWS Marketplace seller guide contains information related to container product security, access, customer information, product usage, and architectural requirements. Carefully review the container requirements documentation to ensure your solution is compliant. All policies must be met to successfully list, and any required technical changes to your product can be done in parallel with the following steps.
- Determine deployment type
- Containers can be deployed to AWS in various ways, some of which are supported in AWS Marketplace. AWS Marketplace container applications must be deployed into Elastic Container Service (ECS), ECS Anywhere (ECS-A), Elastic Kubernetes Service (EKS), EKS Anywhere (EKS-A), Red Hat OpenShift Service on AWS (ROSA), any Kubernetes environment, or AWS Fargate.
To deploy your application and supporting architecture, you may use one or a combination of AWS CloudFormation templates, ECS Task definitions (ECS), Helm Charts (EKS), or basic Elastic Container Registry (ECR) pull command.
- Additional AWS Marketplace deployment features to consider are:
- Quicklaunch for Amazon EKS. This enables customers to deploy a container application via helm chart into a newly created EKS cluster using an AWS Marketplace owned and managed CloudFormation template. This feature enables a near one-click deployment experience for complex container applications.
- EKS Anywhere or ECS Anywhere enablement. This enables customers to purchase container licenses via AWS Marketplace and deploy licensed container products into any Kubernetes, EKS-A or ECS-A environment.
- Additional AWS Marketplace deployment features to consider are:
- Determine pricing type
- Container pricing in AWS Marketplace is flexible. AWS Marketplace offers APIs for metering, license manager integration for contractual entitlements, bring-your-own-license (BYOL) for migrating existing licenses into AWS Marketplace, and free licensing for open source or community-based software. Based on your selected price and pricing structure, you must complete certain steps to enable AWS to bill your end customers for usage of your container product via AWS Marketplace. Working back from the customer, determine how AWS users want to pay for your container product, match the desired outcome with available pricing options, and complete necessary integrations. Refer to the following chart for pricing models and required billing integrations.
|Pricing Type||Customer Experience||Software Billing Sequence||Required Billing Integrations|
|Pay-as-you-go (hourly run-time) with optional Long-Term agreement||Customer accepts offer via AWS Marketplace and is granted access to the related container images and deployment assets. The customer then deploys the container solution into their AWS environment following seller authored deployment instructions displayed during the procurement flow. Customer can launch as many containers as needed.||Customer subscribes to product and has the ability to commit to a long-term agreement. Once launched, the application reports usage directly to the related AWS Marketplace metering API based off Task (ECS) or Pod (EKS) run time, or flexible metering dimensions. Customer is billed on monthly cadence alongside their AWS usage bill. For optional Long-Term agreement, customer usage is covered according to the agreement terms, and any usage above agreed amount is billed at the on-demand rate. Customers can revisit the product detail page and increase their agreed amount if needed.||Integrate with RegisterUsage API for Hourly/Long-Term billing. You application should be set up to handle failed RegisterUsage API calls.|
|Pay-as-you-go (custom metering) with optional Long-Term agreement||Integrate with MeterUsage API for custom metered billing. Your application should be set up to handle failed MeterUsage API calls.|
|Contract Pricing||Customer accepts contractual offer via AWS Marketplace and is granted access to the related container images and deployment assets for the contract duration. The customer then deploys the container solution into their related environment following seller authored deployment instructions displayed during the procurement flow. The customer is able to access whatever features, functionalities, and entitlements are dictated by their contract terms.||Customer subscribes to the product and enters an up-front payment agreement. AWS Marketplace then delivers a software license into the AWS License Manager service hosted in buyer’s account. The software application then calls license manager from within the customer’s environment, and dynamically modifies entitlement based on contract specifications. Customers can revisit the product detail page and increase their contracted amount if needed.||Integrate with AWS License Manager for Marketplace Containers for dynamic upfront contractual entitlements. Failed license manager calls should be handled accordingly.|
|BYOL||Customer subscribes to product via AWS Marketplace and is granted access to the related container images and deployment assets. The customer then deploys the container solution into their AWS environment following seller authored deployment instructions displayed during the procurement flow. Customer can launch as many containers as needed.||None. Buyer procures license through channel external to AWS Marketplace. Customer activates software using license key.||None|
|Free||None, but the customer will still pay for related AWS infrastructure usage.||None|
Frequently asked questions
- What is the difference between Pay-As-You-Go Long-Term Agreements and Contract Pricing?
- Pay-As-You-Go Long-Term Agreements only enables a set, long-term agreement with predetermined entitlement. Pricing can be modified via Private Offers, but licensing and entitlement are not dynamic.
- Contract Pricing is an upfront contractual model that enables buyers to configure customized contracts based on their needs. A single container listing and software image with Contract Pricing and the related License Manager integration is fully dynamic and provides a flexible customer software experience via a single listing.
- How do I integrate my product with metering APIs?
While this topic is generally out of the scope of this blog post, please see this related blog post that covers a sample metering integration.
3. Preparing your container products for listing
The preparation phase is critical in ensuring the listing process completes smoothly. The three areas of ownership below can be run in parallel. I recommend reviewing existing container listings on AWS Marketplace to see how page details and pricing are structured.
- Make sure your solution is compliant with AWS Marketplace container policies and integrates with any necessary APIs for your chosen pricing type.
- To ensure users deploying your software via AWS Marketplace have a streamlined experience, prepare launch instructions and additional technical documentation with specifics related to AWS Marketplace deployment.
- When submitting your listing for publishing, your container images will be scanned for vulnerabilities. I recommend using a third-party scanner to scan your images and correct any vulnerabilities prior to submission.
- Review the AWS Marketplace Seller Guide to check what metadata is required on your listing detail page.
- All products listed on AWS Marketplace must have an end user license agreement (EULA). This is the default agreement that customers agree to when purchasing your product. This license can be customized per customer agreement by using AWS Marketplace Private Offers.
- I recommend using the Standard Contract for Marketplace (SCMP), which is a broadly applicable software license managed by AWS. By using SCMP, you can potentially reduce your sales cycle, as your end users’ legal team may have already reviewed this agreement during a previous sales cycle with AWS Marketplace.
4. List your container product
For the most accurate and current container listing process, review the container listing process in the seller guide. Here is an overview of the process with key details, assuming you are the seller:
- Generate a container product record via the AWS Marketplace Management Portal. This results in:
- An AWS Marketplace product code is generate which is used for billing and license integrations.
- You are enabled to create an associated AWS Marketplace hosted private Elastic Container Registry (ECR).
- Create an AWS Marketplace hosted ECR repository associated with your product record. To do this, go to the AWS Marketplace Management Portal. Select the newly created product record and submit a request to create an associated repository.
- Push container images into the newly created ECR repository using related push commands.
All container images deployed via an AWS Marketplace product must be hosted within that product’s related AWS Marketplace ECR repository. If a solution uses open-source images hosted in Docker or other repositories, you must copy and push the images into the associated AWS Marketplace ECR repository. You are responsible for ensuring all software packages are routinely updated and vulnerability-free.
After you create the AWS Marketplace hosted repository, push commands will be shared with you via the Seller Management Portal, enabling the images to be pushed into the repositories. Here is a technical blog post on how you can integrate this step with your CI/CD process to automatically push your latest container images into your product’s repository.
- Update your product listing via the Seller Management Portal. This includes adding key product details and marketing content, pricing, EULA, seller assets such as deployment resources and templates, and container images. These must reference images hosted in the related AWS Marketplace ECR.
All templates and deployment resources must be updated to reference your AWS Marketplace ECR hosted container images. Once your container images have passed self-service scans and been pushed to the AWS Marketplace ECR, replace all image location references with the new AWS Marketplace hosted location reference.
- Access the product listing page in a limited state. You can then test the procurement and deployment experience to ensure functionality before the listing is publicly accessible. If you are listing a paid product, ensure that your pricing has been reduced to enable you to test without being charged. You can add new versions and update metadata as many times as needed in this limited state.
- Request your listing be moved into the public AWS Marketplace. Follow up on your existing email thread with the seller operations team and request your product be moved into the public catalog.
- The AWS Marketplace Seller Operations team will review metadata, deployment experience, and integrations. A good rule of thumb is to test your product as if you have little to no container deployment experience. If the usage instructions and deployment resources enable you to successfully deploy and access the software, you are in great shape for a quick approval. You can review publication timing and expectations in the seller guide.
5. Selling, driving traffic to, and updating your container listing
Once you are listed, make sure you are properly enabled to sell through AWS Marketplace. You should also work to drive traffic to your AWS Marketplace listing and be sure to adequately version your product to keep included software up to date.
- To ensure you are enabled to sell, do the following:
- Review the AWS Marketplace Private Offers feature.
- Establish an internal process for the AWS Marketplace sales channel.
- Train and raise awareness of the AWS Marketplace channel with your sales teams.
- To drive traffic to your listing, do the following:
- Review this blog post that covers best practices for Going-to-Market with AWS Marketplace.
- Use channel partners to help sell your solution.
- Ensure you are an active AWS Partner, and inquire about related Partner Programs.
- Work towards joining ISV Accelerate and build out a co-sell motion with the AWS field team.
- To keep your listing updated, do the following:
- Review the seller guide on how to add a new version.
- Review the seller guide on how to update version level details for an existing version.
- Review the seller guide on how to update overall product level details.
In this blog post, I covered the features, process, and best practices for successfully listing a container product in AWS Marketplace. Workloads are constantly moving to the cloud, and listing your software via AWS Marketplace enables AWS customers to procure your software more easily.
For additional support on the listing process, review the seller guide. You can also log in to your AWS account and submit an inquiry to the seller operations team, or reach a specialized Marketplace containers team at firstname.lastname@example.org.
If you want to explore additional channels for providing services related to your software, consider listing a Professional Services offering in AWS Marketplace, and relating it to your container listing page. This blog post covers the best practices to list a professional services product via AWS Marketplace.
About the author
Nate Stecz is a Technical Business Development Manager focusing on helping Independent Software Vendors (ISVs) leverage AWS Marketplace as a sales channel. In his role, he helps ISVs list their solutions in AWS Marketplace, and provides guidance on best practices to promote success. Nate has been with Amazon for nearly six years, five of which have been spent with AWS Marketplace. Nate is located in Seattle, WA, and enjoys golfing, packrafting, fly fishing, snowboarding, and learning about emerging technologies. You can connect with, or follow Nate on Linkedin.