溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

AWS 架構(gòu)最佳實(shí)踐概述(十一)

發(fā)布時間:2020-08-10 09:58:53 來源:網(wǎng)絡(luò) 閱讀:1811 作者:wzlinux 欄目:云計算

AWS 架構(gòu)最佳實(shí)踐

AWS合理架構(gòu)的框架支柱

  • 安全性 - 保護(hù)并監(jiān)控系統(tǒng)
    • 能夠保護(hù)信息、系統(tǒng)和資產(chǎn)
    • 通過風(fēng)險評估和緩解策略
  • 可靠性 - 從故障中恢復(fù)并減少中斷
    • 從基礎(chǔ)設(shè)施或服務(wù)故障中恢復(fù)
    • 動態(tài)獲取計算資源以滿足需求
    • 減少配置錯誤和暫時性網(wǎng)絡(luò)問題來減少中斷
  • 績效 - 謹(jǐn)慎使用資源
    • 高效的使用計算資源以滿足系統(tǒng)需求
    • 在需求改變和技術(shù)發(fā)展時依舊保持效率
  • 成本優(yōu)化 - 消除不必要的費(fèi)用
    • 減少不必要的成本和次優(yōu)資源
  • 卓越操作

合理架構(gòu)設(shè)計原則

  • 停止猜想容量需求 - 傳統(tǒng)環(huán)境存在浪費(fèi)
  • 在生產(chǎn)層面測試系統(tǒng) - 傳統(tǒng)環(huán)境下因?yàn)楦甙旱臏y試成本,所以通常都無法真實(shí)模擬生產(chǎn)環(huán)境進(jìn)行測試
  • 降低架構(gòu)改變風(fēng)險 - 傳統(tǒng)環(huán)境中需要排隊等待的測試序列化,在測試過程中的各種改變,可能影響后續(xù)測試。
  • 通過自動化讓部署更簡單 - 低成本通過腳本創(chuàng)建并復(fù)制系統(tǒng),追蹤變更和恢復(fù)
  • 支持架構(gòu)的不斷發(fā)展 - 傳統(tǒng)環(huán)境受產(chǎn)品生命周期限制,前期決策也可能成為阻礙,無法響應(yīng)不斷變化的業(yè)務(wù)需求
  • 數(shù)據(jù)驅(qū)動型架構(gòu) - 在云環(huán)境中,可以通過CloudWatch收集相關(guān)數(shù)據(jù),來了解架構(gòu)負(fù)載情況。云基礎(chǔ)架構(gòu)以代碼的形式存在,因此可以利用這些數(shù)據(jù)來改善架構(gòu)。
  • 通過模擬大型流量實(shí)現(xiàn)改進(jìn) - 通過模擬大型流量,來改進(jìn)架構(gòu)中的不足之處,并且積累應(yīng)對的經(jīng)驗(yàn)和方案。

高可用和冗余

  • 發(fā)現(xiàn)當(dāng)前架構(gòu)中的單點(diǎn)故障,引入冗余來消除
  • 選擇最適合的備份和恢復(fù)方案最高效的冗余
  • 使用不同的可用區(qū)實(shí)現(xiàn)地域高可用
  • 利用Route53和ELB主動切換來實(shí)現(xiàn)主動的冗余機(jī)制減少中斷時間

