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á.
Exemplo de dados de alocação de custos divididos
O objetivo do exemplo a seguir é mostrar como os dados de alocação de custos divididos são calculados calculando o custo de serviços individuais do Amazon ECS, tarefas em clusters do Amazon ECS e namespace e pods do Kubernetes nos clusters do Amazon EKS. As taxas usadas em todo o exemplo são apenas para fins ilustrativos.
nota
O exemplo demonstra o namespace e os pods do Kubernetes em execução nos clusters do Amazon EKS. Em seguida, podemos aplicar o mesmo modelo de custo ao serviço e às tarefas do Amazon ECS executados em um cluster do Amazon ECS.
Você tem o seguinte uso em uma única hora:
-
Cluster compartilhado de instância única (m5.xlarge) com dois namespaces e quatro pods, em execução por uma hora inteira.
-
A configuração da instância é de 4 vCPUs e 16 GB de memória.
-
O custo amortizado da instância é de USD 1/hora.
Os dados de alocação de custos divididos usam pesos unitários relativos para CPU e memória com base em uma proporção de 9:1. Isso é derivado dos preços por vCPU por hora e por GB por hora no AWS Fargate
Etapa 1: Calcular o custo unitário da CPU e da memória
Unit-cost-per-resource = Hourly-instance-cost/((Memory-weight *
Memory-available) + (CPU-weight * CPU-available))
= USD 1/( (1 * 16GB) + (9 * 4vCPU)) = USD 0,02
Cost-per-vCPU-hour = CPU-weight * Unit-cost-per-resource
= 9 * USD 0,02 = USD 0,17
Cost-per-GB-hour = Memory-weight * Unit-cost-per-resource
= 1 * USD 0,02 = USD 0,02
Instance | Instance type | vCPU-available | Memory-available | Amortized-cost-per-hour | Cost-per-vCPU-hour | Cost-per-GB-hour |
---|---|---|---|---|---|---|
Instance1 | m5.xlarge | 4 | 16 | $1 | 0,17 US$ | $0,02 |
Etapa 2: Calcular a capacidade alocada e a capacidade não utilizada da instância
-
Capacidade alocada: a memória e a vCPU alocadas ao pod Kubernetes da instância EC2 principal, definidas como a capacidade máxima usada e reservada.
nota
Se os dados de uso da memória ou da vCPU não estiverem disponíveis, os dados de reserva serão usados em vez disso. Para obter mais informações, consulte os relatórios de uso do Amazon ECS ou o monitoramento de custos do Amazon EKS.
-
Capacidade não utilizada da instância: a capacidade não utilizada da vCPU e da memória.
Pod1-Allocated-vCPU = Max (1 vCPU, 0.1 vCPU)
= 1 vCPU
Pod1-Allocated-memory = Max (4 GB, 3 GB)
= 4 GB
Instance-Unused-vCPU = Max (CPU-available - SUM(Allocated-vCPU),
0)
= Máx (4-4,9, 0) = 0
Instance-Unused-memory = Max (Memory-available - SUM(Allocated-memory),
0)
= Máx (16-14, 0) = 2 GB
Neste exemplo, a instância tem CPU em vez de assinatura, atribuída ao Pod2 que usou mais vCPU do que o reservado.
Pod name | Namespace | Reserved-vCPU | Used-vCPU | Allocated-vCPU | Reserved-memory | Used-memory | Allocated-memory |
---|---|---|---|---|---|---|---|
Pod1 | Namespace1 | 1 | 0,1 | 1 | 4 | 3 | 4 |
Pod2 | Namespace2 | 1 | 1.9 | 1.9 | 4 | 6 | 6 |
Pod3 | Namespace1 | 1 | 0,5 | 1 | 2 | 2 | 2 |
Pod4 | Namespace2 | 1 | 0,5 | 1 | 2 | 2 | 2 |
Unused | Unused | 0 | 2 | ||||
4,9 | 16 |
Etapa 3: Calcular as taxas de uso divididas
-
Taxa de uso dividida: a porcentagem de CPU ou memória usada pelo pod Kubernetes em comparação com a CPU ou memória geral disponível na instância do EC2.
-
Proporção não utilizada: a porcentagem de CPU ou memória usada pelo pod Kubernetes em comparação com a CPU ou memória geral usada na instância do EC2 (ou seja, sem considerar a CPU ou a memória não utilizadas na instância).
Pod1-vCPU-split-usage-ratio = Allocated-vCPU / Total-vCPU
= 1 vCPU / 4,9vCPU = 0,204
Pod1-Memory-split-usage-ratio = Allocated-GB / Total-GB
= 4 GB/ 16 GB = 0,250
Pod1-vCPU-unused-ratio = Pod1-vCPU-split-usage-ratio /
(Total-CPU-split-usage-ratio – Instance-unused-CPU)
(definido como 0 se a CPU não utilizada da instância for 0)
= 0 (já que a CPU não utilizada da instância é 0)
Pod1-Memory-unused-ratio = Pod1-Memory-split-usage-ratio /
(Total-Memory-split-usage-ratio – Instance-unused-memory)
(definido como 0 se I nstance-unused-memory for 0)
= 0,250 / (1-0,125) = 0,286
Pod name | Namespace | vCPU-split-usage-ratio | vCPU-unused-ratio | Memory-split-usage-ratio | Memory-unused-ratio |
---|---|---|---|---|---|
Pod1 | Namespace1 | 0,204 | 0 | 0,250 | 0,286 |
Pod2 | Namespace2 | 0,388 | 0 | 0,375 | 0,429 |
Pod3 | Namespace1 | 0,204 | 0 | 0.125 | 0.143 |
Pod4 | Namespace2 | 0,204 | 0 | 0.125 | 0.143 |
Unused | Unused | 0 | 0.125 | ||
1 | 1 |
Etapa 4: Calcular o custo dividido e os custos não utilizados
-
Custo dividido: a alocação do custo de pagamento por uso do custo da instância EC2 com base no uso alocado de CPU e memória pelo pod Kubernetes.
-
Custo da instância não utilizada: o custo dos recursos de CPU ou memória não utilizados na instância.
Pod1-Split-cost = (Pod1-vCPU-split-usage-ratio * vCPU-available *
Cost-per-vCPU-hour) + (Pod1-Memory-split-usage-ratio * Memory-available *
Cost-per-GB-hour)
= (0,204 * 4 vCPU * USD 0,17) + (0,25 * 16GB * USD 0,02) = USD 0,22
Pod1-Unused-cost = (Pod1-vCPU-unused-ratio *
Instance-vCPU-unused-ratio * vCPU-available * Cost-per-VCPU-hour) +
(Pod1-Memory-unused-ratio * Instance-Memory-unused ratio * Memory-available
* Cost-per-GB-hour)
= (0 * 0 * 4 * USD 0,17) + (0,286 * 0,125 * 16 * USD 0,02) = USD 0,01
Pod1-Total-split-cost = Pod1-Split-cost +
Pod1-Unused-cost
= USD 0,23
Pod name | Namespace | Split-cost | Unused-cost | Total-split-cost |
---|---|---|---|---|
Pod1 | Namespace1 | $0,22 | $0,01 | $0,23 |
Pod2 | Namespace2 | $0,38 | $0,02 | $0,40 |
Pod3 | Namespace1 | 0,18 US$ | $0,01 | 0,19 US$ |
Pod4 | Namespace2 | 0,18 US$ | $0,01 | 0,19 US$ |
Unused | Unused | $0,04 | ||
$1 | $0,04 | $1 |
O custo do serviço é a soma do custo dos pods associados a cada namespace.
Custo total do Namespace1 = 0,23 USD + 0,19 USD = 0,42 USD
Custo total do Namespace2 = 0,40 USD + 0,19 USD = 0,59 USD
Amostra AWS CUR
Se seu Savings Plans cobrir todo o uso da instância do EC2 no período de cobrança, os custos amortizados serão calculados usando savingsPlan/SavingsPlanEffectiveCost.
Se você tiver um Savings Plan cobrindo o uso parcial da instância do EC2 no período de cobrança e o restante do uso da instância do EC2 for cobrado de acordo com taxas sob demanda, os custos amortizados da instância do EC2 serão calculados usando savingsPlan/SavingsPlanEffectiveCost (para) + (para SavingsPlanCoveredUsage uso sob demanda). lineItem/UnblendedCost