

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Concepto de datos de asignación de costos divididos
<a name="split-cost-allocation-data"></a>

Puede utilizar los informes de coste y uso (AWS CUR) para realizar un seguimiento de los costes de sus contenedores Amazon ECS y Amazon EKS. Al utilizar los datos de asignación de costos divididos, puede asignar los costos de sus contenedores a unidades de negocio y equipos individuales, en función de la forma en que sus cargas de trabajo de contenedores consuman recursos informáticos y de memoria compartidos. Los datos de asignación de costos divididos introducen en CUR los datos de costo y uso de los nuevos recursos a nivel de contenedor (es decir, tareas de ECS y pods de Kubernetes). AWS Anteriormente, AWS CUR solo cubría los costes a nivel de instancia de EC2. Los datos de asignación de costos divididos generan costos a nivel de contenedor al analizar el consumo de recursos de la instancia EC2 de cada contenedor, y generan costos en función del costo amortizado de la instancia y del porcentaje de recursos de CPU y memoria consumidos por los contenedores que se hayan ejecutado en la instancia.

En el caso de las instancias de computación acelerada que se utilizan con Amazon EKS, los datos de asignación de costos divididos incluyen la asignación de recursos para procesadores especializados junto con la CPU y la memoria. Esto incluye los aceleradores NVIDIA y AMD GPUs, AWS Trainium e Inferentia. AWS Esta característica solo está disponible para los entornos de Amazon EKS y proporciona datos de reserva de recursos en el pod para estos recursos computacionales acelerados. De este modo, puede realizar un seguimiento y asignar los costos de las cargas de trabajo que utilizan estos procesadores especializados, como las aplicaciones de IA/ML y otras tareas que requieren un uso intensivo de recursos computacionales. Para obtener una lista actualizada de las instancias de computación acelerada, consulte [Computación acelerada](https://aws.amazon.com/ec2/instance-types/#Accelerated_Computing).

Los datos de asignación de costes divididos introducen nuevos registros de uso y nuevas columnas de métricas de costes para cada ID de recurso contenerizado (es decir, tarea de ECS y módulo de Kubernetes) de CUR. AWS Para obtener más información, consulte [Split line item details](https://docs.aws.amazon.com/cur/latest/userguide/split-line-item-columns.html).

Al incluir los datos de asignación de costes divididos en AWS CUR, se añaden dos nuevos registros de uso por hora para cada tarea de ECS y módulo de Kubernetes para reflejar los costes de CPU y memoria. Para estimar el número de nuevas partidas en AWS CUR por día, usa la siguiente fórmula:

Para ECS: `(number of tasks * average task lifetime * 2) * 24`

Para EKS: `(number of pods * average pod lifetime * 2) * 24`

Por ejemplo, si tiene 1000 pods ejecutándose cada hora en un clúster de 10 instancias de EC2 y la duración del pod es inferior a 1 hora, entonces: 

`(1000 * 1 * 2) * 24 = 48,000 new usage records in AWS CUR`

En cuanto a las instancias de computación acelerada en Amazon EKS, se han añadido tres nuevos registros de uso por hora para cada pod de Kubernetes a fin de reflejar los costos del acelerador, CPU y memoria. Para estimar el número de nuevas líneas de pedido en AWS CUR por día, utilice la siguiente fórmula:

Para EKS con computación acelerada: `(number of pods * average pod lifetime * 3) * 24`

Por ejemplo, si se ejecutan 1000 pods cada hora en un clúster de 10 instancias de EC2 y la duración del pod es inferior a 1 hora, entonces: `(1000 * 1 * 3) * 24 = 72,000 new usage records in AWS CUR`

**nota**  
Para ECS: cuando se trata de etiquetas de asignación de AWS costes, puedes utilizar etiquetas gestionadas por Amazon ECS o etiquetas añadidas por los usuarios para tus informes de costes y uso. Estas etiquetas se aplican a todos los nuevos registros de uso de datos de asignación de costos divididos de ECS. Para obtener más información, consulte [Tagging your ECS resources for billing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html#tag-resources-for-billing).  
Para EKS: los datos de asignación de costos divididos crean nuevas etiquetas de asignación de costos para algunos atributos de Kubernetes. Estas etiquetas incluyen `aws:eks:cluster-name`, `aws:eks:deployment`, `aws:eks:namespace`, `aws:eks:node`, `aws:eks:workload-name` y `aws:eks:workload-type`.  
`aws:eks:cluster-name`, `aws:eks:namespace`, y `aws:eks:node` se rellenan retrospectivamente con el nombre del clúster, el espacio de nombres y el nodo.
`aws:eks:workload-type` solo se rellena si hay exactamente una carga de trabajo que administre el pod y si es una de las cargas de trabajo integradas. Los tipos de carga de trabajo incluyen `ReplicaSet`, `StatefulSet`, `Job`, `DaemonSet` o `ReplicationController`, y `aws:eks:workload-name` incluye el nombre de la carga de trabajo. Para obtener más información, consulte [Cargas de trabajo](https://kubernetes.io/docs/concepts/workloads/) en la *documentación de Kubernetes*.
`aws:eks:deployment` solo se rellena para el tipo de carga de trabajo `ReplicaSet`. Es la implementación la que crea un `ReplicaSet`.
Estas etiquetas se aplican a todos los nuevos registros de uso de datos de asignación de costos divididos de EKS. Estas etiquetas están habilitadas para la asignación de costos de forma predeterminada. Si anteriormente usó y deshabilitó la etiqueta `aws:eks:cluster-name`, los datos de asignación de costos divididos mantienen esta configuración y no habilitan la etiqueta. Puede habilitarla desde la página [Etiquetas de asignación de costos](https://console.aws.amazon.com/billing/home#/tags) de la consola.

# Habilitación de los datos de asignación de costos divididos
<a name="enabling-split-cost-allocation-data"></a>

**nota**  
Los datos de asignación de costos divididos no están disponibles en Explorador de costos. Está disponible en los informes de costos y usos (CUR) y en los informes de costos y usos 2.0 (CUR 2.0) con Exportaciones de datos.

Como requisito previo, se deben activar los datos de asignación de costos divididos a través de las preferencias de Administración de costos.

**Activación de los datos de asignación de costos divididos**

1. Abra la consola de Administración de facturación y costos en [https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/).

1. En el panel de navegación, seleccione **Preferencias de administración de costos**.

1. En **General**, en la sección **Datos de asignación de costos divididos**, elija entre las siguientes opciones:
   + **Amazon Elastic Container Service (Amazon ECS)** para suscribirse únicamente a Amazon ECS.
   + **Amazon Elastic Kubernetes Service (Amazon EKS)** para suscribirse únicamente a Amazon EKS. En Amazon EKS, elija una de las siguientes opciones:
     + **Solicitudes de recursos**: esto asigna los costos de Amazon EC2 únicamente en función de los recursos de CPU y memoria del pod de Kubernetes. Esto fomentará que los equipos de aplicaciones aprovisionen únicamente lo que necesitan.
     + **Amazon Managed Service para Prometheus**: esto asigna los costos de Amazon EC2 en función de lo que sea superior: si las solicitudes de recursos de CPU y memoria del pod de Kubernetes o la utilización real. Esto garantiza que cada equipo de aplicaciones pague por lo que utiliza. Para obtener más información sobre la configuración de Amazon Managed Service para Prometheus, consulte [Configuración](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-setting-up.html) en la *Guía del usuario de Amazon Managed Service para Prometheus*. 

       Requisito previo: debe activar todas las funciones. AWS Organizations Para obtener más detalles, consulte [Habilitar todas las características en su organización](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html) en la *Guía del usuario de Organizations*.
     + **Amazon CloudWatch Container Insights**: proporciona una visibilidad más detallada de los costes de los clústeres que ejecutan varios contenedores de aplicaciones mediante instancias EC2 compartidas, lo que permite una mejor asignación de los costes compartidos de los clústeres de EKS.

**nota**  
Solo las cuentas normales y las de pago tienen acceso a las AWS Cost Management preferencias y pueden optar por dividir los datos de asignación de costes. Una vez habilitadas, las cuentas miembro pueden ver los datos en los informes de costos y usos.
Si elige las solicitudes de recursos, los datos de asignación de costos divididos solo utilizarán los pods configurados con solicitudes de memoria y CPU. En los pods en los que no se haya solicitado ningún uso no se podrá consultar ningún dato de costos divididos.
Si eliges Amazon Managed Service para Prometheus, tendrás que activar todas las funciones de Organizations. AWS Para obtener más información, consulte [Habilitar todas las características en su organización](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html). Además, los datos de asignación de costos divididos crean un nuevo rol vinculado a servicios, que permite el acceso a los servicios y recursos de AWS utilizados o administrados mediante los datos de asignación de costos divididos.
En el caso de las instancias de computación acelerada, solo se admite la opción de solicitud de recursos. No se admiten Amazon Managed Service for Prometheus ni CloudWatch Amazon Container Insights en estas instancias. Al utilizar instancias de computación acelerada, el sistema usa la solicitud de recursos de forma predeterminada para calcular los costos del acelerador, la CPU y la memoria, incluso si hay otras opciones de medición activadas.

Una vez que haya optado por participar, puede elegir que los datos de costos y usos de los recursos a nivel de contenedor se incluyan en su informe durante el primer paso de la creación del informe o, posteriormente, editando los detalles del informe.

**Inclusión de datos de costos y usos en el informe**

1. Abra la consola de Administración de facturación y costos en [https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/).

1. En el panel de navegación, seleccione **Páginas heredadas** y elija **Informes de uso y costo**.

1. Ya sea para crear un nuevo informe o editar uno existente, en la página **Especificar detalles del informe**, en **Contenido del informe**, seleccione **Datos de asignación de costos divididos**.

**nota**  
También puede usar la API AWS CUR o la AWS Command Line Interface (CLI) para administrar sus preferencias de datos de asignación de costos divididos.

Los datos de asignación de costos divididos permiten ver los costos de todos los objetos de contenedor de Amazon ECS y Amazon EKS en toda su familia de facturación unificada (cuentas de pagadores y cuentas vinculadas). Una vez activados, los datos de asignación de costos divididos buscan automáticamente las tareas y los contenedores. Ingiere los datos de uso de la telemetría para las cargas de trabajo de los contenedores y prepara los datos de costos detallados para el mes en curso.

**nota**  
Los datos pueden tardar hasta 24 horas en estar visibles en AWS CUR.

Para obtener más información acerca de la administración del acceso a las páginas de la consola de Administración de facturación y costos, consulte [Información general sobre la administración de permisos de acceso](https://docs.aws.amazon.com/cost-management/latest/userguide/control-access-billing.html).

Para obtener información sobre AWS Cost Management las preferencias y el control del acceso a Cost Explorer, consulte [Controlar el acceso a Cost Explorer](https://docs.aws.amazon.com/cost-management/latest/userguide/ce-access.html).

# Ejemplo de datos de asignación de costos divididos
<a name="example-split-cost-allocation-data"></a>

El objetivo del siguiente ejemplo es mostrarle cómo se calculan los datos de asignación de costos divididos mediante el cómputo del costo de los servicios individuales de Amazon ECS, de las tareas en los clústeres de Amazon ECS, y de los pods y espacio de nombres de Kubernetes en los clústeres de Amazon EKS. Las tasas utilizadas en todo el ejemplo tienen únicamente fines ilustrativos.

**nota**  
El ejemplo muestra los pods y el espacio de nombres de Kubernetes que se ejecutan en los clústeres de Amazon EKS. A continuación, podemos aplicar el mismo modelo de costos a los servicios y tareas de Amazon ECS que se ejecuten en un clúster de Amazon ECS.

Tiene el siguiente uso en una sola hora:
+ Clúster compartido de instancia única (m5.xlarge) con dos espacios de nombres y cuatro pods, que se ejecuta durante una hora completa.
+ La configuración de instancia es de 4 vCPU y 16 GB de memoria.
+ El costo amortizado de la instancia es de 1 USD por hora.

Los datos de asignación de costos divididos utilizan pesos unitarios relativos para la CPU y la memoria en función de una proporción de 9:1. Esto se deriva de los precios por vCPU por hora y por GB por hora en [AWS Fargate](https://aws.amazon.com/fargate/pricing/).

## Paso 1: cálculo del costo unitario de la CPU y la memoria
<a name="example-step1"></a>

`Unit-cost-per-resource = Hourly-instance-cost/((Memory-weight * Memory-available) + (CPU-weight * CPU-available))`

= 1 USD/( (1 x 16 GB) \$1 (9 x 4vCPU)) = 0,02 USD

`Cost-per-vCPU-hour = CPU-weight * Unit-cost-per-resource`

= 9 x 0,02 USD = 0,17 USD

`Cost-per-GB-hour = Memory-weight * Unit-cost-per-resource`

= 1 x 0,02 USD = 0,02 USD


****  

| Instance | Instance type | vCPU-available | Memory-available | Amortized-cost-per-hour | Cost-per-vCPU-hour | Cost-per-GB-hour | 
| --- | --- | --- | --- | --- | --- | --- | 
| Instance1 | m5.xlarge | 4 | 16 | \$11 | 0,17\$1 | 0,02\$1 | 

## Paso 2: cálculo de la capacidad asignada y la capacidad no utilizada de la instancia
<a name="example-step2"></a>
+ Capacidad asignada: la memoria y la vCPU asignadas al pod de Kubernetes desde la instancia de EC2 principal, definidas como la máxima capacidad reservada y utilizada.
**nota**  
Si los datos de uso de memoria o vCPU no están disponibles, se utilizarán los datos de reserva en su lugar. Para obtener más información, consulte [Informes de uso de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/usage-reports.html) o [Supervisión de costos de Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/cost-monitoring.html).
+ Capacidad no utilizada de la instancia: la capacidad no utilizada de la vCPU y la memoria.

`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áximo (4 — 4,9, 0) = 0

`Instance-Unused-memory = Max (Memory-available - SUM(Allocated-memory), 0)`= Máximo (16 — 14, 0) = 2 GB

En este ejemplo, la instancia tiene una sobresuscripción de CPU, lo que se atribuye a que Pod2 ha utilizado más vCPU de la que estaba reservada.


****  

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

## Paso 3: calcule las tasas de uso divididas
<a name="example-step3"></a>
+ Índice de uso dividido: el porcentaje de CPU o memoria que utiliza el pod de Kubernetes en comparación con el total de CPU o memoria disponible en la instancia de EC2.
+ Índice no utilizado: el porcentaje de CPU o memoria que utiliza el pod de Kubernetes en comparación con la CPU o memoria total utilizada en la instancia EC2 (es decir, sin tener en cuenta la CPU o la memoria no utilizadas de la instancia).

`Pod1-vCPU-split-usage-ratio = Allocated-vCPU / Total-vCPU`

= 1 vCPU/ 4,9 vCPU = 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)`(establecido en 0 si Instance-unused-CPU es 0)

= 0 (ya que Instance-unused-CPU es 0)

`Pod1-Memory-unused-ratio = Pod1-Memory-split-usage-ratio / (Total-Memory-split-usage-ratio – Instance-unused-memory)`(establecido en 0 si Instance-unused-memory es 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 |  | 

## Paso 4: cálculo del costo dividido y los costos no utilizados
<a name="example-step4"></a>
+ Costo dividido: la asignación del costo de pago por uso del costo de la instancia de EC2 en función del uso de CPU y memoria asignado al pod de Kubernetes.
+ Costo de la instancia no utilizada: el costo de los recursos de CPU o memoria no utilizados de la instancia.

`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 x 4 vCPU x 0,17 USD) \$1 (0,25 x 16 GB x 0,02 USD) = 0,22 USD

`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 x 0 x 4 x 0,17 USD) \$1 (0,286 x 0,125 x 16 x 0,02 USD) = 0,01 USD

`Pod1-Total-split-cost = Pod1-Split-cost + Pod1-Unused-cost`

= 0,23 USD


****  

| Pod name | Namespace | Split-cost | Unused-cost | Total-split-cost | 
| --- | --- | --- | --- | --- | 
| Pod1 | Namespace1 | 0,22\$1 | 0,01\$1 | 0,23\$1 | 
| Pod2 | Namespace2 | 0,38\$1 | 0,02\$1 | 0,40\$1 | 
| Pod3 | Namespace1 | 0,18\$1 | 0,01\$1 | 0,19\$1 | 
| Pod4 | Namespace2 | 0,18\$1 | 0,01\$1 | 0,19\$1 | 
| Unused | Unused | 0,04\$1 |  |  | 
|  |  | 1 DÓLAR | 0,04\$1 | 1 DÓLAR | 

El costo del servicio es la suma del costo de los pods asociados a cada espacio de nombres.

Costo total de Namespace1 = 0,23 USD \$1 0,19 USD = 0,42 USD

Costo total de Namespace2 = 0,40 USD \$1 0,19 USD = 0,59 USD

## Ejemplo de AWS CUR
<a name="example-savingsplan"></a>

Si tiene un Savings Plans que cubre todo el uso de la instancia de EC2 durante el período de facturación, los costos amortizados se calculan utilizando savingsPlan/SavingsPlanEffectiveCost.

![\[Table showing EC2 instance usage details with Planes de ahorro and cost breakdown.\]](http://docs.aws.amazon.com/es_es/cur/latest/userguide/images/savings-plan-entire-usage.png)


Si tiene un Savings Plans que cubre el uso parcial de la instancia de EC2 durante el período de facturación y el resto del uso de la instancia de EC2 se factura según las tarifas bajo demanda, los costos amortizados de la instancia de EC2 se calculan utilizando savingsPlan/SavingsPlanEffectiveCost (para SavingsPlanCoveredUsage) \$1 lineItem/UnblendedCost (para el uso bajo demanda).

![\[Table showing EC2 instance usage details, costs, and savings plan information.\]](http://docs.aws.amazon.com/es_es/cur/latest/userguide/images/savings-plan-partial-usage.png)


# Ejemplo de datos de asignación de costos divididos para instancias aceleradas
<a name="example-accelerated-instances"></a>

El objetivo del siguiente ejemplo es mostrarle cómo se calculan los datos de asignación de costos divididos mediante el cómputo del costo de los pods y espacio de nombres de Kubernetes en los clústeres de Amazon EKS. Las tasas utilizadas en todo el ejemplo tienen únicamente fines ilustrativos.

Tiene el siguiente uso en una sola hora:
+ Instancia de EC2 individual que ejecuta cuatro pods en dos espacios de nombres y de la que quiere saber los costos de cada espacio de nombres.
+ La instancia de EC2 es p3.16xlarge con 8 GPU, 64 vCPU y 488 GB de RAM.
+ El coste amortizado de la instancia es de 10 USD por hora.

Los datos de asignación de costos divididos normalizan el costo por recurso en función de un índice relativo de la GPU:(cpu:memoria) de 9:1. Esto implica que una unidad de GPU cuesta nueve veces más que una unidad de CPU y memoria. Por ello, a la CPU y a la memoria se les asigna entonces un peso de 9:1. Para una instancia de EC2 no acelerada, se adoptará el comportamiento predeterminado actual, que es la CPU: el peso de la memoria se establece de forma predeterminada en 9:1.

## Paso 1: cálculo del costo unitario
<a name="w2aac32c21c13c31c11"></a>

En función de los recursos de CPU y memoria de la instancia de EC2 y si utilizamos el índice mencionado anteriormente, los datos de asignación de costos divididos primero calculan el costo unitario por GPU, vCPU/hora y GB/hora.

`GPU-Weight =9`

`GPU+Memory-Weight =1`

`CPU-Weight=1*.9=.9`

`Memory-Weight=1*0.1=0.1`

`Hourly-Instance-Cost=$10`

`GPU-Available=8`

`Memory-Available=488`

`CPU-Available=64`

`UnitCostPerResource = Hourly-Instance-Cost/(( GPU-Weight * GPU-Available) + (Memory-Weight * Memory-Available) + (CPU-Weight * CPU-Available)) = $10/((9*8gpu)+ (0.1 * 488GB) + (.9 * 64vcpu)) = $0.056`

`Cost-per-GPU-Hour = GPU-Weight * UnitCostPerResource = 9 * $0.056 = $0.504`

`Cost-per-vcpu-Hour = CPU-Weight * UnitCostPerResource = .9 * $0.056 = $0.05`

`Cost-per-GB-Hour = Memory-Weight * UnitCostPerResource = .1 * $0.056 = $0.00506`


**Tabla 1: Cálculo del costo unitario**  

| Instancia | Tipo de instancia | vCPU disponible | GPU disponible | \$1\$1 | Memoria disponible | Costo amortizado por hora | Costo por hora de vCPU | Costo por hora de GPU | Costo por hora de GB | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| Instancia 1 | p3.16xlarge | 64 | 8 |  | 488 | 10\$1 | 0,05 USD | 0,50\$1 | 0,005 | 

## Paso 2: cálculo de la capacidad asignada y sin utilizar
<a name="w2aac32c21c13c31c13"></a>

Capacidad asignada  
La GPU, la vcpu y la memoria asignadas al pod de Kubernetes desde la instancia de EC2 principal, definidas como la máxima capacidad (reservada y utilizada).

Capacidad sin utilizar de la instancia  
Capacidad no utilizada de la GPU, la vcpu y la memoria.

`Pod1-Allocated-GPU = Max (1 GPU, 1 GPU) = 1 GPU`

`Pod1-Allocated-vcpu = Max (16 vcpu, 4 vcpu) = 16 vcpu`

`Pod1-Allocated-Memory = Max (100 GB, 60 GB) = 100 GB`

`Instance-Unused-GPU = Max (GPU-Available - SUM(Allocated-vcpu), 0)`

`= Max (8 – 8, 0) = 0`

`Instance-Unused-vcpu = Max (CPU-Available - SUM(Allocated-vcpu), 0)`

`= Max (16 – 18, 0) = 0`

`Instance-Unused-Memory = Max (Memory-Available - SUM(Allocated-Memory), 0)`

`= Max (488 – 440, 0) = 48 GB`

En este ejemplo, la instancia tiene una sobresuscripción de CPU, lo que se atribuye a que Pod 2 ha utilizado más GPU y vcpu de la que estaba reservada.


**Paso 2: cálculo de la capacidad asignada y sin utilizar**  

| Nombre de pod | Namespace | vcpu reservada | vcpu utilizada | vcpu asignada | GPU reservada | GPU usada | GPU asignada | Memoria reservada | Memoria usada | Memoria asignada | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| Pod 1 | Espacio de nombres 1 | 16 | 4 | 16 | 1 | 1 | 1 | 100 | 60 | 100 | 
| Pod 2 | Espacio de nombres 2 | 16 | 18 | 18 | 2 | 3 | 3 | 100 | 140 | 140 | 
| Pod 3 | Espacio de nombres 1 | 16 | 4 | 16 | 2. | 1 | 2 | 100 | 60 | 100 | 
| Cápsula 4 | Espacio de nombres 2 | 16 | 4 | 16 | 2 | 2 | 2. | 100 | 40 | 100 | 
| No utilizado | No utilizado | 0 | 34 | 0 | 1 | 1 | 0 | 88 | 188 | 48 | 
| \$1\$1\$1 |  | 64 | 32 | 66 | 8 | 8 | 8 | 488 | 488 | 488 | 

## Paso 3: cálculo de los índices de uso dividido y de utilización
<a name="w2aac32c21c13c31c15"></a>

Índice de uso dividido  
Es el porcentaje de CPU o memoria que utiliza el pod de Kubernetes en comparación con el total de CPU o memoria disponible en la instancia de EC2.

Índice no utilizado  
Es el porcentaje de CPU o memoria que utiliza el pod de Kubernetes en comparación con la CPU o memoria totales utilizadas en la instancia de EC2 (es decir, sin tener en cuenta la CPU o la memoria no utilizadas de la instancia).

Es el porcentaje de CPU o memoria que utiliza el pod de Kubernetes en comparación con el total de CPU o memoria disponible en la instancia de EC2.

`Pod1-GPU-Utilization-Ratio = Allocated-GPU / Total-GPU`

`= 1 gpu / 8 gpu = 0.125`

`Pod1-vcpu-Utilization-Ratio = Allocated-vcpu / Total-vcpu`

`= 16 vcpu / 66 vcpu = 0.24`

`Pod1-Memory-Utilization-Ratio = Allocated-GB / Total-GB`

`= 100 GB/ 488GB = 0.205`

`Pod1-GPU-Split-Ratio = Pod1-GPU-Utilization-Ratio / (Total-GPU-Utilization-Ratio – Instance-Unused-GPU). Set to 0 if Instance-Unused-GPU = 0`

`= 0 since Instance-Unused-GPU is 0`

`Pod1-vcpu-Split-Ratio = Pod1-CPU-Utilization-Ratio / (Total-CPU-Utilization-Ratio – Instance-Unused-CPU). Set to 0 if Instance-Unused-CPU = 0`

`= 0 since Instance-Unused-CPU is 0`

`Pod1-Memory-Split-Ratio = Pod-Memory-Utilization-Ratio / (Total-Utilization-Ratio – Instance-Unused-Memory). Set to 0 if Instance-Unused-Memory = 0`

`= 0.204/ (1-0.102) = 0.227`


**Tabla 3: Índices de utilización de la computación**  

| Nombre de pod | Namespace | Utilización de vcpu | Índice de uso dividido de vcpu | Uso de la GPU | Índice de uso dividido de la GPU | Utilización de la memoria | Índice de uso dividido de la memoria | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| Pod 1 | Espacio de nombres 1 | 0,242 | 0 | 0.125 | 0 | 0,205 | 0.227 | 
| Pod 2 | Espacio de nombres 2 | 0,277 | 0 | 0,375 | 0 | 0,287 | 0,318 | 
| Pod 3 | Espacio de nombres 1 | 0,242 | 0 | 0,25 | 0 | 0,205 | 0.227 | 
| Cápsula 4 | Espacio de nombres 2 | 0.242 | 0 | 0,25 | 0 | 0,205 | 0.227 | 
| No utilizado | No utilizado | 0 |  |  |  | 0,098 |  | 
|  |  | 1 | 0 | 1 | 0 | 1 | 1 | 

## Paso 4: cálculo del costo dividido y los costos no utilizados
<a name="w2aac32c21c13c31c17"></a>

Costos divididos  
La asignación del costo de pago por uso del costo de la instancia de EC2 en función del uso de CPU y memoria asignado a los pods de Kubernetes.

Costo de las instancias sin utilizar  
Es el costo de los recursos de CPU o memoria no utilizados de la instancia.

`Pod1-Split-Cost = (Pod1-GPU-Utilization-Ratio * GPU-Available * Cost per GPU-Hour) + (Pod1-vcpu-Utilization-Ratio * vcpu-Available * Cost per vcpu-Hour) + (Pod1-Memory-Utilization-Ratio * Memory-Available * Cost per GB-Hour)`

`= (.125*8gpu*$0.504) + (0.242 * 64 vcpu * $0.05) + (0.204 * 488GB * $0.00506) = 0.504+ 0.774 + 0.503 = $1.85`

`Pod1-Unused-Cost = (GPU-Split-Ratio * Unused-Cost) + (vcpu-Split-Ratio * Unused-Cost) + (Memory-Split-Ratio * Unused-Cost)`

`= (0*0*8*$0.504) + (0 * $0.05) + (0.227 *.102*488GB*$.00506) = $0.06`

`Pod1-Total-Split-Cost = Pod1-Split-Cost + Pod1-Unused-Cost = $1.85 + $0.06 = $1.91`

[Nota: Costo no utilizado = ratio de tiempo útil no utilizado \$1 Recurso total \$1 Costo por hora del recurso]


**Tabla 4: Resumen de los costos divididos y no utilizados calculados cada hora para todos los pods que se ejecutan en el clúster**  

| Nombre de pod | Namespace | Costos divididos | Costo no utilizado | Costo total | 
| --- | --- | --- | --- | --- | 
| Pod 1 | Espacio de nombres 1 | 1,85 dólares | 0,06 USD | 1,91\$1 | 
| Pod 2 | Espacio de nombres 2 | 3,18 DÓLARES | 0,09\$1 | 3,26 DÓLARES | 
| Pod 3 | Espacio de nombres 1 | 2,35 DÓLARES | 0,06 USD | 2,41 DÓLARES | 
| Cápsula 4 | Espacio de nombres 2 | 2,35 DÓLARES | 0,06 USD | 2,41 DÓLARES | 
| Total |  |  |  | 10 DÓLARES | 

# Uso de etiquetas de Kubernetes para la asignación de costos en EKS
<a name="split-cost-allocation-data-kubernetes-labels"></a>

Los datos de asignación de costos divididos admiten las etiquetas de Kubernetes como etiquetas de asignación de costos para los clústeres de Amazon EKS. Si bien estas etiquetas se importan automáticamente como etiquetas de asignación de costos definidas por el usuario, es necesario activarlas en la cuenta de administración. Una vez activadas, puede utilizarlas para atribuir los costos en el pod en sus informes de costos y usos (CUR) con atributos personalizados, como el centro de costos, la aplicación, la unidad de negocio y el entorno.

Esta característica ayuda a las organizaciones a realizar un seguimiento y asignar los costos con precisión en entornos de EKS compartidos entre equipos, proyectos o departamentos. Las etiquetas de Kubernetes le permiten asignar los costos de Kubernetes en función de sus requisitos empresariales específicos y del diseño organizativo.

## Requisitos previos
<a name="prerequisites-kubernetes-labels"></a>

Para usar etiquetas de Kubernetes con datos de asignación de costos divididos se han de cumplir los siguientes requisitos previos:
+ Debe habilitar los datos de asignación de costos divididos en la consola AWS Billing and Cost Management. Esto debe activarse en la cuenta de administración. Para obtener más información, consulte [Habilitación de los datos de asignación de costos divididos](https://docs.aws.amazon.com/cur/latest/userguide/enabling-split-cost-allocation-data.html).
+ Necesita un clúster de EKS en el cual desee realizar el seguimiento de los datos de asignación de costos divididos. Puede elegir un clúster existente, o bien crear uno nuevo. Para obtener más información, consulte *Creación de un clúster de Amazon EKS* en la [Guía del usuario de Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html).
+ Debe asignar etiquetas a los pods en el clúster de EKS. Para obtener más información sobre cómo crear etiquetas en Kubernetes, consulte [Etiquetas y Selectores](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) en la *documentación de Kubernetes*.

## Uso de etiquetas de Kubernetes en EKS
<a name="work-with-kubernetes-labels"></a>

Los datos de asignación de costos divididos admiten hasta 50 etiquetas de Kubernetes por pod, que se ordenan alfabéticamente antes de importarse como etiquetas de asignación de costos. Las etiquetas más allá de la 50 se descartan automáticamente. Si quiere añadir una nueva etiqueta de asignación de costos después de alcanzar el límite de 50 etiquetas, primero debe eliminar una etiqueta existente y asegurarse de que la nueva etiqueta esté entre las 50 primeras al ordenarlas alfabéticamente.

**nota**  
Algunos servicios AWS gestionados añaden etiquetas automáticamente a los módulos de EKS. Estas etiquetas se tienen en cuenta para el límite de 50 etiquetas por pod y aparecerán en la página de etiquetas de asignación de costos.  
Si bien las etiquetas de Kubernetes no tienen restricciones de tamaño, las etiquetas de asignación de costos tienen límites de caracteres específicos: 128 caracteres para las claves de las etiquetas y 256 caracteres para los valores de las etiquetas. Las etiquetas que superen estos límites de caracteres se descartarán y no se presentarán como etiquetas de asignación de costos. Se recomienda crear etiquetas que respeten estos límites de caracteres para la asignación de costos.

Las etiquetas de Kubernetes importadas aparecen como etiquetas de asignación de costos y deben activarse en la cuenta del pagador. Para obtener más información sobre las etiquetas de asignación de costos y su activación, consulte [Uso de etiquetas de asignación de costos definidas por el usuario](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/custom-tags.html). Se aplican los siguientes límites de etiquetas de asignación de costos: 50 etiquetas definidas por el usuario por recurso y 500 etiquetas definidas por el usuario por cuenta de pagador. Las etiquetas generadas por el sistema no computan para estos límites.

**nota**  
Después de crear y aplicar etiquetas definidas por el usuario a los recursos, las claves de etiqueta pueden tardar hasta 24 horas en aparecer en la página de etiquetas de asignación de costos. Después de activar las etiquetas, pueden pasar hasta 24 horas hasta que estén activas.

## Administración de las etiquetas de Kubernetes y las etiquetas de asignación de costos
<a name="manage-kubernetes-labels"></a>

Puede añadir, eliminar y editar las etiquetas de Kubernetes en EKS, así como desactivar las etiquetas de asignación de costos asociadas. A continuación se describe el comportamiento esperado de cada acción.

**Adición de una etiqueta nueva**

Puede añadir una etiqueta nueva de Kubernetes en un pod. Si no se ha alcanzado el límite de 50 etiquetas, la nueva etiqueta se importará y se ofrecerá como etiqueta de asignación de costos, que luego se podrá activar. Sin embargo, si se alcanza el límite de 50, la nueva etiqueta no se importará aunque se encuentre dentro de la clasificación alfabética de las 50 primeras etiquetas. Primero debe desactivar una etiqueta de asignación de costos existente para importar una etiqueta nueva.

**Edición de una etiqueta**

Kubernetes no permite editar las claves de etiqueta. Para cambiar una clave de etiqueta, debe eliminarla y añadir una nueva. Sin embargo, puede editar los valores de la etiqueta, que se mostrarán en el próximo CUR.

**Eliminar una etiqueta**

Puede eliminar una etiqueta de los pods de EKS. Tenga en cuenta que eliminar una etiqueta no desactiva automáticamente la etiqueta de asignación de costos que tiene asociada. Los datos de asignación de costos divididos seguirán apareciendo en el CUR hasta que desactive explícitamente la etiqueta de asignación de costos.

**Desactivación de una etiqueta de asignación de costos**

Puede desactivar cualquier etiqueta de asignación de costos creada a partir de etiquetas de Kubernetes. Una vez desactivada, los datos ya no se rellenarán en las columnas respectivas y dicha columna se eliminará del CUR del mes siguiente.

## Prácticas recomendadas para administrar las etiquetas de Kubernetes para la asignación de costos
<a name="best-practices-kubernetes-labels"></a>

Las etiquetas de Kubernetes proporcionan mucha flexibilidad a la hora de modelar la asignación de costos compartidos. Para maximizar el potencial de esta capacidad, recomendamos seguir estas indicaciones para optimizar el enfoque de su administración de costos.

**Comprensión de los límites de etiquetas**

El label-per-pod límite de 50 se basa en la ordenación alfabética. Para la asignación de costos solo se importarán las primeras 50 etiquetas ordenadas alfabéticamente. Para garantizar que se incluyan las etiquetas más importantes, planifique cuidadosamente el nombre de las etiquetas para asegurarse de que las etiquetas importantes aparezcan entre las 50 primeras al ordenarlas alfabéticamente.

**Cumplimiento de las restricciones de caracteres**

AWS las etiquetas de asignación de costes tienen los siguientes límites de caracteres:
+ Claves de etiquetas: 128 caracteres
+ Valores de etiquetas: 256 caracteres

Si bien Kubernetes admite etiquetas más largas, no se importará ninguna etiqueta que supere estos límites. Diseñe sus etiquetas dentro de estos límites para garantizar que pueda llevarse a cabo un seguimiento correcto de la asignación de costos.

**Adición de etiquetas nuevas con la capacidad completa**

Si un pod alcanza el límite de 50 etiquetas y tiene que añadir una nueva etiqueta de asignación de costos, siga estos pasos:

1. Revise las etiquetas existentes e identifique una etiqueta de asignación de costos para desactivarla.

1. Desactive la etiqueta seleccionada.

1. Añada la nueva etiqueta de asignación de costos.

1. Compruebe que la nueva etiqueta se encuentre entre las 50 primeras etiquetas ordenadas alfabéticamente.

**nota**  
Recuerde que solo se utilizan las primeras 50 etiquetas ordenadas alfabéticamente para la asignación de costos.

# Uso de datos de asignación de costos divididos con Amazon Managed Service para Prometheus
<a name="split-cost-allocation-data-resource-amp"></a>

Para dividir los datos de costos de Amazon EKS, es necesario recopilar y almacenar las métricas de los clústeres, incluido el uso de memoria y CPU. Amazon Managed Service para Prometheus se puede utilizar para este propósito.

Cuando haya optado por los datos de asignación de costos divididos y su espacio de trabajo de Amazon Managed Service para Prometheus comience a recibir las dos métricas requeridas (`container_cpu_usage_seconds_total` y `container_memory_working_set_bytes`), los datos de asignación de costos divididos reconocerán las métricas y las utilizarán automáticamente.

**nota**  
Las dos métricas requeridas (`container_cpu_usage_seconds_total` y `container_memory_working_set_bytes`) están presentes en la configuración predeterminada del analizador de Prometheus y en la configuración predeterminada que se proporciona con un recopilador administrado por AWS . Sin embargo, si personaliza estas configuraciones, no vuelva a etiquetar y no modifique ni elimine de las métricas `container_cpu_usage_seconds_total` y `container_memory_working_set_bytes` las siguientes etiquetas: `name`, `namespace`, y `pod`. Si vuelve a etiquetar o si modifica o elimina estas etiquetas, la ingesta de sus métricas puede verse afectada.

Puede usar Amazon Managed Service para Prometheus para recopilar métricas de EKS de una sola cuenta de uso en una sola región. El espacio de trabajo de Amazon Managed Service para Prometheus debe estar en esa cuenta y región. Necesita una instancia de Amazon Managed Service para Prometheus para cada cuenta de uso y región cuyos costos desee monitorizar. Puede recopilar métricas para varios clústeres en el espacio de trabajo de Amazon Managed Service para Prometheus, siempre y cuando estén en la misma cuenta de uso y región.

En las siguientes secciones se describe cómo enviar las métricas correctas de un clúster de EKS al espacio de trabajo de Amazon Managed Service para Prometheus.

## Requisitos previos
<a name="prerequisites-prometheus"></a>

Para usar Amazon Managed Service para Prometheus con datos de asignación de costos divididos se han de cumplir los siguientes requisitos previos:
+ Debe habilitar los datos de asignación de costos divididos en la consola AWS Billing and Cost Management. Para obtener más información, consulte [Habilitación de los datos de asignación de costos divididos](https://docs.aws.amazon.com/cur/latest/userguide/enabling-split-cost-allocation-data.html). Al optar por los datos de asignación de costos divididos, se crea un rol vinculado al servicio en cada cuenta de uso para consultar a Amazon Managed Service para Prometheus las métricas del clúster de Amazon EKS de esa cuenta. Para obtener más información, consulte [Roles vinculados a servicios para datos de asignación de costos divididos](https://docs.aws.amazon.com/cost-management/latest/userguide/split-cost-allocation-data-SLR.html).
+ Necesita un clúster de EKS en el cual desee realizar el seguimiento de los datos de asignación de costos divididos. Puede elegir un clúster existente, o bien crear uno nuevo. Para obtener más información, consulte *Creación de un clúster de Amazon EKS* en la [Guía del usuario de Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html).
**nota**  
Necesitará el `EKS cluster ARN`, `security group IDs` y al menos dos `subnet IDs` (en diferentes zonas de disponibilidad) para usarlos en pasos posteriores.  
(opcional) Configure el modo de autenticación de su clúster de EKS en `API` o `API_AND_CONFIG_MAP`.
+ Necesita una instancia de Amazon Managed Service para Prometheus en la misma cuenta y región que su clúster de EKS. Si aún no dispone de ninguna instancia, deberá crear una. Para obtener información sobre cómo crear una instancia de Amazon Managed Service para Prometheus, consulte [Creación de un espacio de trabajo](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html) en la *Guía del usuario de Amazon Managed Service para Prometheus*.
**nota**  
Necesitará utilizar el `Amazon Managed Service for Prometheus workspace ARN` en los pasos posteriores.

## Reenvío de métricas de EKS a Amazon Managed Service para Prometheus
<a name="forward-eks-metrics-prometheus"></a>

Una vez que tenga un clúster de EKS y una instancia de Amazon Managed Service para Prometheus, podrá reenviar las métricas del clúster a la instancia. Puede enviar métricas de dos maneras.
+ [Opción 1: utilice un recopilador AWS gestionado.](https://docs.aws.amazon.com/cur/latest/userguide/split-cost-allocation-data-resource-amp.html#use-managed-collector) Esta es la forma más sencilla de enviar métricas de un clúster de EKS a Amazon Managed Service para Prometheus. Sin embargo, presenta el límite de analizar métricas cada 30 segundos como máximo.
+ [Opción 2: cree su propio agente de Prometheus.](https://docs.aws.amazon.com/cur/latest/userguide/split-cost-allocation-data-resource-amp.html#create-prometheus-agent) En este caso, tendrá más control sobre la configuración del analizador, pero deberá administrar el agente después de crearlo.

### Opción 1: utilizar un recopilador AWS gestionado
<a name="use-managed-collector"></a>

El uso de un recopilador AWS gestionado (un *raspador*) es la forma más sencilla de enviar métricas desde un clúster de EKS a una instancia de Amazon Managed Service for Prometheus. El siguiente procedimiento explica cómo crear un AWS recopilador gestionado. Para obtener más información detallada, consulte [Recopiladores administrados por AWS](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector.html) en la *Guía del usuario de Amazon Managed Service para Prometheus*.

**nota**  
AWS Los recopiladores gestionados tienen un intervalo de extracción mínimo de 30 segundos. Si tiene pods de corta duración, la recomendación es fijar el intervalo de análisis en 15 segundos. Para usar un intervalo de 15 segundos, utilice la opción 2 para [crear su propio agente de Prometheus](https://docs.aws.amazon.com/cur/latest/userguide/split-cost-allocation-data-resource-amp.html#create-prometheus-agent).

Hay tres pasos para crear un recopilador AWS gestionado:

1. Crear una configuración del analizador.

1. Crear el analizador.

1. Configurar el clúster de EKS para permitir que el analizador acceda a las métricas.

*Paso 1: creación de una configuración del analizador*

Para poder crear un analizador, en primer lugar debe disponer de una configuración del analizador. Puede usar una configuración predeterminada, o bien crear la suya propia. A continuación se muestran tres formas de obtener una configuración del analizador:
+ Obtenga la configuración predeterminada mediante la AWS CLI, llamando a:

  ```
  aws amp get-default-scraper-configuration
  ```
+ Cree su propia configuración. Para obtener más información, consulte las instrucciones de [Scraper configuration](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-configuration) en la *Guía del usuario de Amazon Managed Service for Prometheus*.
+ Copie el ejemplo de configuración que se proporciona en las mismas instrucciones de [Scraper configuration](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-configuration) en la *Guía del usuario de Amazon Managed Service para Prometheus*.

Puede editar la configuración del analizador para modificar el intervalo de análisis o filtrar las métricas que se extraigan, por ejemplo.

Para filtrar las métricas que se extraen e incluir solo las dos que se necesitan para los datos de asignación de costos divididos, utilice la siguiente configuración de extracción:

```
global:
   scrape_interval: 30s
   #external_labels:
     #clusterArn: <REPLACE_ME>
scrape_configs:
  - job_name: kubernetes-nodes-cadvisor
    scrape_interval: 30s
    scrape_timeout: 10s
    scheme: https
    authorization:
      type: Bearer
      credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
    kubernetes_sd_configs:
    - role: node
    relabel_configs:
    - regex: (.+)
      replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor
      source_labels:
      - __meta_kubernetes_node_name
      target_label: __metrics_path__
    - replacement: kubernetes.default.svc:443
      target_label: __address__
    metric_relabel_configs:
    - source_labels: [__name__]
      regex: 'container_cpu_usage_seconds_total|container_memory_working_set_bytes'
      action: keep
```

Una vez que tenga la configuración del analizador, debe codificarla en base64 para utilizarla en el *paso 2*. La configuración es un archivo de texto YAML. Para codificar el archivo, utilice un sitio web como [https://www.base64encode.org/](https://www.base64encode.org/).

*Paso 2: creación del analizador*

Ahora que tiene un archivo de configuración, debe crear el analizador. Cree un raspador mediante el siguiente comando AWS CLI, en función de las variables descritas en la sección de requisitos previos. Debe utilizar la información de su clúster de EKS para los *<SUBNET-ID>* campos y *<EKS-CLUSTER-ARN>**<SG-SECURITY-GROUP-ID>*, sustituirla *<BASE64-CONFIGURATION-BLOB>* por la configuración de raspador que creó en el paso anterior y sustituirla *<AMP\$1WORKSPACE\$1ARN>* por el ARN del espacio de trabajo de Amazon Managed Service para Prometheus.

```
aws amp create-scraper \ 
--source eksConfiguration="{clusterArn=<EKS-CLUSTER-ARN>,securityGroupIds=[<SG-SECURITY-GROUP-ID>],subnetIds=[<SUBNET-ID>]}" \ 
--scrape-configuration configurationBlob=<BASE64-CONFIGURATION-BLOB> \ 
--destination ampConfiguration={workspaceArn="<AMP_WORKSPACE_ARN>"}
```

Anote el `scraperId` que se devuelve para usarlo en el *paso 3*.

*Paso 3: configuración del clúster de EKS para permitir que el analizador acceda a las métricas*

Si el modo de autenticación de su clúster de EKS está configurado en `API` o `API_AND_CONFIG_MAP`, su analizador tendrá automáticamente la política de acceso correcta en el clúster y los analizadores tendrán acceso a su clúster. No se requiere ninguna configuración adicional, y las métricas deberían transferirse a Amazon Managed Service para Prometheus.

Si el modo de autenticación de su clúster EKS no está configurado en `API` o`API_AND_CONFIG_MAP`, tendrá que configurar el clúster manualmente para permitir que el rastreador acceda a sus métricas mediante una tecla y. ClusterRole ClusterRoleBinding Para obtener información sobre cómo habilitar estos permisos, consulte [Manually configuring an EKS cluster for scraper access](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-eks-setup) en la *Guía del usuario de Amazon Managed Service para Prometheus*.

Cuando el analizador esté activo, compruebe que ambas métricas (`container_cpu_usage_seconds_total` y `container_memory_working_set_bytes`) se estén transfiriendo a su espacio de trabajo de Amazon Managed Service para Prometheus.

```
awscurl --service="aps" --region="<REGION>" "https://aps-workspaces.<REGION>.amazonaws.com/workspaces/<WorkSpace_ID>/api/v1/label/__name__/values"
```

Salida:

```
{
"status": "success",
"data": [
"container_cpu_usage_seconds_total",
"container_memory_working_set_bytes",
"scrape_duration_seconds",
"scrape_samples_post_metric_relabeling",
"scrape_samples_scraped",
"scrape_series_added",
"up"
]
}
```

### Opción 2: creación de su propio agente de Prometheus
<a name="create-prometheus-agent"></a>

Si no puedes usar el recopilador AWS gestionado o ya tienes tu propio servidor de Prometheus, puedes usar tu propia instancia de Prometheus como agente para extraer las métricas de tu clúster de EKS y enviarlas a Amazon Managed Service for Prometheus.

Para obtener instrucciones detalladas sobre cómo usar su propia instancia de Prometheus como agente, consulte [Uso de una instancia de Prometheus como recopilador](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-ingest-with-prometheus.html) en la *Guía del usuario de Amazon Managed Service para Prometheus*.

El siguiente es un ejemplo de configuración del analizador de Prometheus que incluye el intervalo de análisis del servidor de Prometheus y las métricas del contenedor necesarias para los datos de asignación de costos divididos. Si tiene pods de corta duración, la recomendación es reducir el intervalo de análisis predeterminado del servidor de Prometheus de 30 a 15 segundos. Tenga en cuenta que esto puede provocar un uso elevado de la memoria del servidor de Prometheus.

```
global:
   scrape_interval: 30s
   #external_labels:
     #clusterArn: <REPLACE_ME>
scrape_configs:
  - job_name: kubernetes-nodes-cadvisor
    scrape_interval: 30s
    scrape_timeout: 10s
    scheme: https
    authorization:
      type: Bearer
      credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
    kubernetes_sd_configs:
    - role: node
    relabel_configs:
    - regex: (.+)
      replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor
      source_labels:
      - __meta_kubernetes_node_name
      target_label: __metrics_path__
    - replacement: kubernetes.default.svc:443
      target_label: __address__
    metric_relabel_configs:
    - source_labels: [__name__]
      regex: 'container_cpu_usage_seconds_total|container_memory_working_set_bytes'
      action: keep
```

Si siguió la sección [Configuración de la ingesta desde un nuevo servidor de Prometheus con Helm](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-ingest-metrics-new-Prometheus.html) en la *Guía del usuario de Amazon Managed Service para Prometheus*, podrá actualizar la configuración del analizador.

**Para actualizar la configuración del analizador**

1. Edite `my_prometheus_values_yaml` desde la guía e incluya el ejemplo de configuración del analizador en el bloque `server`.

1. Ejecute el siguiente comando, mediante `prometheus-chart-name` y `prometheus-namespace` desde la *Guía del usuario de Amazon Managed Service para Prometheus*.

```
helm upgrade prometheus-chart-name prometheus-community/prometheus -n prometheus-namespace -f my_prometheus_values_yaml
```

Para obtener más información sobre `scrape_interval` o sobre cómo usar un scrape\$1interval que no sea global, consulte [Prometheus scrape configuration](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config).

Como alternativa, puedes usar AWS Distro for OpenTelemetry Collector, que tiene un receptor Prometheus, un exportador de escritura remota de Prometheus y la extensión de autenticación Sigv4 para lograr el acceso de escritura remoto a Amazon AWS Managed Service for Prometheus.

**nota**  
Una vez que hayas configurado tu agente de Prometheus, AWS a diferencia de los recopiladores gestionados, eres responsable de mantener al agente actualizado y en funcionamiento para recopilar las métricas.

## Cálculo de los costos de Amazon Managed Service para Prometheus
<a name="estimate-prometheus-costs"></a>

Puedes usar la calculadora de AWS precios para estimar el costo de usar Amazon Managed Service for Prometheus para los datos de asignación de costos divididos.

**Para configurar Amazon Managed Service para Prometheus para su cálculo**

1. [Abre la calculadora AWS de precios en https://calculator.aws/\$1/.](https://calculator.aws/#/)

1. Elija **Crear presupuesto**.

1. En la página **Añadir servicio**, introduzca **Amazon Managed Service para Prometheus** en el campo de búsqueda y, a continuación, seleccione **Configurar**.

1. En el campo **Descripción**, escriba una descripción de su estimación.

1. Elija una región en **Region**.

1. Seleccione **Calcular el costo con los detalles de su infraestructura**. Esta opción le permite calcular los costos de ingesta, almacenamiento y muestra de consultas en función de la configuración de infraestructura actual o propuesta.

1. En **Número de instancias de EC2**, introduzca el número total de instancias de EC2 en todos los clústeres de toda la familia de facturación unificada (incluidas todas las cuentas y regiones). Si lo usa AWS Fargate, use el número de tareas de Fargate como proxy para el recuento de instancias de EC2.

1. Los datos de asignación de costos divididos requieren dos métricas: `container_cpu_usage_seconds_total` y `container_memory_working_set_bytes`. En **Métricas de Prometheus por instancia de EC2**, introduzca 2.

1. Los datos de asignación de costos divididos sugieren un intervalo de análisis de 15 segundos. En **Intervalo de recopilación de métricas (en segundos)**, introduzca 15. Si usó un intervalo diferente (por ejemplo, 30 segundos), cámbielo por el intervalo que configuró.

1. Los datos de asignación de costos divididos no imponen requisitos específicos para los demás parámetros, por lo que debe introducir los valores adecuados para el resto de los parámetros de entrada según los requisitos de su empresa.

1. Haga clic en **Guardar y agregar servicio**.

# Uso de datos de asignación de costes divididos con Amazon CloudWatch Container Insights
<a name="split-cost-allocation-data-cloudwatch"></a>

Para dividir los datos de costos de Amazon EKS, es necesario recopilar y almacenar las métricas de los clústeres, incluido el uso de memoria y CPU. Amazon CloudWatch Container Insights se puede utilizar para este fin.

Una vez que haya optado por dividir los datos de asignación de costos y haya configurado el CloudWatch agente con el complemento de observabilidad de EKS en su clúster de EKS, los datos de asignación de costos divididos comienzan a recibir las dos métricas requeridas `pod_memory_working_set` (`(pod_cpu_usage_total`y) en el `ContainerInsights` espacio de nombres y los utilizan automáticamente. Para ver el conjunto completo de métricas de contenedores para EKS, consulte las métricas de [Amazon EKS y Kubernetes Container Insights en la Guía](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-EKS.html) del usuario de *Amazon CloudWatch *.

En las siguientes secciones se describe cómo enviar las métricas correctas de un clúster de EKS a los datos de asignación de costos divididos.

## Requisitos previos
<a name="prerequisites-cloudwatch"></a>

Como requisitos previos para utilizar Amazon CloudWatch Container Insights con datos de asignación de costes divididos:
+ Debe habilitar los datos de asignación de costos divididos en la consola AWS Billing and Cost Management. Para obtener más información, consulte [Habilitación de los datos de asignación de costos divididos](https://docs.aws.amazon.com/cur/latest/userguide/enabling-split-cost-allocation-data.html).
+ Necesita un clúster de EKS en el cual desee realizar el seguimiento de los datos de asignación de costos divididos. Puede elegir un clúster existente, o bien crear uno nuevo. Para obtener más información, consulte *Creación de un clúster de Amazon EKS* en la [Guía del usuario de Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html).

## Configuración de Amazon CloudWatch Container Insights para reenviar las métricas de EKS
<a name="forward-eks-metrics-cloudwatch"></a>

Debe instalar y configurar el CloudWatch agente para poder reenviar las métricas de EKS. Puede utilizar el [complemento Amazon CloudWatch Observability EKS o el diagrama Amazon CloudWatch Observability Helm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Observability-EKS-addon.html) para instalar el CloudWatch agente y el agente Fluent-bit en un clúster de EKS. Para obtener más información sobre cómo instalar y configurar el CloudWatch agente, consulte [Instalación del complemento Amazon CloudWatch Observability EKS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-setup-EKS-addon.html) en la *Guía del CloudWatch usuario de Amazon*.

Las siguientes son las versiones mínimas requeridas para el CloudWatch agente y el complemento EKS:
+ CloudWatch versión del agente: v1.300045.0
+ CloudWatch Versión complementaria de Observability EKS: v2.0.1-eksbuild.1

## Estimación de los costes de Amazon CloudWatch
<a name="estimate-cloudwatch-costs"></a>

Al habilitar la función para usar Amazon CloudWatch Container Insights con datos de asignación de costos divididos, se añaden dos nuevas métricas a Amazon CloudWatch Container Insights: `pod_cpu_usage_total` y`pod_memory_working_set`. Para obtener más información sobre estas métricas, consulte las métricas de [Amazon EKS y Kubernetes Container Insights en la Guía](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-EKS.html) del usuario de *Amazon CloudWatch *.

**Cómo comprender los costos asociados a la característica**

1. Abre Amazon CloudWatch Pricing a [https://aws.amazon.com/cloudwatch/pricing/](https://aws.amazon.com/cloudwatch/pricing/).

1. Navegue a la sección **Nivel de pago**.

1. Elija la pestaña **Información de contenedores**.

1. Para obtener un cálculo detallado de los costos, vaya a la sección **Ejemplos de precios** y consulte el **Ejemplo 13 - Información de contenedores para Amazon EKS y Kubernetes**.