彈性設(shè)計

  • 彈性系統(tǒng)是隨時間推移或響應(yīng)業(yè)務(wù)需求突然變化以應(yīng)對增長的負(fù)載,隨用戶、流量、數(shù)據(jù)大小的增長而不會影響性能
  • 資源增長應(yīng)該引入規(guī)模經(jīng)濟(jì)效益,成本應(yīng)遵循童謠你給的維度從而使該系統(tǒng)創(chuàng)造商業(yè)價值
    • 垂直縮放
      • 通過停止實(shí)例調(diào)整更多的CPU、RAM、IO、網(wǎng)絡(luò)等功能實(shí)現(xiàn)
      • 垂直縮放有其上限、且不容易實(shí)現(xiàn)
    • 水平縮放
    • 無狀態(tài)應(yīng)用程序
    • 所有操作不需要知道過去的上下文,會話也不會被存儲
    • 可以進(jìn)行任意的水平擴(kuò)展且可隨意的安全終止,因?yàn)橄到y(tǒng)資源間不會共享會話數(shù)據(jù)
    • 所有節(jié)點(diǎn)不需要意識到其他節(jié)點(diǎn)的存在,只需要處理分配給他的工作量即可
  • Autoscaling是最佳實(shí)踐
    • 無狀態(tài)組件
      • 大多數(shù)應(yīng)用程序都需要維護(hù)某些狀態(tài)信息,如登錄信息等。
      • 方案一:
        • 應(yīng)用程序可以通過用戶會話標(biāo)識存儲在客戶端本地(如HTTP Cookie)實(shí)現(xiàn)一定程度的無狀態(tài), 但是會存在兩個問題:
        • 放在客戶端本地Cookie的信息容易被篡改,每次都需要傳送用戶會話狀態(tài)占用資源增加延遲
      • 方案二:
        • 用戶會話信息存儲在服務(wù)器關(guān)聯(lián)的數(shù)據(jù)庫中, 如DynamoDB,從而實(shí)現(xiàn)服務(wù)器組件的無狀態(tài)化
    • 有狀態(tài)組件
      • 很多應(yīng)用程序和體系結(jié)構(gòu)都無法轉(zhuǎn)變成無狀態(tài)的
      • 許多遺留系統(tǒng)設(shè)置被設(shè)計成必須依靠本地單獨(dú)計算資源運(yùn)行的

自動化部署

  • 公有云最大的好處就是能夠利用API來自動化部署過程,建議從一開始就進(jìn)行自動化部署
  • 自動化和可重復(fù)部署將有效的減少錯誤并促使高效的可擴(kuò)展更新過程
  • Bootstrap 實(shí)例
    • 利用自動化動作Bootstrap實(shí)例
      • 在初始化過程中用于只是簡單的指定如名稱、角色信息,其他都有腳本自動完成,對不同的選項提供所有必要的自動化啟動資源,包括code、script和configuration等。
    • 重復(fù)創(chuàng)建相同環(huán)境
    • 對云基礎(chǔ)架構(gòu)保持抽象
    • 減少人工部署錯誤機(jī)會
    • 創(chuàng)建一個自我發(fā)現(xiàn)和自我修復(fù)的環(huán)境

選擇合適的存儲

  • S3
    • Web需要大規(guī)模存儲容量和性能
    • 高耐久性數(shù)據(jù),以及支持災(zāi)難恢復(fù)的備份
  • Glacier
    • 數(shù)據(jù)歸檔和長期備份
  • Cloudfront
    • 利用內(nèi)容交付網(wǎng)絡(luò)在全球邊緣位置部署靜態(tài)、動態(tài)、流媒體和交互式內(nèi)容
  • DynamoDB
    • 快速且靈活的NoSQL數(shù)據(jù)庫,靈活的數(shù)據(jù)模型和可靠的性能
    • 可以用來解耦有狀態(tài)應(yīng)用,將用戶狀態(tài)存儲在DynamoDB中使應(yīng)用程序可以實(shí)現(xiàn)無狀態(tài)組件
  • EBS
    • 可靠地塊存儲運(yùn)行關(guān)鍵程序,如Oracle,SAP,Exchange等
  • RDS
    • 高可用的SQL數(shù)據(jù)庫
  • Redshift
    • PB級數(shù)據(jù)倉庫,支持業(yè)務(wù)分析
  • ElasticCache
    • Redis集群內(nèi)存緩存
  • EFS (彈性文件系統(tǒng))
    • 多個EC2實(shí)例之間共享應(yīng)用程序的通用文件系統(tǒng)

AWS 架構(gòu)最佳實(shí)踐概述(十一)

