Preços contratuais para produtos de AMI com o AWS License Manager - 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á.

Preços contratuais para produtos de AMI com o AWS License Manager

Para produtos baseados em Amazon Machine Image (AMI) com preços contratuais, você usa o AWS License Manager para associar licenças ao seu produto.

AWS License Manager é uma ferramenta de gerenciamento de licenças que permite que seu aplicativo rastreie e atualize licenças (também conhecidas como direitos) que foram adquiridas por um cliente. Esta seção fornece informações sobre como integrar seu produto ao AWS License Manager. Depois que a integração for concluída, você poderá publicar sua lista de produtos no AWS Marketplace.

Para obter mais informações sobre AWS License Manager, consulte o Guia AWS License Manager do Usuário e a AWS License Managerseção da Referência de AWS CLI Comandos.

nota
  • Os clientes não podem executar novas instâncias da AMI após o período de expiração do contrato. No entanto, durante a vigência do contrato, eles podem executar qualquer número de instâncias. Essas licenças não estão bloqueadas por nós nem estão vinculadas a instâncias específicas.

  • Criação de oferta privada: os vendedores podem gerar ofertas privadas para os produtos usando a ferramenta de criação de ofertas privadas no Portal de gerenciamento do AWS Marketplace.

Modelos de licença

AWS Marketplace a integração com AWS License Manager suporta dois modelos de licença:

Modelo de licença configurável

O modelo de licença configurável (também conhecido como modelo de licença quantificável) autoriza o comprador a uma quantidade específica de recursos após a aquisição da licença.

Você define uma dimensão de preço e um preço unitário. Em seguida, o comprador pode escolher a quantidade de recursos que deseja comprar.

exemplo da dimensão de preços e do preço unitário

Você pode definir uma dimensão de preço (como backup de dados) e um preço unitário (como USD 30/unidade)

O comprador pode optar por comprar 5, 10 ou 20 unidades.

Seu produto rastreia e mede o uso para medir a quantidade de recursos consumidos.

Com o modelo de configuração, os direitos são contados de uma destas duas maneiras:

Licenças emitidas

A licença é extraída do conjunto de quantidades permitidas de licenças após o uso. Esse direito é verificado permanentemente e não pode ser devolvido ao pool de licenças.

exemplo de processar uma quantidade limitada de dados

Um usuário tem o direito de processar 500 GB de dados. À medida que continuam processando os dados, a quantidade é extraída do pool de 500 GB até que todas as licenças de 500 GB sejam consumidas.

Para licenças emitidas, você pode usar a operação de API CheckoutLicense para verificar as unidades de licença que são consumidas.

exemplo de backup no S3 para várias unidades/ano

Você tem um produto de armazenamento que permite fazer backup no Amazon Simple Storage Service (Amazon S3) de até 1024 unidades de dados por um ano. Seu aplicativo pode ser executado usando várias instâncias do Amazon EC2. Seu aplicativo tem um mecanismo para rastrear e agregar dados. Seu software chama a operação de API CheckoutLicense com o ID do produto em cada backup ou em intervalos fixos para atualizar as quantidades consumidas.

Neste exemplo, seu software chama CheckoutLicense para verificar 10 unidades de dados. Quando a capacidade total atinge o limite de backup que o cliente comprou, a chamada da API falha.

Solicitação

linux-machine ~]$ aws license-manager checkout-license\ --product-sku "2205b290-19e6-4c76-9eea-377d6bf7la47" \ --checkout-type "PERPETUAL" \ --key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint" \ --entitlements "Name=DataConsumption, Value=l0, Unit=Count" \ --client-token "AKIAIOSFODNN7EXAMPLE"

Resposta

{ "CheckoutType": "PERPETUAL", "EntitlementsAllowed": [ { "Name": "DataConsumption", "Count": 10, "Units": "Count", "Value": "Enabled" } }, "Expiration": "2021-04-22Tl9:02: 36", "IssuedAt": "2021-04-22Tl8:02:36", "LicenseArn": "arn:aws:license-manager::294406891311:license:l-16bf01b...", "LicenseConsumptionToken": "AKIAIOSFODNN7EXAMPLE" }

Licenças flutuantes

A licença é devolvida ao conjunto da quantidade permitida de licenças após o uso.

exemplo do número de usuários a partir de um limite superior fixo

Um usuário tem direito a 500 usuários simultâneos no aplicativo. Conforme os usuários fazem login e se desconectam, eles são retirados e retornados ao conjunto de 500 usuários. No entanto, o aplicativo não pode retirar mais de 500 usuários do conjunto porque 500 usuários simultâneos é o limite máximo fixo.

