不花冤枉錢:掌握 Azure 的 6 大節費技巧

上次更新:1 7 月, 2024
利用Azure Hybrid Benefit、Spot VM以低價獲得額外計算資源、用Autoscaling自動調節資源,幫助你在保持彈性的同時降低開支
photo of light bulb
Photo by eric anada on Pexels.com

「上雲後,如何省錢」

「成本優化」

「如何用更少的錢,做更多的事」

關於省錢的問題,是做需求訪談時一定會談到的。現在雲端方案五花八門,各廠家也無不祭出各種促銷方案,吸引客戶。作價格比較時,一不小心就會漏掉細節,高估或者低估了成本。對於企業來說,有沒有一些大原則是可以參考的?

今天就來談談 6 種上雲節費策略。

crop man with dollar banknotes in pocket of jacket
Photo by Karolina Grabowska on Pexels.com

Azure Hybrid Benefit 使用現有授權、享有折扣費率

向雲端供應商租用虛擬機器(Virutual Machine)的時候,會有兩個費用,一是機器本身,一是軟體授權(Linux 作業系統除外)。雲端供應商為了吸引客戶,會推出優惠方案,幫助客戶節省整體成本。

Microsoft 推出 Azure Hybrid Benefit 方案指的是,如果你原本就有購買 Windows 軟體授權的軟體保證(Software Assurance),那麼在 Azure 上租用虛擬機器時,就不需要負擔軟體授權費用

這樣一來,成本就從虛擬機器+軟體授權,降到只需要虛擬機器:

SQL 資料庫也適用

除了 Windows 主機外,SQL 資料庫也適用 Azure Hybrid Benefit。而且不只是 SQL Server,包含 SQL Instance、SQL DB 也都可享有。表示無論你只是想要單純的平移(Lift & Shift),繼續以虛擬機器的方式,在雲端使用 SQL,或是改以更彈性、省力的 PaaS 服務,都一樣享有這個優惠。

節費計算機

想要知道具體可以節省多少嗎?可以透過節費計算機快速計算。

Azure Spot VM

你吃過切邊蛋糕嗎?就是麵包店或者義美食品門市裡面常有的,業者為了美觀,出爐時會把蛋糕的一些邊邊角角裁下來,丟掉很可惜,因為無論是食材或者烘焙過程都與一般蛋糕無異。

純粹是因為「多餘」而被捨棄,因此可以打包成盒,用便宜的價格提供給客戶。許多精打細算的消費者也經常衝著切邊蛋糕上門,反而意外的購買了其他商品,不失為一種促銷方式。

Spot VM 的概念很相似,雲端廠商在提供虛擬機器服務的時候,總不會隨時都滿載,一定會有些運算能力被閒置,因此可以用便宜的價格提供給客戶,最低可以到一折呢!

不過在雲端運算的世界中,需求與供給是隨時變動的,因此供應商可能隨時都會接到客戶的需求,而需要將 Spot VM 抽走,這時你要是正在運行 Spot VM,就會被迫中斷。

所以,Spot VM 的場景就很特殊,必須是「可中斷,且不需要在特定時間範圍內完成應用」,我舉幾個例子:

  • 批次運算:這次算不完,可以等一下再算
  • 無狀態應用程式:不用記憶之前的狀態
  • 開發和測試環境:還沒上線
  • 大量運算,譬如渲染(Render),俗稱算圖:透過軟體產生動畫的過程經常需要大量算力,透過 Spot VM 可以節省許多費用

購買方式

拿 Spot VM 的方式有一點像在競標,你需要設定一個最高價格,然後雲端廠商會由這個價格做判斷,如果現價低於你的最高價格,則可以繼續使用;反之,則虛擬機器會被收回

當然,為了維護用戶權益,Spot VM 的最高價格就是 隨用隨付(Pay as You Go) 的價格,所以你不會買到比普通虛擬機器還要貴的機器。

在購買前,雲端廠商也會提供你想要租用的機器的歷史紀錄,讓你大概知道被拿回的機率有多少、價格在哪裡。

Autoscaling 自動調整機器數量

「江蕙復出演唱會」
「電商網站標錯價錢」
「獅子王來台演出」

如果從事 IT 工作,看到以上這些場景,一定瑟瑟發抖,因為腦中第一個閃過的就是「需求這麼多,當機怎麼辦?」

雲端運算最大的特色,就是可以彈性放大、縮小運算能力,因應市場所需、支付最少需要的費用。

自動調整又分為水平(Horizontal)和垂直(Vertical)兩種。水平擴展是指虛擬機器的數量的增加或減少。垂直擴展則是虛擬機器的數量保持不變,但記憶體CPU 速度磁碟空間網路方面增加或減少。以下用圖片說明:

有些需求比較好預測,例如周末的電商網站生意比較好,因為大家放假,會上網買東買西,所以可以定時調整負載容量,但也不是每個時刻都能夠抓的準,這時自動調整就能夠派上用場。只要預先設定好規則,如在 CPU 負載達到 80%則擴充虛擬機器;反之,CPU 負載小於 25%自動減少虛擬機器。

除了設定規則外,Autoscaling 有幾種不同模式,包括:

  • 手動增加或減少
  • 根據設定規則
  • 根據閾值規則
  • 讓 AI 參考歷史數據自動更新

我們可以根據CPU 使用率每秒輸入/輸出運算(IOSPS)、磁碟讀取磁碟寫入等規則,調整 VM 數量。以上是使用 Autoscaling 的使用時機。下一篇,繼續了解 Reservation。

Reservation 預留