在每一層建立安全

  • 傳統(tǒng)的安全審計是定期和審計的,但是在云端可以提供持續(xù)監(jiān)控和治理,同事利用代碼將安全策略嵌入基礎(chǔ)設(shè)施設(shè)計
  • 最佳實(shí)踐
    • 對數(shù)據(jù)進(jìn)行清點(diǎn)和優(yōu)先級排序,在傳輸和存儲時應(yīng)用適當(dāng)?shù)募用芗墑e
    • AWS功能實(shí)現(xiàn)多級防御
      • 網(wǎng)絡(luò)層面: VPC 、 子網(wǎng)、安全組、路由控制
      • 主機(jī)層面: WAF、 IAM
    • 將安全交給AWS
      • 使用AWS 托管服務(wù),由AWS進(jìn)行補(bǔ)丁和安全管理
      • 減少特權(quán)訪問
      • 應(yīng)用程序使用臨時安全令牌在EC2上運(yùn)行
    • 使用IAM進(jìn)行賬戶和權(quán)限管理
      • 使用臨時令牌提供聯(lián)合訪問
      • 對憑據(jù)進(jìn)行自動分發(fā)和輪換
      • 授予最小權(quán)限的標(biāo)準(zhǔn)安全慣例
    • 利用代碼實(shí)現(xiàn)安全
      • 利用CloudFormation腳本進(jìn)行可靠地安全部署 稱為"Golden Environment"
      • 最佳安全實(shí)踐將會被很容易的在不同環(huán)境中重用并且集成到CICD pipeline中
      • 可以利用安全測試自動發(fā)現(xiàn)與安全策略基線的偏差
      • CloudFormation 可以作為產(chǎn)品導(dǎo)入AWS Service Catalog 中進(jìn)行一致性治理
    • 實(shí)時審計
      • AWS實(shí)現(xiàn)持續(xù)監(jiān)控和控制自動化,最大限度降低安全風(fēng)險
      • 借助Config Rules 可以知道某個組件是否在短時間內(nèi)不合規(guī)
      • CloudWatch提供廣泛的日志記錄、
      • CloudTrail 實(shí)現(xiàn)實(shí)際的API調(diào)用
      • 所有日志可以備Lambda、EMR等自動處理

并行化處理思維

  • 云中可以輕松實(shí)現(xiàn)并行處理
  • 如檢索和存儲數(shù)據(jù)時,云被設(shè)計成處理大規(guī)模并行操作,所以為了提高性能和吞吐率,應(yīng)該盡可能使用并行請求設(shè)計
  • Web應(yīng)用程序,應(yīng)該設(shè)計成支持ELB負(fù)載均衡的傳入請求分布的并行處理
  • 批處理場景下更多的使用擁有多從屬節(jié)點(diǎn)的hadoop架構(gòu)

松耦合設(shè)計

  • 將系統(tǒng)設(shè)計成多個獨(dú)立組建的系統(tǒng)體系,組件越松散,相互依賴性越低,系統(tǒng)規(guī)模就能更大
  • Amazon API Gateway提供了公開定義接口的方法,是完全托管的服務(wù)
  • 支持開發(fā)人員創(chuàng)建、發(fā)布、維護(hù)和監(jiān)控以及保護(hù)各種規(guī)模API
  • 可以處理所涉及的數(shù)十萬并發(fā)的API調(diào)用,包括流量管理、授權(quán)和訪問控制
  • 異步集成是松耦合的常用模式,利用SQS或者Kinesis進(jìn)行松耦合集成
  • 利用異步集成耦合可以引入額外的彈性,可以對處理失敗的消息進(jìn)行再次處理

AWS最佳實(shí)踐

  • 實(shí)現(xiàn)擴(kuò)展架構(gòu) - 以應(yīng)對需求變化
  • 自動部署環(huán)境 - 消除手工操作提高系統(tǒng)的穩(wěn)定性和一致性,并提高組織效率
  • 使用一次性資源 - 將服務(wù)器和其他組件視為臨時資源
  • 松耦合組件 - 降低相互依賴,當(dāng)一個組件變化或出故障時,其他組件不受影響,ELB和SQS是主要解耦解決方案
  • 設(shè)計服務(wù)而不是設(shè)計服務(wù)器 - 托管方案和無服務(wù)架構(gòu)讓環(huán)境實(shí)現(xiàn)更高的可靠性和環(huán)境 ,如Lambda, SQS,SNS,DynamoDB
  • 更合適的數(shù)據(jù)庫解決方案 - 技術(shù)與工作負(fù)載相匹配,選擇關(guān)系型數(shù)據(jù)庫NoSQL數(shù)據(jù)庫,數(shù)據(jù)倉庫以及針對搜索優(yōu)化過的數(shù)據(jù)存儲
  • 避免單點(diǎn)故障 - 實(shí)施冗余以避免單點(diǎn)故障破壞整個系統(tǒng),可以選擇停機(jī)啟動的自動化解決方案或者托管服務(wù)在故障時自動對底層進(jìn)行替換
  • 優(yōu)化成本 - 確保資源規(guī)模適當(dāng)、可以根據(jù)需求進(jìn)行自動縮減和擴(kuò)展,充分利用不同的定價方案. 將資本性支出轉(zhuǎn)變?yōu)榭勺冎С觥?/li>
  • 使用緩存 - 盡可能減少冗余數(shù)據(jù)檢索操作
  • 在各個位置保護(hù)基礎(chǔ)設(shè)施安全 - 可以在外圍和資源內(nèi)部或資源之間實(shí)現(xiàn)安全性