Para licenças flutuantes, você pode usar a operação de API CheckInLicense para devolver as unidades de licença ao conjunto de direitos.

exemplo do número de usuários simultâneos por um ano

O preço do produto é baseado no número de usuários simultâneos. O cliente compra uma licença para 10 usuários por um ano. O cliente executa o software fornecendo permissões do AWS Identity and Access Management (IAM). Quando um usuário faz login, seu aplicativo chama a operação de API CheckoutLicense para reduzir a quantidade em 1. Quando o usuário se desconecta, o aplicativo retorna essa licença para o conjunto chamando a operação de API CheckInLicense. Se você não chamar CheckInLicense, o check-in da unidade de licença será feito automaticamente depois de 1 hora.

nota

Na solicitação a seguir, key-fingerprint não é um valor reservado, mas o valor real da impressão digital com a qual todas as licenças serão publicadas.

Solicitação

linux-machine ~]$ aws license-manager checkout-license\ --product-sku "2205b290-19e6-4c76-9eea-377d6bf7la47" \ --checkout-type "PROVISIONAL" \ --key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint" \ --entitlements "Name=ReadOnlyUSers, Value=l0, Unit=Count" \ --client-token "AKIAIOSFODNN7EXAMPLE"

Resposta

{ "CheckoutType": "PROVISIONAL", "EntitlementsAllowed": [ { "Name": "ReadOnlyUsers", "Count": 10, "Units": "Count", "Value": "Enabled" } }, "Expiration": "2021-04-22Tl9:02: 36", "IssuedAt": "2021-04-22Tl8:02:36", "LicenseArn": "arn:aws:license-manager::294406891311:license:l-16bf01b...", "LicenseConsumptionToken": "AKIAIOSFODNN7EXAMPLE" }

Modelo de licença em nível

O modelo de licença em nível dá ao comprador o direito a um nível específico de recursos do aplicativo após a aquisição da licença.

Você cria níveis para seu produto, como Básico, Intermediário e Premium. Em seguida, o comprador seleciona um dos níveis predefinidos.

O aplicativo não precisa rastrear ou medir o uso do aplicativo.

Com o modelo de licença em nível, os direitos não são contados, mas significam um nível de serviço que foi adquirido pelo cliente.

Se você quiser oferecer recursos agrupados, recomendamos usar o modelo de licença em nível.

exemplo dos níveis Básico, Intermediário e Premium

Um cliente pode assinar um contrato para um dos três níveis possíveis do software: Básico, Intermediário ou Premium. Cada um desses níveis tem seu próprio preço. Seu software pode identificar o nível que o cliente assinou invocando a operação de API CheckoutLicense e especificando todos os níveis possíveis na solicitação.

A resposta da solicitação contém o direito correspondente ao nível que o cliente adquiriu. Com base nessas informações, o software pode fornecer a experiência adequada ao cliente.

Solicitação

linux-machine ~]$ aws license-manager checkout-license\ --product-sku "2205b290-19e6-4c76-9eea-377d6bf7la47" \ --checkout-type "PROVISIONAL" \ --key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint" \ --entitlements "Name=BasicTier, Unit=None" "Name=IntermediateTier, Unit=None" \ "Name=PremiumTier, Unit=None"

Resposta

{ "CheckoutType": "PROVISIONAL", "EntitlementsAllowed": [ { "Name": "IntermediateTier", "Units": "None" } }, "Expiration": "2021-04-22Tl9:02:36", "IssuedAt": "2021-04-22Tl8:02:36", "LicenseArn": "arn:aws:license-manager::294406891311:license:l-16bf01b...", "LicenseConsumptionToken": "AKIAIOSFODNN7EXAMPLE" }

Fluxo de trabalho de integração

As etapas a seguir mostram o fluxo de trabalho para integrar seu produto de AMI ao AWS License Manager:

  1. O vendedor cria um produto com AWS License Manager integração.

  2. O vendedor lista o produto em AWS Marketplace.

  3. O comprador encontra o produto AWS Marketplace e o compra.

  4. Uma licença é enviada para a Conta da AWS do comprador.

  5. O comprador usa o software executando a instância do Amazon Elastic Compute Cloud (Amazon EC2), a tarefa do Amazon Elastic Container Service (Amazon ECS) ou o software de pod do Amazon Elastic Kubernetes Service (Amazon EKS). O cliente implanta usando um perfil do IAM.

  6. O software lê a licença na AWS License Manager conta do comprador, descobre os direitos adquiridos e provisiona os recursos adequadamente.

    nota

    O License Manager não faz nenhum rastreamento ou atualização; isso é feito pelo aplicativo do vendedor.

