導入事例(自社SaaS製品)
弊社では過去、AWSのコストマネジメントを行うためのSaaSを公開してAWS Marketplaceで販売を行っていました。その際の事例を元にSaaS製品を出品する際に必要な手順を導入事例としてまとめています。
事前に行うこと
AWS マーケットプレイス SaaS 出品に際して対応が必要な項目として、以下の項目をチェックしましょう。
販売者登録(Seller Account へ登録)
AWS Marketplaceの管理ポータルから、販売者登録を行います。この際、公開プロファイル情報に加え、銀行口座情報や税務関連情報の入力が必要です。なお、米国に銀行口座や拠点がない場合でも、Hyperwalletを利用することで、登録およびSaaS製品の出品が可能です。
また、SaaS として出品するための要件があります。SaaS 製品ガイドラインを事前にチェックしておくことをおすすめします。
SaaS 出品計画の選定
「計画」とは、SaaSの料金体系を意味します。SaaS出品時には、以下のいずれかの項目から選択する必要があるため、事前に販売形態および料金モデルについて十分に検討しておくことが重要です。
料金モデル | 内容 | 適用例 |
---|---|---|
Usage-based pricing | 従量課金モデル | 製品の利用量に基づく課金 |
Contract-based pricing | 契約モデル | 利用プランに応じた月額課金 |
Contract with consumption | 契約モデル(従量課金あり) | 利用プランに応じた月額課金と従量課金の混合モデル |
SaaS 出品登録
AWS Marketplace管理ポータルの製品登録ページ(SaaS Products)から、料金モデルや製品情報を入力して登録を進めます。登録後、製品は一時的に「Limited」アクセス状態となり、顧客がAWS Marketplaceで購入後、SaaSを利用できるようにするためのオンボーディング作業が必要です。オンボーディング完了後に、AWS Marketplaceチームによる製品レビューが実施され、承認されると「Public」状態で公開されます。
参考アーキテクチャ
顧客オンボーディングは、大きく3つのパートに分けて構成されており、それぞれにおいて重要なポイントがあります。これらの内容は、選択する料金モデルによって多少異なりますが、「Contract with consumption」モデルの場合は、すべての項目への対応が必要となります。

1. 登録ランディングページを作成

顧客がAWS Marketplaceで契約を完了すると、事前に登録したfulfillment URLへリダイレクトされます。SaaS製品側では、このリダイレクトを受けた際に、ResolveCustomer APIを使用して、製品コード、顧客のAWSアカウントID、顧客IDを取得することができます。そのため、製品内またはAWS Marketplaceと連携する専用のマイクロサービスを用意し、取得した情報を製品ユーザー情報と正しく紐付ける仕組みを構築しておく必要があります。
具体的には、リダイレクト先のページで新規ユーザー登録を行ったり、既存ユーザーであれば支払い情報をAWS Marketplace経由に切り替える処理を実装します。
2. 契約情報を取得し、契約更新・サブスク通知対応できるようにしておく

ResolveCustomer APIで取得した情報をもとに、さらにGetEntitlements API を使用して顧客の契約情報を取得します。取得した契約内容に応じて、製品上でのアクセス権付与や利用可能な機能を制御します。具体的には、GetEntitlements API のレスポンスに、顧客が契約時に選択したディメンション(プランやオプション)情報が含まれており、それに基づき機能の有効化や課金項目の設定を行います。
また、契約情報の取得に加え、サブスクリプション通知への対応も必要です。通知には以下の種類があり、製品側で適切に処理する必要があります。
- 契約変更通知:契約内容が変更された際に送信されます(例:プランのアップグレード。※ダウングレードは不可)。
- サブスクリプション状態変更通知:従量課金契約の場合、サブスクリプションが解除・再開された際に送信されます。
- 両方の通知:契約と従量課金の両方を組み合わせた場合は、両方の通知が届きます。
特に、契約内容が更新された場合は、entitlement-updated
通知が、サブスクリプション状態の変更時には別途定義された通知が送信されます。これらの通知を受けて、製品側では顧客の利用制限や機能制御などを適切に実施する必要があります。
subscribe-success
subscribe-fail
unsubscribe-pending
unsubscribe-success
3. 従量課金情報を送信する

従量課金を含む料金モデルの場合、実際の利用量に基づいて課金を行います。製品登録時に、従量課金の項目(ディメンジョン)とその単位を設定するため、製品側では、利用実績に応じて「どのディメンジョンに」「どれだけのユニット」を課金するかを決定し、その情報をAWS Marketplaceに送信します。この処理には BatchMeterUsage API を使用し、顧客ID、ディメンジョン、利用量を指定して送信します。
また、課金データを後から正確に参照できるようにするため、いったんDynamoDBなどに課金情報を保存し、バッチ処理でAWS Marketplaceに送信する仕組みにしておくと、管理やトラブル対応がスムーズになります。
その他考慮事項
実際にSaaS製品をAWS Marketplaceに出品・運用するにあたっては、以下のような点についても事前に考慮しておく必要があります。
- 契約内容の変更(例:プランのダウングレードなど)
- プライベートオファー(特定顧客向けの個別料金設定)の対応有無
- 途中解約や払い戻しの取り扱い
これらについては、製品のサービス仕様やAWS Marketplaceの制約事項と照らし合わせながら、あらかじめ対応方針を整理しておくことで、スムーズな運用が可能になります。出品準備の段階から、十分に検討することをおすすめします。
なお、本記事の内容を含め、AWS Marketplaceとの連携や出品に関するご不明点、ご相談がありましたら、お気軽にお問い合わせください。