事件驅(qū)動架構(gòu)

概述

  • 云計算的優(yōu)勢就是快速對資源需求方面的變化作出響應(yīng),以應(yīng)對變化。
  • 傳統(tǒng)模式下,即便是在云計算平臺中,當(dāng)服務(wù)器滿負(fù)荷也會導(dǎo)致無法響應(yīng)訪問,雖然手工擴(kuò)展只需要幾分鐘時間,但是也是不能接受的

基于事件驅(qū)動的架構(gòu)

  • 監(jiān)控解決方案CloudWatch
    • 利用CloudWatch監(jiān)控服務(wù)器隊列,通過設(shè)置多樣的閾值來觸發(fā)擴(kuò)展,閾值規(guī)則設(shè)置可以設(shè)定到特定的應(yīng)用程序自定義指標(biāo)。
  • AutoScaling
    • 通過收到CloudWatch的告警進(jìn)行實(shí)例擴(kuò)展,在應(yīng)用服務(wù)達(dá)到全容量前就準(zhǔn)備就緒來提供無縫體驗(yàn)
    • 垂直擴(kuò)展
      • 對實(shí)例規(guī)格進(jìn)行變化,如CPU、內(nèi)存等
      • 垂直擴(kuò)展始終有其天花板,而且可能會存在更多的性能問題, 如Java堆棧過大造成的回收時長,而且可能需要重啟服務(wù)器
    • 水平擴(kuò)展
      • 對實(shí)例數(shù)量進(jìn)行變化,添加和刪除實(shí)例
      • 幾乎沒有任何能力限制,只是應(yīng)用程序設(shè)計的過程中需要考慮對水平擴(kuò)展的支持

AWS 架構(gòu)最佳實(shí)踐概述(十一)

  • EC2 Auto Recovery
    • 當(dāng)EC2出現(xiàn)問題時,對受損的實(shí)例自動恢復(fù)功能或自動替換
    • 通過CloudWatch 檢測可能因?yàn)榫W(wǎng)絡(luò)連接丟失、系統(tǒng)電源損耗、主機(jī)軟硬件問題導(dǎo)致的EC2受損
    • 替換實(shí)例是可以保持相同的實(shí)例ID,元數(shù)據(jù)、IP地址,但是內(nèi)存數(shù)據(jù)將會丟失
    • 在中國區(qū)尚不支持
    • 不能使用實(shí)例存儲必須是EBS支持的存儲

Web應(yīng)用設(shè)計

Web應(yīng)用的業(yè)務(wù)價值

AWS 架構(gòu)最佳實(shí)踐概述(十一)

基于云架構(gòu)的Web托管架構(gòu)實(shí)踐

AWS 架構(gòu)最佳實(shí)踐概述(十一)

  • Route53 提供DNS服務(wù)
  • Cloudfront 為高容量內(nèi)容提供邊緣緩存
  • 前端ELB將流量分不到Web服務(wù)器的AutoScaling組
  • Web服務(wù)器安全組 實(shí)現(xiàn)外部防火墻的安全策略
  • 后端服務(wù)器安全組實(shí)現(xiàn)后端防火墻的安全策略
  • 后端ELB將流量分布到后端應(yīng)用程序集群中
  • ElastiCache 為應(yīng)用程序提供緩存服務(wù),從而減少數(shù)據(jù)庫層的負(fù)載
  • 通過S3存儲和提供靜態(tài)資產(chǎn)

歡迎大家掃碼關(guān)注,獲取更多信息

AWS 架構(gòu)最佳實(shí)踐概述(十一)

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI