分割成本分配資料的範例 - AWS 資料匯出

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

分割成本分配資料的範例

以下範例的目的是向您展示如何計算分割成本分配資料,方法是計算個別 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。

Table showing EC2 instance usage details with Savings Plan and cost breakdown.

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

Table showing EC2 instance usage details, costs, and savings plan information.