亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)提供各種資源和服務(wù)來幫助您構(gòu)建SaaS和PaaS解決方案,但是,挑戰(zhàn)在于實(shí)現(xiàn)和保持性能效率,這在交付業(yè)務(wù)價(jià)值方面具有自己的重要份額。本文重點(diǎn)介紹了設(shè)計(jì)和運(yùn)行可靠、安全、高效且經(jīng)濟(jì)高效的云應(yīng)用程序的一些最佳做法,這些應(yīng)用程序可提供性能效率。有兩個(gè)主要領(lǐng)域需要關(guān)注:
選擇和配置云資源以獲得更高的性能
查看和監(jiān)控性能
1. 選擇和配置云資源以獲得更高的性能
計(jì)算:在 AWS 中,計(jì)算以三種形式提供:實(shí)例、容器和函數(shù)。可以根據(jù)工作負(fù)載選擇要用于體系結(jié)構(gòu)中每個(gè)組件的計(jì)算形式。在構(gòu)建計(jì)算使用時(shí),您應(yīng)通過以下方式利用 AWS 彈性計(jì)算選項(xiàng):
選擇最佳實(shí)例系列和類型,以確保您擁有正確的計(jì)算、內(nèi)存、網(wǎng)絡(luò)和存儲(chǔ)功能,以及最符合工作負(fù)載需求的正確配置
優(yōu)化操作系統(tǒng)設(shè)置,如卷管理、RAID、塊大小和設(shè)置
使用 Amazon ECS 服務(wù)構(gòu)建容器時(shí),您應(yīng)該使用數(shù)據(jù)為工作負(fù)載選擇最佳類型,并考慮容器配置選項(xiàng),例如內(nèi)存、CPU 和租賃配置
實(shí)現(xiàn)性能的關(guān)鍵 AWS 計(jì)算服務(wù):
AWS Lambda:要使用 AWS Lambda 提供最佳性能,請(qǐng)選擇函數(shù)所需的內(nèi)存量。例如,選擇 256 MB 內(nèi)存會(huì)為您的 Lambda 函數(shù)分配大約是請(qǐng)求 128 MB 內(nèi)存的兩倍。您還可以控制每個(gè)函數(shù)允許運(yùn)行的時(shí)間(最多 300 秒)
AWS 競(jìng)價(jià)型實(shí)例:使用競(jìng)價(jià)型實(shí)例以低成本生成負(fù)載,并在生產(chǎn)中遇到瓶頸之前發(fā)現(xiàn)瓶頸
存儲(chǔ):AWS 提供塊、文件系統(tǒng)、對(duì)象和存檔等存儲(chǔ)解決方案。您可以通過考慮共享能力、文件大小、緩存大小、延遲要求、預(yù)期吞吐量和數(shù)據(jù)持久性等特征來選擇任何一項(xiàng)。
實(shí)現(xiàn)性能的關(guān)鍵 AWS 存儲(chǔ)服務(wù):
您可以從 Amazon S3、Amazon Glacier、Amazon Elastic Block Store (Amazon EBS)、Amazon Elastic File System (Amazon EFS) 或 Amazon EC2 實(shí)例存儲(chǔ)中選擇最適合您需求的 AWS 服務(wù)。以下是 AWS 存儲(chǔ)服務(wù)及其特征的摘要。
參考:AWS 架構(gòu)完善的框架 – AWS 的性能效率支柱白皮書
數(shù)據(jù)庫:在 AWS 中,有四種方法可以滿足數(shù)據(jù)庫要求:關(guān)系在線事務(wù)處理 (OLTP)、非關(guān)系數(shù)據(jù)庫 (NoSQL)、數(shù)據(jù)倉庫和在線分析處理 (OLAP) 以及數(shù)據(jù)索引和搜索。在管理數(shù)據(jù)時(shí),應(yīng)考慮以下準(zhǔn)則。
選擇最適合您的訪問模式的數(shù)據(jù)庫解決方案,或考慮更改您的訪問模式(例如,索引、密鑰分布、分區(qū)或水平擴(kuò)展)以與存儲(chǔ)解決方案保持一致,以最大限度地提高性能
確定解決方案可能需要的不同特征(例如,可用性、一致性、分區(qū)容錯(cuò)、延遲、持久性、可伸縮性和查詢功能),以便可以選擇適當(dāng)?shù)臄?shù)據(jù)庫和存儲(chǔ)技術(shù),如關(guān)系、NoSQL 或倉庫
考慮所選數(shù)據(jù)庫方法的配置選項(xiàng),例如存儲(chǔ)優(yōu)化、數(shù)據(jù)庫級(jí)設(shè)置、內(nèi)存和緩存
實(shí)現(xiàn)性能的關(guān)鍵 AWS 數(shù)據(jù)庫服務(wù):
Amazon RDS:請(qǐng)考慮使用自動(dòng)只讀副本(不適用于 Oracle 或 SQL Server)來橫向擴(kuò)展讀取性能、SSD 支持的存儲(chǔ)選項(xiàng)和預(yù)配的 IOPS。這些副本允許讀取密集型工作負(fù)載使用多個(gè)服務(wù)器,而不是使中央數(shù)據(jù)庫過載
Amazon DynamoDB Accelerator (DAX):它通過數(shù)據(jù)庫前面的讀取/直寫分布式緩存層提供吞吐量 Auto Scaling 支持,為緩存中的實(shí)體提供亞毫秒級(jí)延遲
Amazon Redshift:當(dāng)您需要可擴(kuò)展的 SQL 操作時(shí),請(qǐng)使用 Amazon Redshift。如果您指定排序鍵、分布鍵和列編碼,Amazon Redshift 將提供最佳性能,因?yàn)檫@些可以顯著提高存儲(chǔ)、I/O 和查詢性能
Amazon Athena:它提供了一個(gè)完全托管的Presto服務(wù),可以在具有大量結(jié)構(gòu)化程度較低的數(shù)據(jù)的數(shù)據(jù)湖上運(yùn)行查詢
Amazon ElastiCache:它用作內(nèi)存數(shù)據(jù)存儲(chǔ)和緩存,以支持要求亞毫秒級(jí)響應(yīng)時(shí)間、高吞吐量和低延遲的最苛刻的應(yīng)用程序
網(wǎng)絡(luò):在 AWS 中,聯(lián)網(wǎng)通過計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)、路由和邊緣服務(wù)以多種不同的類型和配置提供。
為基于部署的用戶位置、數(shù)據(jù)位置以及安全性和合規(guī)性要求選擇適當(dāng)?shù)囊粋€(gè)或多個(gè)區(qū)域
使用內(nèi)容分發(fā)網(wǎng)絡(luò) (CDN) 和域名系統(tǒng) (DNS) 等邊緣服務(wù)來減少延遲。但是,您需要確保已正確配置DNS和HTTP / HTTPS的緩存控制,以獲得最大的好處
使用應(yīng)用程序負(fù)載均衡器進(jìn)行 HTTP 和 HTTPS 流量請(qǐng)求路由,用于使用微服務(wù)和容器的現(xiàn)代應(yīng)用程序架構(gòu)
使用網(wǎng)絡(luò)負(fù)載均衡器對(duì)需要極端性能的 TCP 流量進(jìn)行負(fù)載平衡。它能夠每秒處理數(shù)百萬個(gè)請(qǐng)求,同時(shí)保持超低延遲,并且還經(jīng)過優(yōu)化以處理突發(fā)和不穩(wěn)定的流量模式
實(shí)現(xiàn)性能的關(guān)鍵 AWS 網(wǎng)絡(luò)服務(wù):
亞馬遜 EBS 優(yōu)化實(shí)例:它們提供優(yōu)化的配置堆棧,以最大程度地減少 Amazon EBS I/O 與來自實(shí)例的其他流量之間的爭(zhēng)用
亞馬遜 S3 傳輸加速:Amazon S3 提供內(nèi)容加速作為一項(xiàng)功能,使外部用戶能夠從 CloudFront 的網(wǎng)絡(luò)優(yōu)化中受益,從而將數(shù)據(jù)上傳到 Amazon S3。
Amazon Elastic Network Adapters (ENA): 它通過在單個(gè)置放群組內(nèi)為您的實(shí)例提供 20 Gbps 的網(wǎng)絡(luò)容量來提供進(jìn)一步的優(yōu)化
AWS CloudFront: 它是一個(gè)全球 CDN 提供全球邊緣站點(diǎn)網(wǎng)絡(luò),用于緩存內(nèi)容并為最終用戶提供高性能網(wǎng)絡(luò)連接
亞馬遜路線 53:它提供基于延遲的路由 (LBR),通過將客戶路由到 AWS 終端節(jié)點(diǎn)(適用于 EC2 實(shí)例、彈性 IP 地址或 ELB 負(fù)載均衡器)來幫助提高應(yīng)用程序的性能
Amazon Virtual Private Cloud (Amazon VPC):使用 VPC 終端節(jié)點(diǎn),您的 VPC 與其他 AWS 服務(wù)之間的數(shù)據(jù)將在 Amazon 網(wǎng)絡(luò)內(nèi)傳輸,從而有助于保護(hù)您的實(shí)例免受互聯(lián)網(wǎng)流量的影響并提高性能
AWS Direct Connect: 它提供與 AWS 環(huán)境的專用連接,從 50 Mbps 到 10 Gbps
2.審查和監(jiān)控績(jī)效
確定解決方案的高性能 AWS 架構(gòu)方法后,您應(yīng)該設(shè)置一個(gè)自動(dòng)化流程來執(zhí)行/監(jiān)控/查看性能,以確保您選擇的資源類型和配置選項(xiàng)符合您的自定義和行業(yè)基準(zhǔn)。
績(jī)效衡量指標(biāo)和基準(zhǔn):構(gòu)建您自己的自定義或行業(yè)標(biāo)準(zhǔn)基準(zhǔn),例如 TPC-DS(對(duì)數(shù)據(jù)倉庫工作負(fù)載進(jìn)行基準(zhǔn)測(cè)試)。還建議您同時(shí)使用技術(shù)和業(yè)務(wù)指標(biāo)。例如,網(wǎng)站或移動(dòng)應(yīng)用的關(guān)鍵技術(shù)指標(biāo)是呈現(xiàn)時(shí)間、線程計(jì)數(shù)、垃圾回收率和等待狀態(tài),而業(yè)務(wù)指標(biāo)包括每個(gè)請(qǐng)求的總累積成本、每個(gè)用戶和每個(gè)微服務(wù)的請(qǐng)求、降低成本的警報(bào)等。
自動(dòng)化性能測(cè)試:設(shè)置 CICD 進(jìn)程,以便在每個(gè)生成成功通過功能測(cè)試后自動(dòng)觸發(fā)性能測(cè)試。自動(dòng)化應(yīng)創(chuàng)建新環(huán)境,設(shè)置初始條件,加載測(cè)試數(shù)據(jù),然后執(zhí)行性能和負(fù)載測(cè)試。這些測(cè)試的結(jié)果應(yīng)與生成相關(guān)聯(lián),以便可以跟蹤隨時(shí)間推移的性能變化
自動(dòng)化測(cè)試:創(chuàng)建云解決方案測(cè)試自動(dòng)化框架,該框架運(yùn)行一系列測(cè)試腳本,這些腳本復(fù)制預(yù)先記錄的用戶旅程和數(shù)據(jù)訪問模式,以盡可能預(yù)測(cè)生產(chǎn)中 AWS 資源使用情況的行為。您還可以使用軟件或軟件即服務(wù) (SaaS) 解決方案來生成所需的負(fù)載
性能監(jiān)控儀表板:對(duì)于每個(gè)構(gòu)建版本,您的團(tuán)隊(duì)?wèi)?yīng)可以看到關(guān)鍵技術(shù)和業(yè)務(wù)指標(biāo),以確保性能效率。創(chuàng)建可視化效果以監(jiān)視性能問題、熱點(diǎn)、等待狀態(tài)或低利用率
關(guān)鍵 AWS 性能審查和監(jiān)控服務(wù):
Amazon CloudWatch:它有助于收集和發(fā)布自定義指標(biāo)和業(yè)務(wù)指標(biāo),并設(shè)置警報(bào),指示何時(shí)超出閾值,以通知測(cè)試超出預(yù)期性能
AWS 可信顧問: 它可以幫助您監(jiān)控 EC2 利用率、服務(wù)限制、安全組中導(dǎo)致性能下降的大量規(guī)則、資源記錄集、過度使用的 EBS、CloudFront 的 HTTP 請(qǐng)求標(biāo)頭、EC2 到 EBS 吞吐量、錯(cuò)誤配置的 DNS 設(shè)置以及更多性能檢查點(diǎn),并建議所需的操作
審核編輯:郭婷
-
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
3712瀏覽量
64027 -
AWS
+關(guān)注
關(guān)注
0文章
418瀏覽量
24184
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論