Mesure personnalisée pour les produits AMI avec AWS Marketplace Metering Service - AWS Marketplace

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Mesure personnalisée pour les produits AMI avec AWS Marketplace Metering Service

Le service AWS Marketplace Metering est une fonctionnalité de tarification et de mesure que les vendeurs peuvent utiliser pour facturer directement leurs logiciels par catégorie d'utilisation. Il existe cinq catégories d'utilisation : les utilisateurs, les données, la bande passante, les hôtes ou les unités. Vous pouvez utiliser le service de mesure avec des produits basés sur Amazon Machine Image (AMI), des conteneurs et des produits basés sur le logiciel en tant que service (SAAS). Pour de plus amples informations, veuillez consulter le document Référence API AWS Marketplace Metering Service.

Tous les logiciels basés sur des AMI qui utilisent cette fonctionnalité doivent répondre aux exigences suivantes :

  • Votre logiciel doit être lancé AWS Marketplace via une Amazon Machine Image (AMI).

  • Si vous avez un produit existant dans AWS Marketplace, vous devez soumettre une nouvelle AMI et créer un nouveau produit pour activer cette fonctionnalité.

  • Tous les logiciels doivent être dotés d'un rôle AWS Identity and Access Management (IAM). Le client final doit ajouter un rôle IAM à l'instance Amazon Elastic Compute Cloud (Amazon EC2) que l'utilisateur met en service avec le logiciel. L'utilisation d'un rôle IAM est facultative lorsque vous déployez un logiciel via AWS Marketplace. Cela est nécessaire lorsque vous déployez le logiciel AWS Marketplace Metering Service.

  • Votre logiciel doit être en mesure de déterminer la consommation d'une manière ou d'une autre.

Les produits qui utilisent le service de mesure doivent facturer les clients selon une seule catégorie d'utilisation, mais vous pouvez définir jusqu'à 24 dimensions d'une seule catégorie. En fonction de la catégorie sélectionnée, les logiciels peuvent être facturés par des ressources mises en service, des ressources simultanées ou une consommation cumulée de ressources. Tous les frais continuent à être engagés à l'heure par le client. Toutes les utilisations sont calculées et facturées mensuellement selon le même mécanisme que les AWS Marketplace logiciels existants.

La fonctionnalité AWS Marketplace Metering Service autorise plusieurs nouveaux scénarios. Par exemple, si votre logiciel surveille les hôtes, vous pouvez facturer pour chaque hôte surveillé. Vous pouvez appliquer différents prix en fonction de la taille de l'hôte et facturer pour le nombre d'hôtes simultanés surveillés toutes les heures. De même, si votre logiciel permet à de nombreux utilisateurs d'une organisation de se connecter, vous pouvez facturer selon le nombre d'utilisateurs. Chaque heure, le client est facturé pour le nombre total d'utilisateurs alloués.

Appeler AWS Marketplace Metering Service

Votre logiciel doit appeler le service de mesure toutes les heures et enregistrer la valeur de la consommation pour cette heure.

Lorsque votre logiciel démarre, il doit enregistrer le minute-of-the-hour moment où il a démarré. C'est ce que l'on appelle la minute de début. Chaque heure pendant la minute de début, votre logiciel doit déterminer la valeur de consommation pour cette heure et appeler le service de mesure. Pour plus d'informations sur la façon d'obtenir cette valeur, consultez la section Modification de votre logiciel pour utiliser le service de mesure.

Pour se réveiller toutes les heures à la minute de début, votre logiciel doit utiliser l'une des approches suivantes :

  • Un thread au sein de votre logiciel.

  • Un processus démon qui démarre avec l'instance ou le logiciel.

  • Une tâche cron qui est configurée au démarrage de l'application.

    Note

    Votre logiciel doit appeler la fonctionnalité AWS Marketplace Metering Service à l'aide du rôle IAM configuré sur l'instance du client et spécifier la consommation et la quantité.

Votre logiciel peut utiliser le AWS SDK pour appeler le service de mesure AWS Marketplace, comme dans l'exemple d'implémentation suivant :

  1. Utilisez le profil d'instance pour créer un client de service. Pour cela, le rôle doit être configuré pour l'instance EC2. Les informations d'identification du rôle sont actualisées automatiquement par le kit de développement logiciel (SDK).

  2. Toutes les heures, lisez la configuration et l'état du logiciel afin de déterminer les valeurs de consommation pour cette heure. Cela peut inclure la collecte d'un value-per-dimension.

  3. Appelez la méthode meterUsage sur le client SDK avec les paramètres suivants (appel supplémentaire pour chaque dimension ayant une utilisation) :

    • timestamp— Horodatage de l'heure enregistrée (en UTC).

    • productCode— Code produit attribué au logiciel.

    • dimension— Dimension (ou dimensions) attribuée au logiciel.

    • quantity— Valeur de consommation par heure.

    • allocations— (Facultatif) Vous pouvez fournir des allocations pour l'utilisation entre les propriétés que vous suivez. La somme de ces allocations doit correspondre à la consommation totale enregistrée. Pour l'acheteur, ceux-ci s'affichent sous forme de balises de répartition des coûts potentielles dans ses outils de facturation (tels que la AWS Billing and Cost Management console). L'acheteur doit activer les tags dans son compte afin de suivre ses coûts à l'aide de ces tags.

En outre, votre logiciel doit appeler un point de terminaison AWS Marketplace Metering Service local. Votre produit doit disposer d'un point de terminaison régional correctement configuré. Il us-east-1 envoie donc des enregistrements à un us-east-1 point de terminaison et us-west-2 envoie des enregistrements à un us-west-2 point de terminaison. Les appels locaux offrent aux acheteurs une expérience plus stable et évitent les situations dans lesquelles la disponibilité d'une région indépendante pourrait avoir un impact sur les logiciels exécutés dans une autre région.

Lorsque vous envoyez des enregistrements de mesure au service, vous devez vous connecter au service de mesure AWS Marketplace de votre région. Utilisez la méthode getCurrentRegion() d'assistance pour déterminer la région dans laquelle l'instance EC2 s'exécute, puis transmettez ces informations de région au MeteringServiceClient constructeur. Si vous n'en spécifiez pas Région AWS dans le constructeur du SDK, la us-east-1 région par défaut est utilisée. Si votre application tente de passer des appels interrégionaux vers le service, les appels sont rejetés. Pour plus d'informations, voir Déterminer la région actuelle d'une application et getCurrentRegion().

Gestion des défaillances

Votre produit doit envoyer des enregistrements de mesure au service, un point de terminaison Internet public, afin que l'utilisation soit collectée et facturée. Étant donné qu'il est possible pour un client de modifier les paramètres réseau de façon à empêcher la livraison de vos enregistrements de mesure, votre produit doit en tenir compte en choisissant un mode d'échec.

Note

Certaines défaillances de mesure peuvent être des problèmes transitoires liés à la connexion au. AWS Marketplace Metering Service AWS Marketplace recommande vivement d'implémenter des tentatives d'une durée maximale de 30 minutes, avec des interruptions exponentielles, afin d'éviter les pannes de courte durée ou les problèmes de réseau.

En général, les logiciels peuvent échouer et rester ouverts (fournir un message d'avertissement mais conserver des fonctionnalités complètes) ou échouer et se fermer (désactiver toutes les fonctionnalités de l'application jusqu'à ce qu'une connexion ait été rétablie). Vous pouvez choisir d'échouer et de rester ouvert ou fermé, ou autre chose qui soit propre à votre application. Nous vous recommandons vivement de ne pas choisir l'échec avec fermeture après moins de deux heures d'échecs de mesure.