Pré-requisitos de integração do License Manager

Antes de publicar o produto, você deve fazer o seguinte:

  1. Crie um novo produto AMI no Portal de gerenciamento do AWS Marketplace e anote o código do produto.

  2. Preencha o Formulário de Carregamento do Produto (PLF) com as informações de preço necessárias e devolva-o para processamento.

  3. Use um perfil do IAM para a tarefa ou o pod que está executando o aplicativo com as permissões do IAM necessárias para chamar CheckoutLicense, ExtendLicenseConsumption e CheckInLicense.

    As permissões do IAM obrigatórias são detalhadas na política do IAM.

    { "Version":"2012-10-17", "Statement":[ { "Sid":"VisualEditorO", "Effect":"Allow", "Action":[ "license-manager:CheckoutLicense", "license-manager:GetLicense", "license-manager:CheckInLicense", "license-manager:ExtendLicenseConsumption", "license-manager:ListReceivedLicenses" ], "Resource":"*" } ] }
  4. Faça uma chamada de teste para a operação de API RegisterUsage com um registro para todas as dimensões de preço definidas.

Integrando um produto baseado em AMI com AWS License Manager

Você pode integrar seu produto baseado em AMI ao License Manager usando a API do AWS License Manager. Inicie as instâncias do Amazon EC2 usando produtos baseados em AWS Marketplace AMI.

nota

Verifique se você concluiu os Pré-requisitos de integração do License Manager antes de executar o procedimento a seguir.

Para integrar seu produto baseado em AMI ao License Manager
  1. Conclua o procedimento em Criação de uma licença de teste no License Manager. Você deve criar uma licença de teste no License Manager para testar a integração.

  2. Execute a operação da GetLicenseAPI usando a licença Amazon Resource Name (ARN) que você obteve na etapa 1. Observe o valor do atributo KeyFingerprint da resposta GetLicense para uso posterior.

  3. Baixe e inclua o AWS SDK público mais recente em seu aplicativo.

  4. Para verificar se o comprador tem o direito de usar uma licença para seu aplicativo, execute a operação da CheckoutLicenseAPI. Use os detalhes dos direitos e a impressão digital da chave da licença de teste que você obteve na etapa 1.

    Se não houver direitos encontrados para a licença ou se a contagem máxima de direitos for excedida, a operação de API CheckoutLicense retornará NoEntitlementsAllowedException. Se os direitos forem válidos ou estiverem disponíveis para uso, a operação CheckoutLicense retornará uma resposta bem-sucedida com os direitos solicitados e os valores.

  5. (Obrigatório somente para direitos flutuantes) Execute a operação da CheckinLicenseAPI usando o LicenseConsumptionToken que foi recebido na CheckoutLicense resposta. Essa ação libera direitos previamente retirados de volta ao conjunto de direitos disponíveis.

  6. Depois de verificar com êxito a integração do License Manager com a licença de teste que você criou na etapa 1, atualize a impressão digital da chave no código para aws:294406891311:AWS/Marketplace:issuer-fingerprint. Agora, você está pronto para trabalhar com licenças emitidas pelo AWS Marketplace.

Siga o processo de lançamento da criação do aplicativo para um produto AMI e, em seguida, envie o produto para AWS Marketplace seguir o processo de publicação do produto.

Criação de uma licença de teste no License Manager

Você usa a versão 2 do AWS Command Line Interface (AWS CLI) para criar uma licença de teste em AWS License Manager. Essa licença de teste é usada somente para verificar e testar a AWS License Manager integração. Depois que o teste for concluído, você poderá excluir a licença de teste. A licença real é gerada pelo AWS Marketplace com uma impressão digital de chave diferente.

AWS Marketplace suporta dois tipos de direitos em. AWS License Manager No entanto, somente um tipo pode ser habilitado para um produto. Ao criar uma licença, incluindo uma licença de teste, você deve especificar um dos seguintes tipos de direitos:

Direitos em nível: o modelo de licença em nível dá ao cliente o direito a determinados recursos do aplicativo. Os clientes não podem definir a quantidade de unidades que desejam comprar. No entanto, eles podem selecionar um único pacote ou nível predefinido. Os clientes podem modificar o contrato posteriormente para assinar outro nível.

Direitos configuráveis: o modelo de licença configurável concede direitos a uma determinada quantidade de recursos quando o cliente adquire uma licença. O cliente escolhe a quantidade de unidades que deseja comprar durante o processo de assinatura e será cobrado com base no preço unitário. Os clientes também podem assinar várias dimensões.

