AWS 成本優(yōu)化是一個持續(xù)的過程。需要持續(xù)監(jiān)控 AWS 云資源利用率,以確定資源何時未被充分利用或未被利用或閑置,以通過刪除/終止/釋放未使用的資源來降低成本。考慮節(jié)省計劃或預(yù)留實例以確保按照預(yù)期的恒定消耗水平充分利用也很有幫助。雖然 AWS 成本優(yōu)化的基本過程保持不變——監(jiān)控 AWS 成本和使用情況,但有許多戰(zhàn)術(shù)方法可以分析運營數(shù)據(jù)以找到節(jié)省的機會并采取行動來實現(xiàn)節(jié)省。
云成本優(yōu)化的支柱
1. 合適的尺寸
識別利用率低的資源并通過停止或調(diào)整大小來降低成本。
- 使用AWS Cost Explorer 資源優(yōu)化報告獲取空閑或低利用率資源的列表。通過停止或縮小實例來降低成本。
- 使用AWS Compute Optimizer在實例系列內(nèi)或跨實例系列縮小建議規(guī)模,擴大建議規(guī)模以消除性能瓶頸,并為屬于 Auto Scaling 組的 EC2 實例提供建議。
- 識別利用率低的 Amazon RDS、Amazon Redshift 實例并通過在工作時間或非處理時間范圍之外停止 (RDS) 和暫停 Redshift 來降低成本。
- 盡可能使用 Amazon EC2 Spot 實例降低 EC2 成本 – SPOT 實例管理。可以通過 Spotinst 等第三部分工具進行有效管理,以實現(xiàn)自動終止和新實例可用性,而不會影響最終用戶。
- 查看和修改 EC2 Auto-Scaling Groups 配置,以確保擴展發(fā)生在正確的閾值上,而不是設(shè)置在較低的閾值上。
- 嘗試使用彈性 Kubernetes 服務(wù) (EKS) 和彈性計算服務(wù) (ECS – EC2 模型) 工作節(jié)點,使用 SPOT 實例(而不是按需/RI)自動擴展以降低成本。
- 考慮使用彈性計算服務(wù) (ECS -Fargate) 來啟動每個任務(wù)配置較低的任務(wù)(例如 0.5 個 vCPU 和 1GB RAM),并使用自動縮放而不是每個任務(wù)的較高配置。
- DEV、測試、UAT 或 DR 環(huán)境的多可用區(qū)配置對于 RDS、Redis、NAT 或其他 PAAS 服務(wù)可能沒有必要或無用(除非業(yè)務(wù)確實需要實現(xiàn)任何目標(biāo));因此,明智地設(shè)計很重要。
2. 實例族刷新
每個實例/系列/系列都提供不同種類的計算、內(nèi)存和存儲參數(shù)。當(dāng)保持它們運行所需的硬件被更新的技術(shù)取代時,它們集合分組中的實例類型通常作為一個單元退役。
- 將實例升級到最新一代提供更低的成本。
- 對于 RDS、Redis、ElasticSearch、MSK 等 PAAS 服務(wù),請明智地使用實例類型,特別是對于 pre-PROD 或 DR 和適當(dāng)?shù)目捎脜^(qū)來擴展實例。即使在考慮業(yè)務(wù) SLA 時,它也可能不需要超過 2 個可用區(qū)。密切關(guān)注最新的基礎(chǔ)架構(gòu)系列并進行更新,以從降低成本中獲益。
- 將低成本實例類型用于開發(fā)、QA 或環(huán)境(例如 T3a),其中業(yè)務(wù) SLA 肯定不需要性能基準(zhǔn)測試。
- 考慮到業(yè)務(wù)用例和流量模式,始終從低端開始,然后將合適的大小升級到合適的系列。
3. 計算節(jié)省計劃以降低 EC2、Fargate 和 Lambda 成本
Compute Savings(Compute Savings Plans 和 EC2 Instance Savings Plans)計劃自動適用于 EC2 實例的使用,無論實例系列、大小、可用區(qū)、區(qū)域、操作系統(tǒng)或租期如何,并適用于 Fargate 和 Lambda 的使用。與按需定價相比,使用一年且無需預(yù)付 Compute Savings Plans 可獲得高達 54% 的折扣。注冊 Savings Plans 后,您的計算機使用量將自動按 Savings Plans 折扣價格收費。超出您承諾的任何使用量都將按常規(guī)按需費率收費。在采用 Saving PLAN 之前,請遵循第 1 點和第 2 點。與 AWS 預(yù)留實例相比,Saving Plan 有很多優(yōu)勢,只有一個條件——“使用承諾/小時”
4. 預(yù)留實例 (RI)
盡管儲蓄計劃取代了 RI 選項,但截至 2020 年 4 月的今天,一些 PAAS 服務(wù)不在儲蓄計劃計劃范圍內(nèi)。
- 為 RDS、Redshift、Elasticsearch 和 ElastiCache 服務(wù)購買預(yù)留節(jié)點以降低成本。
- 許多實例類型的折扣更大,在大約 3 年的所有前期條款的情況下,最高端可能超過 60%。識別實例并智能地采取呼叫節(jié)省計劃與 RI。
- 您可以在市場上獲得短期 RI。
5. 安排開/關(guān)時間
為用于開發(fā)、登臺、測試和 QA 的非生產(chǎn)實例安排開/關(guān)是值得的,因為如果您應(yīng)用從周一到晚上 8 點的“開”計劃,它可以節(jié)省高達 65% 的運行這些實例的時間星期五。但是,可以節(jié)省更多 — 特別是如果開發(fā)團隊以不規(guī)則的模式或不規(guī)則的時間工作。通過分析利用率指標(biāo)來規(guī)劃更積極的計劃,以確定何時最常使用實例,或應(yīng)用始終停止的計劃,當(dāng)需要訪問實例時可以中斷該計劃。
6. 孤立資源
識別浪費需要時間和準(zhǔn)確的報告。投入時間和精力來制定適當(dāng)?shù)臉?biāo)記策略以使其成為一個簡單的過程是一個很好的理由。
- 對于未使用的 AWS EC2,使用 Cost Explorer Compute Optimizer 報告或提取 CW 統(tǒng)計數(shù)據(jù)并采取措施。
- 終止為訓(xùn)練或測試而啟動的 VM。
- 刪除未附加的 EBS 卷 - 檢查卷頁面和可用的 EBS 卷狀態(tài)。
- 根據(jù)需要刪除過時的快照和生命周期,以滿足業(yè)務(wù)需求。
- 對于空閑負(fù)載均衡器,嘗試將 ALB 與基于路徑/內(nèi)容的路由一起使用。
- 釋放未附加的彈性 IP 地址。
7. 存儲
在 15 天內(nèi)活動非常低(每天少于 1 IOPS)的 EBS 卷表明它們可能未在使用中。使用 Trusted Advisor 未充分利用的 Amazon EBS 卷檢查識別這些卷。為了降低成本,首先對卷進行快照(以備日后需要),然后刪除這些卷。
- 使用 S3 Analytics 分析對象數(shù)據(jù)集上 30 天或更長時間的存儲訪問模式。它就您可以在何處利用 S3 不經(jīng)常訪問 (S3 IA) 來降低成本提出建議。您可以使用生命周期策略自動化將這些對象移動到成本較低的存儲層的過程。或者,您還可以使用 S3 智能分層,它會自動分析您的對象并將其移動到適當(dāng)?shù)拇鎯印?/li>
- 將不常訪問的數(shù)據(jù)移至成本較低的層。
- 如果業(yè)務(wù) SLA 允許,請使用 S3 One Zone。
8. 容器化
容器可以幫助充分利用可用的計算機硬件和軟件資源,這些資源是輕量級的,具有以毫秒為單位的啟動時間,并且需要更少的內(nèi)存空間。容器通過減少 IT 管理資源、快照大小、啟動應(yīng)用程序、減少和簡化安全更新等來幫助實現(xiàn)經(jīng)濟規(guī)模。當(dāng)您的首要任務(wù)是最大限度地提高運行在最低限度上的應(yīng)用程序數(shù)量時,容器是更好的選擇服務(wù)器的數(shù)量。
9. 本地緩存
如果從 EC2 到公共互聯(lián)網(wǎng)的數(shù)據(jù)傳輸成本很高,請考慮使用 Amazon CloudFront。任何圖像、視頻或靜態(tài) Web 內(nèi)容都可以使用 Amazon CloudFront 內(nèi)容分發(fā)網(wǎng)絡(luò) (CDN) 緩存在全球 AWS 邊緣站點。CloudFront 消除了為應(yīng)對潛在的流量高峰而過度配置容量的需要。當(dāng)您的用戶群分布在不同的地理位置時,請使用 CloudFront。
10. VPC 端點
從私有子網(wǎng)(例如靜態(tài)內(nèi)容、備份、視頻等)向 S3 傳輸大量數(shù)據(jù)需要 NAT 網(wǎng)關(guān)。使用 VPC 終端節(jié)點降低 NAT 網(wǎng)關(guān)數(shù)據(jù)成本,并通過 AWS 主干安全地移動數(shù)據(jù)。這將減少 NAT 網(wǎng)關(guān)數(shù)據(jù)產(chǎn)生的 S3 成本。
11. 區(qū)域和可用區(qū)成本
通過正確的解決方案可以明智地消除 AWS AZ 和區(qū)域成本。
內(nèi)部可用區(qū) (AZ)
- 在同一區(qū)域和同一可用區(qū)內(nèi)傳輸數(shù)據(jù)的數(shù)據(jù)傳輸成本為零,但有一個要求是您必須使用私有 IP 地址。
- 如果您使用公共或彈性 IPv4 地址或 IPv6 地址,從 EC2 傳出的數(shù)據(jù)將按 0.01/GB 收費。同樣,如果您使用公共或彈性 IPv4 地址或 IPv6 地址,數(shù)據(jù)傳輸?shù)?AWS EC2 的費用為 0.01/GB。
跨同一區(qū)域的可用區(qū)
- 位于同一區(qū)域但不同可用區(qū)的 AWS 服務(wù)之間的數(shù)據(jù)傳輸被視為區(qū)域數(shù)據(jù)傳輸,按 0.01 美元/GB(傳出數(shù)據(jù)傳輸)收費。
- 同樣,從另一個可用區(qū)的 AWS 服務(wù)向 EC2 傳輸數(shù)據(jù)的費用為 0.01 美元/GB。
這僅適用于某些 AWS 服務(wù),例如 Amazon EC2、Amazon RDS、Amazon Redshift 或 Amazon ElastiCache 實例等。
- 構(gòu)建您的系統(tǒng),以便在 AWS 區(qū)域或可用區(qū)之間傳輸最少的數(shù)據(jù)。
- 構(gòu)建您的 AWS 環(huán)境,以便將數(shù)據(jù)傳輸限制在可用區(qū)內(nèi)或最多在一個區(qū)域內(nèi)。
- 盡可能嘗試使用私有 IP 地址,而不是公共或彈性 IP 地址。
結(jié)論
微調(diào)您的云基礎(chǔ)架構(gòu)對于確保您的整體賬單保持在限制范圍內(nèi)至關(guān)重要。本博客中概述的經(jīng)過驗證的云成本優(yōu)化策略將通過消除未使用的資源和/或選擇正確的資源計劃來幫助您降低云成本。