À titre d'exemple d'échec partiellement ouvert, vous pouvez continuer à autoriser l'accès au logiciel, mais sans autoriser l'acheteur à modifier les paramètres de logiciel. Ou bien, un acheteur pourrait toujours accéder au logiciel mais ne serait pas en mesure de créer des utilisateurs supplémentaires. Votre logiciel est chargé de définir et d'appliquer ce mode d'échec. Le mode d'échec de votre logiciel doit être inclus lorsque votre AMI est envoyée, et il ne peut pas être modifié ultérieurement.

Limites

Gardez ces limitations à l'esprit lors de la conception et la présentation de votre logiciel compatible avec Metering Service :

  • Exigences relatives au rôle IAM et à la passerelle Internet pour vos clients — Vos clients doivent disposer d'une passerelle Internet et lancer votre logiciel avec un rôle IAM avec des autorisations spécifiques. Pour plus d’informations, consultez AWS Marketplace autorisations de l'API de mesure et d'autorisation. Votre logiciel ne peut pas se connecter au service de mesure si ces deux conditions ne sont pas remplies.

  • Impossibilité d'ajouter une nouvelle catégorie d'utilisation ou de modifier une catégorie d'utilisation à un produit de service de mesure existant — Lorsque les clients s'abonnent à votre produit logiciel, ils acceptent les termes et conditions. La modification des catégories d'utilisation des produits avec le service de mesure nécessite un nouveau produit et un nouvel abonnement.

  • Impossibilité de modifier les dimensions d'un produit de service de mesure existant — Lorsque les clients s'abonnent à votre produit logiciel, ils acceptent les termes et conditions. Le modification des dimensions d'un produit à l'aide du Metering Service exige un nouveau produit et un nouvel abonnement. Vous pouvez ajouter de nouvelles dimensions aux produits existants, dans la limite de 24.

  • Absence d'essai gratuit et d'abonnements annuels : les produits Metering Service ne prennent pas en charge les essais gratuits ni les abonnements annuels au lancement.

  • Considérations relatives au déploiement multi-instance ou basé sur des clusters — Certains logiciels sont déployés dans le cadre d'un déploiement multi-instance. Lorsque vous concevez votre logiciel, voyez comment et où la consommation est mesurée et où les enregistrements de mesure sont émis.

Exemple de code

L'exemple de code suivant est fourni pour vous aider à intégrer votre produit AMI aux AWS Marketplace API nécessaires à la publication et à la maintenance de votre produit.

MeterUsageavec balisage de répartition de l'utilisation (facultatif)

L'exemple de code suivant est pertinent pour les produits AMI dotés de modèles de tarification à la consommation. L'exemple Python envoie un enregistrement de mesure avec les balises d'allocation d'utilisation appropriées AWS Marketplace pour facturer des pay-as-you-go frais à vos clients.

# NOTE: Your application will need to aggregate usage for the # customer for the hour and set the quantity as seen below. # AWS Marketplace can only accept records for up to an hour in the past. # # productCode is supplied after the AWS Marketplace Ops team has # published the product to limited # Import AWS Python SDK import boto3 import time usageRecord = [ { "AllocatedUsageQuantity": 2, "Tags": [ { "Key": "BusinessUnit", "Value": "IT" }, { "Key": "AccountId", "Value": "123456789" }, ] }, { "AllocatedUsageQuantity": 1, "Tags": [ { "Key": "BusinessUnit", "Value": "Finance" }, { "Key": "AccountId", "Value": "987654321" }, ] } ] marketplaceClient = boto3.client("meteringmarketplace") response = marketplaceClient.meter_usage( ProductCode="testProduct", Timestamp=int(time.time()), UsageDimension="Dimension1", UsageQuantity=3, DryRun=False, UsageAllocations=usageRecord )

Pour plus d'informations à ce sujetMeterUsage, consultez MeterUsagela référence de AWS Marketplace l'API du service de mesure.

Exemple de réponse

{ "MeteringRecordId": "string" }