Configuration du comptage personnalisé pour les AMI produits dotés de 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.

Configuration du comptage personnalisé pour les AMI produits dotés de AWS Marketplace Metering Service

Le AWS Marketplace Metering Service est une fonctionnalité de tarification et de mesure que vous pouvez utiliser pour facturer directement votre logiciel 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). Les sections suivantes fournissent des informations supplémentaires sur la façon de configurer le comptage personnalisé avec AWS Marketplace Metering Service.

Le AWS Marketplace Metering Service permet 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.

Pour plus d'informations, consultez le Guide de AWS Marketplace APIréférence des services de mesure.

Prérequis

Tous les logiciels AMI basés qui utilisent le service de mesure doivent répondre aux exigences suivantes :

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

  • Si vous avez un produit existant dans AWS Marketplace, vous devez en soumettre un nouveau AMI et créer un nouveau 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 IAM rôle à l'instance Amazon Elastic Compute Cloud (AmazonEC2) qu'il met en service avec le logiciel. L'utilisation d'un IAM rôle 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.

Appelez le service de mesure AWS Marketplace

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 le AWS Marketplace Metering Service en utilisant le IAM rôle configuré sur l'instance du client et spécifier la dimension et le montant de la consommation.

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

  1. Utilisez le profil d'instance pour créer un client de service. Cela nécessite le rôle configuré pour l'EC2instance. Les informations d'identification du rôle sont actualisées SDK automatiquement par le.

  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 meterUsage méthode sur le SDK client avec les paramètres suivants (appelez également pour chaque dimension utilisée) :

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

    • 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 local du AWS Marketplace Metering Service. 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 relevés de mesure au service, vous devez vous connecter au AWS Marketplace Metering Service de votre région. Utilisez la méthode getCurrentRegion() d'assistance pour déterminer la région dans laquelle l'EC2instance s'exécute, puis transmettez ces informations de région au MeteringServiceClient constructeur. Si vous ne spécifiez pas un Région AWS dans le SDK constructeur, 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 de défaillance de votre logiciel doit être inclus lorsque vous AMI le soumettez, et il ne pourra 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 :

  • IAMexigences relatives aux rôles et aux passerelles Internet pour vos clients — Vos clients doivent disposer d'une passerelle Internet et lancer votre logiciel avec un IAM rôle doté d'autorisations spécifiques. Pour de plus amples informations, veuillez consulter 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 AMI produit aux éléments AWS Marketplace APIs 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 AMI produits 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 MeterUsagele Guide de AWS Marketplace APIréférence des services de mesure.

Exemple de réponse

{ "MeteringRecordId": "string" }