Medição personalizada para produtos de AMI com o AWS Marketplace Metering Service - AWS Marketplace

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Medição personalizada para produtos de AMI com o AWS Marketplace Metering Service

O Serviço de medição do AWS Marketplace é um recurso de definição de preço e de medição que os vendedores podem usar para cobrar diretamente por seu software por categoria de uso. Há cinco categorias de uso: usuários, dados, largura de banda, hosts ou unidade. É possível usar o Serviço de medição com produtos baseados em imagem de máquina da Amazon (AMI), em contêiner e em software como serviço (SaaS). Para obter mais informações, consulte a Referência da API de serviços de medição do AWS Marketplace .

Todos os softwares baseados na AMI que usam o Serviço de medição devem atender aos seguintes requisitos:

  • Seu software deve ser lançado AWS Marketplace por meio de uma Amazon Machine Image (AMI).

  • Se você já tiver um produto em AWS Marketplace, deverá enviar uma nova AMI e criar um novo produto para habilitar esse recurso.

  • Todo software deve ser provisionado com uma função AWS Identity and Access Management (IAM). Será necessário que o cliente final adicione um perfil do IAM à instância do Amazon Elastic Compute Cloud (Amazon EC2) que o usuário estiver provisionando com o software. O uso de uma função do IAM é opcional quando você implanta software por meio de AWS Marketplace. É obrigatório quando você implanta o software do Serviço de medição do AWS Marketplace.

  • O software deve ser capaz de determinar o consumo de alguma forma.

Os produtos que usam o Serviço de medição devem cobrar os clientes com uma única categoria de uso, mas você pode defini-las até 24 dimensões para uma única categoria. Dependendo da categoria, o software pode ser cobrado por recursos provisionados, recursos simultâneos ou consumo de recursos acumulados. Todas as cobranças ainda são feitas por hora ao cliente. Todo o uso é calculado e cobrado mensalmente usando o mesmo mecanismo do AWS Marketplace software existente.

O Serviço de medição do AWS Marketplace permite vários novos cenários. Por exemplo, se o seu software monitora hosts, você pode cobrar pelos hosts monitorados. Você pode ter preços diferentes com base no tamanho do host e cobrar pelo número de hosts simultâneos monitorados por hora. Da mesma forma, se o seu software permite que muitos usuários em uma organização façam login, você pode cobrar pelo número de usuários. A cada hora, o cliente será cobrado pelo número total de usuários provisionados.

Chamar o Serviço de medição do AWS Marketplace

O software deve chamar o Serviço de medição a cada hora e registrar o valor do consumo relativo a essa hora.

Quando o software é iniciado, ele deve registrar o minute-of-the-hour local em que foi iniciado. Isso é chamado de start-minute. A cada hora no start-minute, o software deve determinar o valor do consumo relativo a essa hora e chamar o Serviço de medição. Para obter informações sobre como obter esse valor, consulte Modificação do software para usar o Serviço de medição.

Para despertar a cada hora no start-minute, o software deverá usar uma das seguintes abordagens:

  • Uma thread dentro do software.

  • Um processo de daemon que é iniciado com a instância ou o software.

  • Um trabalho cron que é configurado durante a inicialização do aplicativo.

    nota

    O software deve chamar o Serviço de medição do AWS Marketplace usando a função do IAM configurada na instância do cliente e especificar a quantidade e dimensão do consumo.

Seu software pode usar o AWS SDK para chamar o AWS Marketplace Metering Service, semelhante ao exemplo de implementação a seguir:

  1. Use o perfil de instância para criar um cliente de serviço. Isso requer a função configurada para a instância do EC2. As credenciais da função são atualizadas automaticamente pelo SDK.

  2. A cada hora, leia o estado e a configuração do software par determinar os valores de consumo para essa hora. Isso pode incluir a coleta de um value-per-dimension.

  3. Chame o método meterUsage no cliente do SDK com os seguintes parâmetros (faça chamadas adicionais para cada dimensão com uso):

    • timestamp: timestamp da hora que está sendo registrada (em UTC).

    • productCode: código do produto atribuído ao software.

    • dimension: dimensão (ou dimensões) atribuída ao software.

    • quantity: valor de consumo da hora.

    • allocations: (opcional) você pode fornecer alocações para o uso nas propriedades rastreadas. Essas alocações devem somar o consumo total no registro. Para o comprador, elas são exibidas como possíveis etiquetas de alocação de custos em suas ferramentas de cobrança (como o AWS Billing and Cost Management console). O comprador deve ativar as tags em sua conta para rastrear os custos usando essas tags.

Além disso, o software deve chamar um endpoint do Serviço de medição do AWS Marketplace na região. O produto deve ter uma configuração de endpoint regional correta, para que us-east-1 envie registros para o endpoint us-east-1 e us-west-2 envie registros para o endpoint us-west-2. Fazer chamadas na região fornece aos compradores uma experiência mais estável e evita situações em que a disponibilidade de uma região não relacionada pode afetar a execução do software em outra região.

Ao enviar registros de medição ao serviço, é necessário se conectar ao Serviço de medição do AWS Marketplace na sua região. Use o método auxiliar getCurrentRegion() para determinar a região na qual a instância do EC2 está sendo executada e passe essas informações de região para o construtor MeteringServiceClient. Se você não especificar um Região da AWS no construtor do SDK, a us-east-1 região padrão será usada. Se o aplicativo tentar realizar chamadas entre regiões para o serviço, elas serão rejeitadas. Para obter mais informações, consulte Determinando a região atual de um aplicativo e getCurrentRegion().

Tratamento de falhas

O produto deve enviar registros de medição ao serviço, um endpoint de Internet pública, para que o uso possa ser capturado e faturado. Como é possível que um cliente modifique as configurações de rede de tal forma que impeça que os registros de medição sejam entregues, o produto deve considerar isso escolhendo um modo de falha.

nota

Algumas falhas de medição podem ser problemas transitórios na conexão com o. AWS Marketplace Metering Service AWS Marketplace recomenda fortemente a implementação de novas tentativas por até 30 minutos, com recuo exponencial, para evitar interrupções de curto prazo ou problemas de rede.

Normalmente, o software pode falhar aberto (fornecer uma mensagem de aviso, mas mantém toda a funcionalidade) ou falhar fechado (desativar todas as funcionalidades no aplicativo até que uma conexão seja restabelecida). Você pode optar por falhar aberto, fechado ou algo específico par ao aplicativo. É altamente recomendável que você evite deixar de encerrar depois de menos de duas horas de falhas de medição.

Como exemplo de falha parcialmente aberto, você pode continuar a permitir o acesso ao software, mas não permitir que o comprador modifique as configurações do software. Ou, um comprador ainda pode acessar o software, mas não seria capaz de criar usuários adicionais. O software é responsável por definir e impor esse modo de falha. O modo de falha do software deve ser incluído ao enviar a AMI e não pode ser alterado posteriormente.

Limitações

Mantenha as seguintes limitações em mente ao projetar e enviar software habilitado para Serviço de medição:

  • Requisitos do perfil do IAM e do gateway da Internet para seus clientes: os clientes devem ter um gateway da Internet e devem iniciar o software com um perfil do IAM com permissões específicas. Para ter mais informações, consulte AWS Marketplace permissões da API de medição e titulação. O software não poderá se conectar ao Serviço de medição se essas duas condições não forem atendidas.

  • Incapacidade de adicionar ou alterar nova categoria de uso ao produto existente no Serviço de medição: quando os clientes assinam seu produto de software, estão concordando com os termos e condições. A alteração das categorias de uso em produtos com o Serviço de medição exige um novo produto e uma nova assinatura.

  • Incapacidade de alterar dimensões no produto existente no Serviço de medição: quando os clientes assinam seu produto de software, estão concordando com os termos e condições. A alteração das dimensões em produtos com o Serviço de medição exige um novo produto e uma nova assinatura. Você pode adicionar novas dimensões aos produtos existentes, até o limite de 24.

  • Falta de avaliação gratuita e de assinaturas anuais: os produtos no Serviço de medição não são compatíveis com avaliações gratuitas e assinaturas anuais na inicialização.

  • Considerações sobre a implantação de várias instâncias ou com base em cluster: alguns softwares serão implantados como parte de uma implantação de várias instâncias. Ao projetar o software, considere como e onde o consumo é medido e onde os registros de medição são emitidos.

Exemplo de código

O exemplo de código a seguir é fornecido para ajudar você a integrar seu produto de AMI com as APIs do AWS Marketplace necessárias para publicar e manter seu produto.

MeterUsage com marcação de alocação de uso (opcional)

O exemplo de código a seguir é relevante para produtos de AMI com modelos de definição de preço de consumo. O exemplo do Python envia um registro de medição com as tags de alocação de uso apropriadas para AWS Marketplace cobrar taxas de seus clientes. pay-as-you-go

# 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 )

Para obter mais informações sobreMeterUsage, consulte MeterUsagena Referência da API do AWS Marketplace Metering Service.

Exemplo de resposta

{ "MeteringRecordId": "string" }