本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
分割成本分配資料的範例
以下範例的目的是向您展示如何計算分割成本分配資料,方法是計算個別 Amazon ECS 服務的成本、Amazon ECS 叢集中的任務,以及 Amazon EKS 叢集中的 Kubernetes 命名空間和 Pod。範例中使用的速率僅供說明之用。
注意
此範例示範在 Amazon EKS 叢集中執行的 Kubernetes 命名空間和 Pod。然後,我們可以將相同的成本模型套用至在 Amazon ECS 叢集中執行的 Amazon ECS 服務和任務。
您在一小時內有下列用量:
-
具有兩個命名空間和四個 Pod 的單一執行個體 (m5.xlarge) 共用叢集,執行整個小時。
-
執行個體組態為 4 vCPU 和 16 GB 記憶體。
-
執行個體的攤銷成本為每小時 1 美元。
根據 9:1 的比率,分割成本分配資料使用 CPU 和記憶體的相對單位權重。這衍生自 中的每個 vCPU 每小時和每個 GB 每小時價格AWS Fargate
步驟 1:計算 CPU 和記憶體的單位成本
Unit-cost-per-resource = Hourly-instance-cost/((Memory-weight *
Memory-available) + (CPU-weight * CPU-available))
= $1/( (1 * 16GB) + (9 * 4vCPU)) = $0.02
Cost-per-vCPU-hour = CPU-weight * Unit-cost-per-resource
= 9 * $0.02 = $0.17
Cost-per-GB-hour = Memory-weight * Unit-cost-per-resource
= 1 * $0.02 = $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 美元 | 0.02 美元 |
步驟 2:計算配置的容量和執行個體未使用的容量
-
已配置容量:從父 EC2 執行個體配置到 Kubernetes Pod 的記憶體和 vCPU,定義為已使用和預留容量的上限。
注意
如果記憶體或 vCPU 用量資料無法使用,則會改用保留資料。如需詳細資訊,請參閱 Amazon ECS 用量報告或 Amazon EKS 成本監控。
-
執行個體未使用的容量:vCPU 和記憶體未使用的容量。
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)
= 最大值 (4 – 4.9, 0) = 0
Instance-Unused-memory = Max (Memory-available - SUM(Allocated-memory), 0)
= 最大值 (16 – 14, 0) = 2 GB
在此範例中,執行個體具有 CPU over subscription,其歸因於使用比預留更多的 vCPU 的 Pod2。
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:計算分割用量比率
-
分割使用率:Kubernetes Pod 使用的 CPU 或記憶體與 EC2 執行個體上可用的整體 CPU 或記憶體的百分比。
-
未使用的比率:Kubernetes Pod 使用的 CPU 或記憶體與 EC2 執行個體上使用的整體 CPU 或記憶體的百分比 (亦即,不會考慮執行個體上未使用的 CPU 或記憶體)。
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/ 16GB = 0.250
Pod1-vCPU-unused-ratio = Pod1-vCPU-split-usage-ratio / (Total-CPU-split-usage-ratio – Instance-unused-CPU)
(如果 Instance-unused-CPU 為 0,則設為 0)
= 0 (因為 Instance-unused-CPU 為 0)
Pod1-Memory-unused-ratio = Pod1-Memory-split-usage-ratio / (Total-Memory-split-usage-ratio – Instance-unused-memory)
(如果 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:計算分割成本和未使用的成本
-
分割成本:根據 Kubernetes Pod 配置的 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 * 4 個 vCPU * $0.17) + (0.25 * 16GB * $0.02) = $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 * $0.17) + (0.286 * 0.125 * 16 * $0.02) = $0.01
Pod1-Total-split-cost = Pod1-Split-cost +
Pod1-Unused-cost
= 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 美元 | 0.01 美元 | 0.19 美元 |
Pod4 | Namespace2 | 0.18 美元 | 0.01 美元 | 0.19 美元 |
Unused | Unused | 0.04 美元 | ||
1 美元 | 0.04 美元 | 1 美元 |
服務成本是與每個命名空間相關聯的 Pod 成本總和。
Namespace1 的總成本 = $0.23 + $0.19 = $0.42
Namespace2 的總成本 = $0.40 + $0.19 = $0.59
範例 AWS CUR
如果您有 Savings Plan 涵蓋計費期間 EC2 執行個體的整個用量,則會使用 計算攤銷後成本savingsPlan/SavingsPlanEffectiveCost。

如果您的 Savings Plan 涵蓋計費期間 EC2 執行個體的部分用量,而 EC2 執行個體的其餘用量是以隨需費率計費,則 EC2 執行個體攤銷成本會使用 savingsPlan/SavingsPlanEffectiveCost(適用於 SavingsPlanCoveredUsage) + lineItem/UnblendedCost(適用於隨需用量) 計算。