Os parâmetros necessários para uso na operação de API CheckoutLicense são os seguintes:

  • CheckoutType: os valores válidos são Perpetual ou Provisional:

    • Perpetual: usado quando a quantidade de direitos retirados será esgotada do conjunto. Exemplo: o comprador tem o direito de processar 500 GB de dados. À medida que continua processando os dados, a quantidade é retirada e esgotada do conjunto de 500 GB. Obtém o status de uma licença comprada sobre se a licença está expirada ou prestes a expirar para enviar uma notificação ao cliente.

    • Provisional: usado para direitos de licença flutuante, em que os direitos são retirados do conjunto e devolvidos após o uso. Exemplo: o usuário tem direito a 500 usuários simultâneos no aplicativo. Conforme os usuários fazem login e se desconectam, eles são retirados e retornados ao conjunto de 500 usuários. Para obter mais informações sobre direitos de licença flutuante, consulte Licenças emitidas pelo vendedor no AWS License Manager.

  • ClientToken: identificador exclusivo que diferencia maiúsculas de minúsculas para garantir que o resultado exato ocorra e seja o mesmo, não importa quantas vezes você tente. Recomendamos que você use um identificador universalmente exclusivo (UUID) aleatório para cada solicitação.

  • Entitlements: lista de direitos a serem verificados.

    • Para direitos em nível, forneça as propriedades Name e Unit assim:

      {

      "Name": "<Entitlement_Name>",

      "Unit": "None"

      }

    • Para direitos configuráveis, forneça as propriedades Name, Value e Unit assim:

      {

      "Name": "<Entitlement_Name>",

      "Unit": "<Entitlement_Unit>",

      "Value": <Desired_Count>{

      }

  • KeyFingerprint: use essa impressão digital da chave para verificar se a licença foi emitida pelo AWS Marketplace. A impressão digital chave para licenças emitidas pela AWS Marketplace é a seguinte:

    aws:294406891311:AWS/Marketplace:issuer-fingerprint

  • Product SKU— ID do produto com um formato de identificador exclusivo global (GUID) associado a um AWS Marketplace produto.

exemplo de um direito configurável

Veja a seguir um exemplo de uma solicitação que usa a operação de API CheckoutLicense para verificar um direito configurável chamado PowerUsers.

aws license-manager checkout-license \ product-sku "2205b290-19e6-4c76-9eea-377d6bf71a47" \ checkout-type "PROVISIONAL" \ client-token "79464194dca9429698cc774587a603a1" \"Statement":[ entitlements "Name=PowerUsers,Value=1,Unit=Count" \ key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint"
exemplo de um direito em nível

Veja a seguir um exemplo de uma solicitação que usa a operação de API CheckoutLicense para verificar um direito de recurso chamado EnterpriseEdition.

aws license-manager checkout-license \ --product-sku "2205b290-19e6-4c76-9eea-377d6bf71a47" \ --checkout-type "PROVISIONAL" \ --client-token "79464194dca9429698cc774587a603a1" \ --entitlements "Name=EnterpriseEdition,Unit=None" \ --key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint"
Para criar uma licença de teste para o produto baseado em AMI
  1. Em seu ambiente local com a AWS CLI v2 instalada, execute o script a seguir. O script cria a licença de teste e configura os detalhes apropriados do produto.

    nota

    Use um teste Conta da AWS diferente daquele Conta da AWS em que você está implantando e testando seu software. As licenças não podem ser criadas, concedidas e verificadas na mesma Conta da AWS.

    #!/bin/bash # Replace with intended product ID on AWS Marketplace PRODUCT_ID=<REPLACE-WITH-PRODUCT-ID> # Replace with license recipient's AWS Account ID BENEFICIARY_ACCOUNT_ID=<REPLACE-WITH-BENEFICIARY-ACCOUNT-ID> # Replace with your product's name PRODUCT_NAME="Test Product" # Replace with your seller name on AWS Marketplace SELLER_OF_RECORD="Test Seller" # Replace with intended license name LICENSE_NAME="AWSMP Test License" # Replace the following with desired contract dimensions # More info here: https://docs.aws.amazon.com/license-manager/latest/APIReference/API_Entitlement.html # Example "configurable entitlement" ENTITLEMENTS='[ { "Name": "ReadOnly", "MaxCount": 5, "Overage": false, "Unit": "Count", "AllowCheckIn": true } ]' # Example "tiered entitlement" # ENTITLEMENTS='[ # { # "Name": "EnterpriseUsage", # "Value": "Enabled", # "Unit": "None" # } # ]' # Format "yyyy-mm-ddTHH:mm:ss.SSSZ" # This creates a validity period of 10 days starting the current day # Can be updated to desired dates VALIDITY_START=$(date +%Y-%m-%dT%H:%M:%S.%SZ) VALIDITY_END=$(date --date="+10 days" +%Y-%m-%dT%H:%M:%S.%SZ) # Configuration for consumption of the license as set on Marketplace products CONSUMPTION_CONFIG='{ "RenewType": "None", "ProvisionalConfiguration": { "MaxTimeToLiveInMinutes": 60 } }' # License's home Region HOME_REGION=us-east-1 # License issuer's name ISSUER=Self # Run AWS CLI command to create a license aws license-manager create-license \ --license-name "${LICENSE_NAME}" \ --product-name "${PRODUCT_NAME}" \ --product-sku "${PRODUCT_ID}" \ --issuer Name="${ISSUER}" \ --beneficiary "${BENEFICIARY_ACCOUNT_ID}" \ --validity 'Begin="'"${VALIDITY_START}"'",End="'"${VALIDITY_END}"'"' \ --entitlements "${ENTITLEMENTS}" \ --home-region "${HOME_REGION}" \ --region "${HOME_REGION}" \ --consumption-configuration "${CONSUMPTION_CONFIG}" \ --client-token $(uuidgen)
  2. Conceda a licença usando o AWS License Manager console. Para obter mais informações, consulte distribuir um direito no Guia do usuário do License Manager.

  3. Faça login na Conta da AWS que funciona como uma conta de comprador na qual você implantará e testará seu software. Isso deve ser diferente Conta da AWS do Conta da AWS que criou e concedeu a licença.

  4. Acesse o AWS License Manager console para aceitar e ativar as licenças concedidas. Para obter mais informações, consulte gerenciar as licenças concedidas no Guia do usuário do License Manager.

  5. Execute o seguinte comando no ambiente.

    # The following example uses a key fingerprint that should match the test license you created. # When checking out an actual AWS Marketplace created license, use the following fingerprint: # aws:294406891311:AWS/Marketplace:issuer-fingerprint aws license-manager checkout-license \ --product-sku <REPLACE-WITH-PRODUCT-ID> \ --checkout-type PROVISIONAL \ --key-fingerprint "aws:<ACCOUNT-ID-WHERE-YOU-CREATED-TEST-LICENSE>:Self:issuer-fingerprint" \ --entitlements "Name=ReadOnly,Value=1,Unit=Count" \ --client-token $(uuidgen)

    O comando anterior usa PROVISIONAL como valor para o parâmetro CheckoutType. Se o direito usar uma licença extraída, use PERPETUAL para obter o valor.

Chamadas de API do License Manager

Para gerenciar as licenças armazenadas na conta do License Manager do cliente, seu software pode usar as seguintes chamadas de API:

  • GetLicense: obtém o status de uma licença comprada sobre se a licença está expirada ou prestes a expirar para enviar uma notificação ao cliente.

  • CheckoutLicense: descobre as licenças que o usuário comprou. Você também pode usá-la para atualizar a quantidade de licenças quando o usuário tiver consumido alguma quantidade de licenças. Com CheckoutLicense, você pode continuar verificando as quantidades de licenças usadas pelo cliente. Quando o cliente esgota todas as licenças, essa chamada retorna um erro. Para obter informações sobre a cadência sugerida para execução de CheckoutLicense, consulte Renovações e upgrades de licenças.

  • ExtendLicenseConsumption: no caso de dimensões flutuantes, quando o software comprar uma licença, ele retornará a licença ao conjunto automaticamente após 60 minutos. Se você quiser estender o tempo em que a licença permanece verificada, o software pode chamar ExtendLicenseConsumption para estender a licença por mais 60 minutos.

  • CheckInLicense: no caso de dimensões flutuantes, quando quiser devolver a licença ao conjunto de direitos, use CheckInLicense.

  • ListReceivedLicenses: lista as licenças compradas pelo comprador.

Renovações e upgrades de licenças

Os clientes podem renovar ou atualizar as licenças no Portal de gerenciamento do AWS Marketplace. Depois de fazer uma compra adicional, AWS Marketplace gera uma nova versão da licença que reflete os novos direitos. Seu software lê os novos direitos usando as mesmas chamadas de API. Você não precisa fazer nada diferente em termos de integração do License Manager para lidar com renovações e atualizações.

Devido a renovações de licenças, upgrades, cancelamentos e assim por diante, recomendamos que seu produto execute a chamada de API CheckoutLicense em um ritmo regular enquanto o produto estiver em uso. Ao usar a operação de API CheckoutLicense em um ritmo regular, o produto pode detectar alterações nos direitos, como atualizações e expiração.

Recomendamos que você realize a chamada de API CheckoutLicense a cada 15 minutos.