雲端成本最佳化對於企業而言至關重要,本文除了批次折扣和費率協商外,也涵蓋了賣傢俬人報價、自帶授權(BYOL)以及承諾式折扣等進階策略。透過瞭解這些策略,企業可以更有效地控制雲端支出,並根據自身需求選擇最合適的方案。不同雲端服務供應商的方案各有特色,需要仔細評估才能做出最佳決策。
雲端成本最佳化:批次折扣與費率協商
在雲端運算的世界中,成本管理是一項重要的任務。雲端服務供應商提供了多種方式來幫助客戶降低成本,包括批次折扣、費率協商等。瞭解這些機制,可以幫助企業更好地管理雲端支出。
儲存成本最佳化
雲端儲存服務通常提供多種儲存方案,以滿足不同的需求。例如,Amazon S3 提供了多種儲存類別,包括標準儲存、冷儲存(Glacier)等。將資料分類別並存放在適當的儲存類別中,可以大幅降低儲存成本。利用雲端服務的內建功能自動化資料生命週期管理,可以減少管理負擔。
資料生命週期管理
資料生命週期管理是最佳化儲存成本的關鍵。可以根據資料的使用頻率,將資料存放在不同的儲存類別中。例如,經常使用的資料可以存放在標準儲存中,而較少使用的資料可以存放在冷儲存中。這樣可以確保資料的可存取性,同時降低儲存成本。
批次折扣
大多數雲端服務供應商都提供批次折扣,即隨著使用量的增加,費率會降低。批次折扣可以是根據使用量或時間的。
使用量折扣
使用量折扣是根據總使用量而非資源執行時間來計算的。例如,當使用量超過某一閾值時,所有超出該閾值的使用量都將享受更低的費率。
### 使用量折扣示意圖
此圖示展示了使用量折扣的工作原理。
圖表翻譯: 此圖表展示了使用量與折扣之間的關係。當使用量超過某一門檻時,將套用折扣,並計算折扣後的費用。
時間折扣
時間折扣是根據資源執行時間來計算的。例如,Google Cloud 的持續使用折扣(SUD)會根據資源執行時間的長短來提供不同的費率。
### 時間折扣示意圖
此圖示展示了時間折扣的工作原理。
圖表翻譯: 此圖表展示了資源執行時間與折扣之間的關係。當資源執行時間超過某一門檻時,將套用折扣,並計算折扣後的費用。
內容解密:
- 圖表顯示了使用量和時間如何影響折扣。
- 瞭解不同型別的折扣有助於更好地管理雲端成本。
費率協商
在某些情況下,客戶可以與雲端服務供應商或市場供應商協商更好的價格。對於大型使用者,雲端服務供應商可能會提供自訂價格。
自訂價格
對於某些服務的大型使用者,雲端服務供應商可能會提供自訂價格。這種價格通常需要與供應商直接協商,並且可能受到保密協定的限制。
內容解密:
- 企業應根據自身需求選擇合適的雲端服務和定價方案。
- 與雲端服務供應商協商價格可以獲得更好的交易條件。
- 自動化資料生命週期管理可以減少管理負擔並降低成本。
雲端成本最佳化:賣傢俬人報價與自帶授權模式
在雲端使用第三方軟體時,授權協定的管理至關重要。通常,授權費用直接支付給軟體廠商,然後將授權應用於雲端伺服器以執行軟體。這導致客戶需要分別支付雲端服務提供商的資源費用和軟體廠商的授權費用。隨著AWS、Google Cloud和Azure等雲端市集的出現,第三方廠商現在可以透過這些通路提供軟體。客戶可以直接在雲端服務提供商的賬單中支付授權和資源費用,然後由雲端服務提供商將授權費用支付給第三方廠商。
賣傢俬人報價的優勢
雖然雲端市集減少了計算服務總成本的複雜性,但客戶仍需支付固定的公開費率給軟體授權。當客戶直接與第三方廠商協商授權費率時,可以獲得更優惠的價格。幸運的是,一些服務(如AWS Marketplace)現在允許廠商提供「賣傢俬人報價」。客戶與第三方廠商協商授權費率後,會建立一個專門針對該客戶的自定義市集清單,並透過私人連結存取。這樣,客戶既能享受自定義的授權費率,又能保持單一賬單來源的便利。
程式碼範例:賣傢俬人報價流程
graph LR;
A[客戶] -->|協商授權費率|> B[第三方廠商];
B -->|建立自定義市集清單|> C[AWS Marketplace];
C -->|透過私人連結存取|> A;
A -->|支付授權和資源費用|> D[雲端服務提供商];
D -->|支付授權費用|> B;
圖表翻譯: 此圖示展示了賣傢俬人報價的流程,包括客戶與第三方廠商協商、建立自定義市集清單、透過私人連結存取以及支付相關費用的步驟。
自帶授權(BYOL)考量
一些雲端服務提供商允許客戶使用現有的授權協定,以降低雲端成本,這被稱為「自帶授權」(BYOL)模式。例如,Azure Hybrid Benefit for Windows Server允許擁有特定授權或訂閱的組織在佈署伺服器到Azure平台時重複使用這些授權。識別出可以重複使用的現有授權,尤其是從資料中心遷移到雲端時,可以避免不必要的授權成本,為組織節省大量資金。
自帶授權的注意事項
def check_byol_eligibility(existing_license, cloud_provider):
if existing_license == "Software Assurance" or existing_license == "Subscription License":
if cloud_provider == "Azure":
return True
return False
# 使用範例
existing_license = "Software Assurance"
cloud_provider = "Azure"
is_eligible = check_byol_eligibility(existing_license, cloud_provider)
print(f"是否符合BYOL資格:{is_eligible}")
內容解密:
check_byol_eligibility函式用於檢查現有的授權是否符合BYOL資格。- 它接受兩個引數:
existing_license和cloud_provider。 - 如果現有的授權是「Software Assurance」或「Subscription License」,並且雲端服務提供商是「Azure」,則傳回
True,表示符合BYOL資格。 - 否則,傳回
False。
承諾式折扣的深度解析
前言
本章主要探討針對計算服務的承諾式折扣。除了計算服務,各大雲端服務供應商也針對資料函式庫、AI/ML 等服務提供折扣方案。由於計算成本通常是大多陣列織最大的支出專案,因此瞭解承諾式折扣的運作原理和應用策略至關重要。
承諾式折扣的基本原理
承諾式折扣的核心概念是:客戶承諾在一定期間內使用特定型別的資源,雲端服務供應商則提供折扣作為回報。這種模式看似簡單,但實際上涉及許多細節和策略考量。
來自雲端的故事
曾經有一家英國零售巨頭,每月在 AWS 的支出高達數百萬英鎊,但卻完全沒有購買任何預留例項(Reserved Instances, RIs)。經過分析後發現,只要購買適量的 RIs,就能在未來三年內節省數百萬英鎊。然而,這家公司花了整整九個月才完成首次 RIs 購買。
案例分析
這個案例凸顯了企業內部協調和教育的重要性。主要挑戰包括:
- 財務部門需要了解如何正確會計處理 RIs 的預付款項,將其視為營運支出(OpEx)而非資本支出(CapEx)。
- 技術團隊需要對承諾當前基礎設施感到安心,因為雲端的靈活性與承諾式折扣之間存在著內在矛盾。
承諾式折扣的運作機制
雖然各大雲端服務供應商的具體方案有所不同,但基本原理相似:客戶承諾使用特定資源一段時間,供應商則提供折扣。折扣幅度可觀,在某些情況下高達 80%。
重要特點
- 非特定資源預留:客戶並非預留特定伺服器例項,而是透過承諾使用量獲得折扣。
- 帳單層面的建構:預留例項本質上是一種帳單建構,折扣在帳單層面自動應用。
- 折扣分配方式:供應商根據一定規則分配折扣,通常優先考慮最大化節省,但具體分配方式可能不透明。
雲端服務供應商的折扣分配策略
不同供應商有不同的分配策略:
- AWS 和 Azure 的 Savings Plans(SPs)會自動將折扣應用於最能節省成本的資源。
- Google Cloud 提供多種歸屬模式,包括無歸屬、比例歸屬和優先歸屬,讓客戶根據自身管理方式選擇合適的模式。
策略考量與類別比理解
可以將承諾式折扣類別比為購買餐券:
- 預付費用的餐券:客戶預先購買一定數量的餐券(承諾使用資源),享受折扣。
- 使用與節省:如果客戶每次都使用餐券(資源),就能實作最大節省;否則,未使用的餐券等同於浪費。
內容重點整理
- 承諾式折扣的基本原理和優勢。
- 企業內部協調和教育的重要性。
- 不同雲端服務供應商的分配策略差異。
- 如何透過正確的策略最大化承諾式折扣的效益。
透過深入理解承諾式折扣的運作原理和相關策略,企業能夠更有效地管理雲端成本,在保持業務靈活性的同時實作顯著的成本文約。
承諾型折扣的基礎知識
承諾型折扣是雲端服務供應商提供的一種價格優惠,客戶承諾在一定期間內使用特定數量的資源或支付一定金額,以換取折扣。這些折扣可以幫助客戶節省成本,但需要仔細規劃和管理。
承諾型折扣的運作方式
客戶購買承諾型折扣後,無論是否使用相關資源,都需要支付承諾的金額。只有當客戶有足夠的資源使用量時,才能享受折扣,從而節省成本。
承諾型折扣的特點
- 客戶需要為承諾的金額付費,無論是否使用相關資源。
- 承諾型折扣可以抵消帳戶中的資源成本。
- 即使客戶沒有完全使用承諾的資源,也可以節省成本。
選擇承諾型折扣的選項
客戶可以根據自己的需求選擇不同的承諾型折扣選項,包括:
- 使用小時數或每小時支出
- 各種運算資源
- 特定型別的運算資源或列表中的其他資源
- 是否有權轉換為不同型別的預留資源
- 在特定區域或位置執行
- 在特定營運模式(專用或分享)下執行
- 特定大小或彈性大小(例項大小彈性)
- 執行特定作業系統或資料函式庫型別
- 在特定可用區域中執行
- 為期一或三年(或某些服務的五年)
例項大小彈性(ISF)
雲端服務供應商提供數百種不同的伺服器例項型別或大小,通常按系列分類別。承諾型折扣可以購買以匹配特定資源型別的使用引數。然而,這需要對每個例項大小進行特定的承諾。為了簡化這一過程,雲端服務供應商在某些預留資源上提供例項大小彈性(ISF)。
ISF 的運作方式
在特定系列中,客戶可以選擇不同大小的伺服器例項(不同的 vCPU 和記憶體數量),每個增加的大小都按比例更昂貴。例如,在 AWS 上,兩個匹配的大型例項的價格與一個超大型例項相同。因此,兩個購買的大型 RI 可以將其折扣應用於一個超大型伺服器例項,反之亦然。
ISF 的注意事項
軟體授權費用是一個需要注意的問題。兩個中型例項與一個大型例項不同,如果涉及軟體授權費用。使用兩個中型例項,需要兩倍的授權數量,而一個大型例項只需要一個授權數量。因此,AWS 將 ISF 排除在具有授權軟體的伺服器之外,而 Azure 則單獨收取軟體授權費用,並對計算小時數應用折扣。
轉換和取消
一些承諾型折扣計劃提供轉換或交換承諾的選項。AWS 可轉換 RI 提供較低的折扣率,但允許使用者將 RI 交換為不同系列或大小(如果 ISF 不適用)。轉換 RI 的能力降低了最終擁有不匹配的 RI 的風險。如果資源更新後不再匹配,可以將 RI 交換為匹配的 RI。
各雲端服務供應商的轉換和取消政策
- AWS:提供可轉換 RI 和 SP(Savings Plans),SP 提供與可轉換 RI 相同的折扣,但具有內建的可轉換性。
- Azure:不提供可轉換 RI,但允許使用者每年取消和交換一定金額的 RI。Azure SP 現已推出,功能類別似於 AWS SP。
- Google Cloud:提供分割和合併承諾的功能。現在也提供 Flexible CUD,具有與 AWS 或 Azure SP 相似的彈性。
程式碼範例:計算承諾型折扣的成本文省
def calculate_savings(commitment_cost, usage_cost, discount_rate):
"""
計算承諾型折扣的成本文省。
:param commitment_cost: 承諾型折扣的成本
:param usage_cost: 資源使用成本
:param discount_rate: 折扣率
:return: 成本文省金額
"""
savings = usage_cost * discount_rate - commitment_cost
return savings
# 範例用法:
commitment_cost = 1000 # 承諾型折扣的成本
usage_cost = 2000 # 資源使用成本
discount_rate = 0.3 # 折扣率(30%)
savings = calculate_savings(commitment_cost, usage_cost, discount_rate)
print(f"成本文省:${savings:.2f}")
內容解密:
此程式碼範例展示瞭如何計算承諾型折扣的成本文省。calculate_savings函式接受三個引數:commitment_cost(承諾型折扣的成本)、usage_cost(資源使用成本)和discount_rate(折扣率)。函式計算成本文省金額並傳回結果。在範例用法中,我們計算了承諾型折扣的成本文省金額並列印結果。
此圖示顯示了不同雲端服務供應商的承諾型折扣計劃比較
圖表翻譯: 此圖示比較了不同雲端服務供應商(AWS、Azure 和 Google Cloud)的承諾型折扣計劃。AWS 提供可轉換 RI 和 SP,具有高彈性。Azure 提供 SP,但不提供可轉換 RI,具有中等彈性。Google Cloud 提供 Flexible CUD,具有高彈性。圖表顯示了不同供應商之間的彈性差異,幫助客戶選擇適合自己的承諾型折扣計劃。
三大雲端服務供應商的承諾使用折扣概覽
表 17-1 展示了三大雲端服務供應商及其提供的承諾使用折扣方案的比較。
表 17-1:三大雲端服務供應商的承諾使用折扣比較
| 雲端服務供應商 | AWS | Google Cloud | Azure |
|---|---|---|---|
| 方案名稱 | Reserved Instances/Savings Plans | Committed Use Discounts/Flexible CUDs | Reservations/Savings Plans |
| 付款模式 | 全額預付、部分預付、無預付(不同折扣率) | 全額預付、每月(相同價格) | 全額預付、部分預付、無預付 |
| 合約期限 | 一年或三年 | 一年或三年 | 一年、三年或五年 |
| 例項大小靈活性 | 是 | 無 | 是 |
| 轉換或交換 | 標準、可轉換 | 否、可轉換 | 是,可拆分和合併 |
| 可取消性 | 否;但部分 RI 可在市場上出售 | 否 | 是,年度價值限制內 |
內容解密:
此表格比較了 AWS、Google Cloud 和 Azure 三大雲端服務供應商的承諾使用折扣方案。主要差異在於付款模式、合約期限和例項大小靈活性。AWS 和 Azure 提供了較高的靈活性,而 Google Cloud 的 Committed Use Discounts 則提供了不同的計費方式。
AWS 的承諾模式
AWS 提供多種承諾式折扣方案,包括 Reserved Instances(RI)和 Savings Plans。RI 允許使用者以折扣價購買特定資源的使用權,適用於 EC2 例項、RDS 資料函式庫、Redshift 節點等。RI 的特點包括:
- 合約期限:一年或三年
- 付款模式:全額預付、部分預付或無預付,不同的付款模式對應不同的折扣率
- 例項大小靈活性:支援不同大小的例項
程式碼範例:AWS RI 購買引數設定
import boto3
# 初始化 EC2 客戶端
ec2 = boto3.client('ec2')
# 設定 RI 購買引數
response = ec2.describe_reserved_instances_offerings(
InstanceType='t2.micro',
AvailabilityZone='us-west-2a',
ProductDescription='Linux/UNIX',
OfferingClass='standard',
OfferingType='Partial Upfront'
)
# 列印結果
print(response['ReservedInstancesOfferings'])
內容解密:
此程式碼範例展示瞭如何使用 AWS SDK for Python(Boto3)查詢 RI 的購買引數,包括例項型別、可用區和產品描述等。這些引數將影響 RI 的價格和適用範圍。
Google Cloud 的承諾使用折扣
Google Cloud 提供 Committed Use Discounts(CUDs),允許使用者承諾使用特定資源,並獲得折扣。CUDs 分為兩種:
- 資源型 CUDs:針對特定資源(如 Compute Engine 例項)
- 支出型 CUDs:針對總支出
Google Cloud CUDs 架構圖
@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle
title 雲端成本最佳化策略詳解
package "安全架構" {
package "網路安全" {
component [防火牆] as firewall
component [WAF] as waf
component [DDoS 防護] as ddos
}
package "身份認證" {
component [OAuth 2.0] as oauth
component [JWT Token] as jwt
component [MFA] as mfa
}
package "資料安全" {
component [加密傳輸 TLS] as tls
component [資料加密] as encrypt
component [金鑰管理] as kms
}
package "監控審計" {
component [日誌收集] as log
component [威脅偵測] as threat
component [合規審計] as audit
}
}
firewall --> waf : 過濾流量
waf --> oauth : 驗證身份
oauth --> jwt : 簽發憑證
jwt --> tls : 加密傳輸
tls --> encrypt : 資料保護
log --> threat : 異常分析
threat --> audit : 報告生成
@enduml
圖表翻譯: 此圖表展示了 Google Cloud 的 CUDs 架構。使用者透過承諾使用特定資源或總支出來獲得折扣。資源型 CUDs 主要針對 Compute Engine 例項,而支出型 CUDs 則提供總支出的折扣。
Azure 的承諾使用折扣
Azure 提供 Reservations 和 Savings Plans,允許使用者以折扣價購買特定資源的使用權。Reservations 適用於虛擬機器、SQL 資料函式庫等資源。
程式碼範例:Azure Reservations 購買
az vm reservation update --resource-group myResourceGroup --reservation-name myReservation --applied-scope-type Shared
內容解密:
此 Azure CLI 命令示例展示瞭如何更新 Azure Reservations 的應用範圍,將其設定為共用模式,以使預留的虛擬機器資源能夠跨多個訂閱使用。