如果有在外租房子,應該有碰過房東提出年繳方案,意思是只要願意一次把全年租金付清,平攤下來每月租金可以比月繳還要低。

站在房東的角度,不僅免去每個月催繳的困擾,所謂時間就是金錢,越早入袋的資金,就越能夠自由運用;對房客來說,如果確定要在這裡住一年、手頭也寬裕,用年繳的方式可以省錢,皆大歡喜。

在雲端的世界也有類似的作法,身為雲端運算商,當然希望你能夠常常使用服務,最好一直黏在上面,因為這樣一來,現金流就更穩定、可預期,因此為了鼓勵客戶,提供 Reservation 的方案,鼓勵客戶預先承諾會使用多長時間的虛擬機器,以換取更低的折扣。

Reservation 的折扣非常吸引人,以 Azure 為例,如果承諾三年的使用,最高可以折扣到接近兩折。更棒的是,你不用預繳,意思是不用先拿出一整年的錢,依然可以使用月繳的方式,簡直比房東還佛心。

除了折扣之外,使用 Reservation 還有彈性交換的優點。如果哪天計畫生變,例如本來要部屬在美國的機器要改部屬在日本?或者本來要部屬 8 核心的機器,因為需求變更,想改成 4 核心?沒問題,都可以做到。

擁有 Reservation 選項的不只是虛擬機器,其他服務如儲存空間、SQL DB、Cosmos DB、資料倉儲、Azure Data Factory、Azure Databricks 等也都適用。

因此,如果你確定這項服務會運行很長一段時間,使用 Reservation 吧!我想不到不用的理由。

Rightsizing 選型、選規格

小時候,你有穿過太大件的衣服嗎?可能是媽媽買的、或是鄰居送的,「反正小孩子長很快」,如果一定要穿剛好的,就要常常買新衣服,多浪費錢啊!

所以你一直在穿太大件的衣服,直到有一天它變得剛好、然後再變得太小後,又換上更大件的衣服,無限循環,直到長大成人。

電腦的世界也是一樣的,購買時就要想好規格,譬如多少儲存體容量和 CPU 運算能力。問題是,企業每天都在成長,資料量與需要的運算能力都在增加,如果哪天不夠了怎麼辦呢?這時就需要擴充或是升級,都很有可能都有停機時間,會一定程度的影響業務,甚至損失。

聰明的 IT 這時會想:那就先以三年後的預估值採購設備好了!(這樣至少三年內都不會被罵)。於是,你看到公司有好多台機器,擁有海量的資料儲存空間、超強的運算能力,但使用量可能不到 30%。

撇開這些浪費掉的設備成本、電力、空間、維護成本不談,別忘了機器還會折舊,今年的超級機種,三年後可能已經過時,說不定還有系統不能升級的潛在風險。

Rightsizing 就是為了解決這個痛點產生,可以幫助我們找出哪些機器太大才小用、哪些服務根本沒在使用。

要找出這些資訊很簡單,以 Azure 為例,可以在Azure Advisor找到所有你需要的資料。IT 不需要一台一台親自盤點,也可以一目了然。

如果你觀察一台機器在過去一段時間內的使用率都只有 30%,那就是個很好的切入點,你可以選擇比較小台的機器;又或者有的服務使用率很低,可能是使用者忘了關,何不設定一個規則,自動關閉?

Saving Plan 節省方案

Azure Saving Plan的概念和之前提到的 Reservation 類似,但更靈活。

如果說 Reservation 就像「租房子」,藉由簽長約,節省租金。那麼 Saving Plan,相當於跟房東簽另一種長約。只是這次我們不指定房型、地點,只承諾 1-3 年內會住幾天。

如果你每小時都要使用虛擬機器,但不是一樣的型號或者區域,那麼 Saving Plan 能幫你省下不少錢。超過承諾用量的部分會依照隨用隨付(Pay as You Go)計費,但承諾用量內的部分都會有折扣。

這個方案最適合用在還不夠穩定、或是無法完全預測的情境。譬如你希望使用不同型號、在全球不同地點使用虛擬機器,那麼 Saving Plan 就很適合你。

Saving Plan 的權益會自動套用到所有符合資格的計算資源。你不需要手動指派,系統會自動將折扣套用到你的承諾用量內。

你可以透過 Azure 網站或 API 來購買節省方案。費用可以預付或每月支付。

Reservation vs Saving Plan,哪種適合我?

Reservation 只適用於指定的計算服務和區域組合。比如,承諾在澳洲西部使用型號 B2v3 的虛擬機器 一年。

Saving Plan 則是承諾在一段期間內,針對所有 Azure 區域中的虛擬機器,每小時花費一定金額。例如,承諾在 1 年內每小時花$6 美元。

結論:如果你的場景已經很穩定,也不打算更換型號、區域,Reservation 最省錢。但如果場景是動態的,Saving Plan 能夠幫助你在省錢和靈活中間取得平衡。

後記

幫你整理一下,你可以從這 6 個角度省錢:

  • 盤點可以使用的Hybrid Benefit
  • 盤點機器運行狀態,觀察Spot VM的可行性
  • 設定自動調整
  • 盤點使用狀況,評估預留節省方案的可行性
  • 使用 Azure Advisor,調整機器規格

趕快幫你家服務擬定一套瘦身計畫吧!

幫助內向的你找到熱愛工作,走出逆境、享受生活

電子報每周五寄送 | 提供實用指南,用你的方式,去想去的地方

如果這篇文章有幫助到你,歡迎訂閱電子報,我會持續與你分享。

你可能也會感興趣

告訴我你的想法:

Subscribe
Notify of
guest

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments