

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 비용 할당 데이터 분할의 예제
<a name="example-split-cost-allocation-data"></a>

다음 예제의 목적은 개별 Amazon ECS 서비스, Amazon ECS 클러스터의 작업, Amazon EKS 클러스터의 Kubernetes 네임스페이스 및 포드의 비용을 계산하여 비용 할당 데이터 분할을 계산하는 방법을 보여주는 것입니다. 예제 전체에서 사용된 요금은 설명 목적으로만 사용됩니다.

**참고**  
이 예제에서는 Amazon EKS 클러스터에서 실행되는 Kubernetes 네임스페이스 및 포드를 설명합니다. 그런 다음, Amazon ECS 클러스터에서 실행되는 Amazon ECS 서비스 및 작업에 동일한 비용 모델을 적용할 수 있습니다.

한 시간 동안 다음과 같은 사용량이 발생합니다.
+ 한 시간 동안 실행되는 네임스페이스 2개와 포드 4개가 포함된 단일 인스턴스(m5.xlarge) 공유 클러스터.
+ 인스턴스 구성은 4개의 vCPU와 16GB의 메모리입니다.
+ 인스턴스의 분할 상환 비용은 시간당 1 USD입니다.

비용 할당 데이터 분할은 9:1 비율을 기준으로 CPU와 메모리의 상대적 단위 가중치를 사용합니다. 이는 [AWS Fargate](https://aws.amazon.com/fargate/pricing/)의 시간당 vCPU별 및 시간당 GB별 요금에서 파생됩니다.

## 1단계: CPU 및 메모리의 단가 계산
<a name="example-step1"></a>

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

= 1 USD/((1 \$1 16GB) \$1 (9 \$1 4vCPU)) = 0.02 USD

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

= 9 \$1 0.02 USD = 0.17 USD

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

= 1 \$1 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 | 1 USD | 0.17 USD | 0.02 USD | 

## 2단계: 할당된 용량 및 인스턴스 미사용 용량 계산
<a name="example-step2"></a>
+ 할당된 용량: 상위 EC2 인스턴스에서 Kubernetes 포드에 할당된 메모리 및 vCPU로, 최대 사용된 용량과 예약 용량으로 정의됩니다.
**참고**  
메모리 또는 vCPU 사용 데이터를 사용할 수 없는 경우 예약 데이터가 대신 사용됩니다. 자세한 내용은 [Amazon ECS 사용 보고서](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/usage-reports.html) 또는 [Amazon EKS 비용 모니터링](https://docs.aws.amazon.com/eks/latest/userguide/cost-monitoring.html)을 참조하세요.
+ 인스턴스 미사용 용량: vCPU 및 메모리의 미사용 용량입니다.

`Pod1-Allocated-vCPU = Max (1 vCPU, 0.1 vCPU)` = 1 vCPU

`Pod1-Allocated-memory = Max (4 GB, 3 GB)` = 4GB

`Instance-Unused-vCPU = Max (CPU-available - SUM(Allocated-vCPU), 0)` = 최대(4 - 4.9, 0) = 0

`Instance-Unused-memory = Max (Memory-available - SUM(Allocated-memory), 0)` = 최대(16 - 14, 0) = 2GB

이 예제에서 인스턴스는 예약된 것보다 더 많은 vCPU를 사용하는 Pod2에 따른 CPU 초과 구독을 사용하고 있습니다.


****  

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

## 3단계: 분할 사용률 계산
<a name="example-step3"></a>
+ 분할 사용률: EC2 인스턴스에서 사용 가능한 전체 CPU 또는 메모리 대비 Kubernetes 포드에 사용된 CPU 또는 메모리의 비율입니다.
+ 미사용 비율: EC2 인스턴스에서 사용된 전체 CPU 또는 메모리 대비 Kubernetes 포드에 사용된 CPU 또는 메모리의 백분율(즉, 인스턴스의 미사용 CPU 또는 메모리를 고려하지 않음)입니다.

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

= 1 vCPU/4.9vCPU = 0.204

`Pod1-Memory-split-usage-ratio = Allocated-GB / Total-GB`

= 4GB/16GB = 0.250

`Pod1-vCPU-unused-ratio = Pod1-vCPU-split-usage-ratio / (Total-CPU-split-usage-ratio – Instance-unused-CPU)`(인스턴스 미사용 CPU가 0인 경우 0으로 설정됨)

=0(인스턴스 미사용 CPU가 0이므로)

`Pod1-Memory-unused-ratio = Pod1-Memory-split-usage-ratio / (Total-Memory-split-usage-ratio – Instance-unused-memory)`(인스턴스 미사용 메모리가 0인 경우 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 |  | 

## 4단계: 분할 비용 및 미사용 비용 계산
<a name="example-step4"></a>
+ 분할 비용: Kubernetes 포드에 할당된 CPU 및 메모리 사용량을 기준으로 EC2 인스턴스 비용을 할당하는 용도입니다.
+ 미사용 인스턴스 비용: 인스턴스에서 미사용 CPU 또는 메모리 리소스의 비용입니다.

`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 \$1 4 vCPU \$1 0.17 USD) \$1 (0.25 \$1 16GB \$1 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 \$1 0 \$1 4 \$1 0.17 USD) \$1 (0.286 \$1 0.125 \$1 16 \$1 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 USD | 0.01 USD | 0.23 USD | 
| Pod2 | Namespace2 | 0.38 USD | 0.02 USD | 0.40 USD | 
| Pod3 | Namespace1 | 0.18 USD | 0.01 USD | 0.19 USD | 
| Pod4 | Namespace2 | 0.18 USD | 0.01 USD | 0.19 USD | 
| Unused | Unused | 0.04 USD |  |  | 
|  |  | 1 USD | 0.04 USD | 1 USD | 

서비스 비용은 각 네임스페이스와 관련된 포드 비용의 합계입니다.

Namespace1 = 0.23 USD \$1 0.19 USD = 0.42 USD

Namespace2 = 0.40 USD \$1 0.19 USD = 0.59 USD

## 샘플 AWS CUR
<a name="example-savingsplan"></a>

청구 기간 동안 EC2 인스턴스의 전체 사용량을 보장하는 절감형 플랜을 사용하는 경우 분할 상환 비용은 savingsPlan/SavingsPlanEffectiveCost를 사용하여 계산됩니다.

![\[Table showing EC2 instance usage details with 절감형 플랜 and cost breakdown.\]](http://docs.aws.amazon.com/ko_kr/cur/latest/userguide/images/savings-plan-entire-usage.png)


청구 기간 동안 EC2 인스턴스의 일부 사용량을 보장하는 절감형 플랜을 사용하고 나머지 EC2 인스턴스 사용에 대해 온디맨드 요금으로 청구되는 경우, EC2 인스턴스 분할 상환 비용은 savingsPlan/SavingsPlanEffectiveCost(SavingsPlanCoveredUsage의 경우) \$1 lineItem/UnblendedCost(온디맨드 사용의 경우)를 사용하여 계산됩니다.

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