AWS S3
基本信息
業(yè)務場景
- 挑戰(zhàn)
- Web服務器傳輸大型文件可能引起網(wǎng)絡延遲
- 用戶生成的內(nèi)容需要分配到所有的web服務器中
- 解決方案
- 靜態(tài)資產(chǎn)存放在S3中
- S3中的對象設置為公開逐哈,用戶可以直接訪問
S3的好處
- 通過API或者HTTP進行訪問
- S3是以冗余方式將對象存儲遣疯,至少在三個可用區(qū)存放副本
- S3使用校驗和來驗證數(shù)據(jù)的完整性
- 提供完善的版本控制使用戶能夠保存呈础、檢索和還原每個對象的各個版本
- 多副本的數(shù)據(jù)一致性
S3 屬性
存儲桶 Buckets
- 存儲S3的容器
- Bucket 名 最多包含63個字符床估,且在全球AWS都必須是唯一的
- 最佳實踐是包含并符合DNS域名規(guī)范來對Bucket命名
- 在靠近用戶的區(qū)域創(chuàng)建Bucket以優(yōu)化性能
- 每用戶最多可創(chuàng)建100個存儲桶
- 存儲桶需要指定區(qū)域蛋欣,但是不能指定可用區(qū)
對象 Object
- 每一個存儲在S3的實體或文件都是對象
- 最大支持單個對象5TB
- 對象由文件本身和元數(shù)據(jù)組成
- 文件本身在S3看來只是一串字節(jié)流
- 元數(shù)據(jù)包含了對象的名稱和鍵值处面,系統(tǒng)元數(shù)據(jù)包括了MD5菩掏,上次修改日期等系統(tǒng)信息魂角,用戶元數(shù)據(jù)是用戶的可選項
- 獲取對象使用的Request包頭
- x-amz-meta-
- x-amz-storage-class
- Content-MD5
- Content-Length
- 數(shù)據(jù)結(jié)構(gòu)
- 鍵(Key):可以認為是數(shù)據(jù)的名字
- 值(Value):表示數(shù)據(jù)本身
- 版本號(Version ID):對于啟用了版本控制的存儲桶來說很重要
- 元數(shù)據(jù)(Metadata):關(guān)于數(shù)據(jù)的描述智绸,比如說數(shù)據(jù)的創(chuàng)建時間,更改時間瞧栗,文件類型斯稳,文件大小等信息
- 訪問控制信息:能管理對Bucket內(nèi)文件的訪問權(quán)限
- Key
- 每個對象的標識迹恐,在存儲桶內(nèi)唯一
- 最大支持1024字節(jié)的UTF-8字符殴边,可以包含斜杠等
- 存儲桶名+Key 組成S3對象的唯一標識
- 最佳命名實踐是利用/進行命名對對象進行邏輯組織,但記住這并不代表文件是被層次組織的竖幔,S3對象始終處于一個平面而不是一個真正的File System
- S3對象可以基于其唯一標識通過Internet直接尋址訪問是偷,URL就是其唯一標識
- 對象標簽
- 每個對象添加最多10個標簽
- 用標簽標記后可以用于IAM策略管理
S3 特性
S3 操作
- 基于REST API接口進行操作,將HTTP動詞映射到CRUD操作
- 實際使用更高級的接口(如編程語言馋评,SDK栗恩,CLI和控制臺)來調(diào)用REST API
可用性和持久性
- S3采用高度持久和可用的存儲基礎架構(gòu)
- 持久性 = 11個9
- 可用性 = 4 個 9
- 建議采用版本控制、跨域區(qū)復制乳乌、MFA刪除等方式來防止用戶意外造成的邏輯錯誤
一致性
- S3會自動在區(qū)域內(nèi)對數(shù)據(jù)進行自動復制
- S3是一個最終一致性系統(tǒng)市咆,保證所有的獲取都是一致的
- 為新對象PUTS 提供 先寫后讀一致性
- 為 Overwrite PUTS和DELETE提供最終一致性
S3 定價策略
- 存儲容量
- 讀取操作
- 數(shù)據(jù)傳輸
S3高級功能
存儲級別
- S3-Standard
- 提供高耐用蒙兰、高可用、低延遲和高性能的存儲對象
- S3-Standard-IA
- 提供較低的高可用標準但仍然是多可用區(qū)部署的采缚,但設計用于長期存取和訪問頻率較低的數(shù)據(jù)扳抽,
- 利用規(guī)模效應對存儲超過30天以上的提供更低成本的選項殖侵,最小收費粒度128KB,最短使用30天楞陷。
- S3-ONEZONE-IA
- 類似于Standard-IA茉唉,但是僅部署在一個可用區(qū)內(nèi)提供高可用
- 用于非關(guān)鍵性和易重現(xiàn)數(shù)據(jù)赌渣,用于替代RRS
- INTELLIGENT_TIERING
- 自動分層的數(shù)據(jù),類似于IA的持久性和可用性
- 能夠提供標準的讀寫性能但不是一致的览芳,取決于讀寫請求頻率
- 有額外的監(jiān)控和自動分層的成本鸿竖,最短使用30天缚忧,小于128K的對象沒有資格進行自動分層但仍收費悟泵。
- S3減少冗余存儲 RRS
- 適用于非關(guān)鍵數(shù)據(jù)或易于重現(xiàn)的派生數(shù)據(jù)糕非,支持低延遲訪問,不支持高可用的(4個9持久性)
- 目前已經(jīng)不再推薦禁筏,使用S3-ONEZONE-IA替代
- Glacier
- 成本極低的歸檔數(shù)據(jù)存儲衡招,不需要實時數(shù)據(jù)訪問
image.png
對象生命周期管理
- 類似于自動存儲分層的解決方案
- S3可以利用生命周期配置規(guī)則始腾,將數(shù)據(jù)從一個存儲級別向另一個存儲級別轉(zhuǎn)換浪箭,指導最終自動刪除
- Transition :轉(zhuǎn)換存儲類別
- Expiration:指定對象過期時間
- 如: 最初在S3 Standard,30天后 S3 Standard IA房待, 90天后 Glacier驼抹, 3年后自動刪除
數(shù)據(jù)訪問
- 桶策略
- 默認只有存儲桶和對象所有者才能訪問他們創(chuàng)建的S3資源
- 利用IAM可以修改和管理用戶訪問S3資源的權(quán)限
- 存儲桶策略可以對全部或部分S3對象的訪問進行授權(quán)管理
- S3 ACL
- 使用S3 ACL可以為S3的對象提供其他AWS對其的訪問權(quán)限管理
數(shù)據(jù)傳輸及其加速
- S3傳輸加速 (Amazon S3 Transfer Acceleration)框冀,可以利用AWS CloudFront CDN網(wǎng)絡的邊緣節(jié)點(Edge Locations)加速傳輸?shù)倪^程明也」咴#可以將數(shù)據(jù)上傳到離我們最近的邊緣節(jié)點蜻势,然后再通過AWS內(nèi)部網(wǎng)絡(更高速,更穩(wěn)定)傳輸?shù)侥繕藚^(qū)域的S3存儲桶够傍。
- 您位于全球各地的客戶需要上傳到集中式存儲桶
- 您定期跨大洲傳輸數(shù) GB 至數(shù) TB 數(shù)據(jù)
- 您在上傳到 Amazon S3 時未充分利用 Internet 上的可用帶寬
- 上傳需要指定專用的兩個S3雙堆棧加速節(jié)點
- S3支持客戶端加密和服務器端加密兩種方式傳輸數(shù)據(jù)
- 服務器端加密使用SSE AES-256 加密
- S3對通過互聯(lián)網(wǎng)傳入傳出流量收費冕屯,但對區(qū)域內(nèi)部存儲桶之間或者AWS服務之間的傳輸不收費
版本管理
- S3允許每個對象的多個版本保存在存儲桶中安聘,在數(shù)據(jù)被意外或者惡意刪除時,可以利用對象的唯一標識+版本ID進行恢復
- 版本控制是一個存儲桶級別的可選項带迟,一旦打開只能暫停而不能關(guān)閉
- 開啟版本管理后仓犬,刪除一個對象實際是新增了一個刪除標記使得對象不可見搀继,在版本控制中刪除這個刪除標記即可恢復對象
- 只有存儲桶所有者才能永久刪除版本翠语,也可以設置生命周期規(guī)則來進行版本管理
MFA刪除
- 支持需要額外驗證來永久刪除對象版本或者更改存儲桶版本控制狀態(tài)
- 僅能采用Root 用戶執(zhí)行該操作肌括,且一般采用額外的硬件生成驗證碼
預先簽名的網(wǎng)址
- 默認S3對象是私有的谍夭,但是可以通過預先簽名授權(quán)其他用戶采用安全憑證授予有時間限制的訪問
- 安全憑證必須制定存儲桶名稱、對象Key袁辈、HTTP方法和過期時間等
靜態(tài)網(wǎng)站托管
- S3可以直接將Html對象作為靜態(tài)網(wǎng)站的托管
- 不能做PHP晚缩、ASP.net荞彼、JSP等服務器端處理
- 可以通過客戶端腳本完成動態(tài)和交互待笑,如嵌入靜態(tài)HTML網(wǎng)頁的JavaScript
- 創(chuàng)建一個與網(wǎng)站同名的存儲桶滋觉,并指定一個索引和錯誤文檔,
- 需要單獨打開靜態(tài)托管功能第租,并指定index.html 和 error.html
- 普通的S3 URL:https://s3.ap-northeast-2.amazonaws.com/abc-com/index.html
- S3托管的靜態(tài)網(wǎng)站URL:http://abc-com.s3-website-ap-northeast-2.amazonaws.com
分段上傳 API
- 主要用于大型對象的上傳慎宾,100MB以上建議使用趟据,5GB以上必須采用
- 被拆分之后的零件可以以任意順序上傳,在全部傳輸完成后再進行組裝
- 可以通過設置對象生命周期粘衬,在指定天數(shù)后終止不完整的分段上傳
- 好處
- 提高吞吐量 – 您可以并行上傳分段以提高吞吐量稚新。
- 從任何網(wǎng)絡問題中快速恢復 - 較小的分段大小可以將由于網(wǎng)絡錯誤而需重啟失敗的上傳所產(chǎn)生的影響降至最低褂删。
- 暫停和恢復對象上傳 – 您可以在一段時間內(nèi)逐步上傳對象分段冲茸。啟動分段上傳后轴术,不存在過期期限膳音;您必須顯式地完成或中止分段上傳。
- 在您知道對象的最終大小前開始上傳 – 您可以在創(chuàng)建對象時將其上傳。
Range GET
- 在S3或者Glacier 中僅下載對象的一部分內(nèi)容兵志,主要用于更高效的處理大型對象
- 最小可以到1個字節(jié)的范圍
隨時查詢
- Amazon S3 允許客戶對存儲數(shù)據(jù)運行復雜的查詢想罕,無需將數(shù)據(jù)移動到獨立的分析平臺霉涨。
- S3 Select
- 利用簡單的 SQL 語句檢索對象內(nèi)較小且具有針對性的數(shù)據(jù)集。
- 您可以將 S3 Select 與 AWS Lambda 搭配使用楼镐,來構(gòu)建無服務器應用程序框产,此類應用程序可使用 S3 Select 有效且輕松地檢索 Amazon S3 中的數(shù)據(jù),而不是檢索和處理整個對象戒突。
- Amazon Athena
- Amazon Athena 是一項交互式查詢服務膊存,讓您能夠輕松使用標準 SQL 查詢分析 Amazon S3 中的數(shù)據(jù)膝舅。
- Athena 是無服務器式服務窑多,因此您無需設置或管理基礎設施即可馬上開始分析數(shù)據(jù)埂息。您甚至無需將數(shù)據(jù)加載到 Athena 中千康,因為它可以直接處理所有 S3 存儲類中存儲的數(shù)據(jù)拾弃。
- Amazon Redshift Spectrum
- Amazon Redshift Spectrum 是 Amazon Redshift 的一項功能,借助這項功能奔坟,您可以對 Amazon S3 中的 EB 級的數(shù)據(jù)運行查詢咳秉,而無需進行加載或 ETL 操作澜建。
- 當您發(fā)布查詢時蝌以,查詢會進入 Amazon Redshift SQL 終端節(jié)點跟畅,該終端節(jié)點會生成查詢方案并對其進行優(yōu)化碍彭。
跨區(qū)域復制(CRR)
- S3的一個可選項,可以把AWS區(qū)域中的源存儲桶中的新對象異步復制到另一個區(qū)域中的目標存儲桶
- 與對象關(guān)聯(lián)的元數(shù)據(jù)和ACL也會被復制
- 源和目標存儲桶都必須啟用版本控制
- 支持分別為源目標創(chuàng)建生命周期規(guī)則舰褪,也可以無視規(guī)則直接將數(shù)據(jù)復制到跨區(qū)域的Glacier中
- 功能啟動后疏橄,只有新對象會被跨區(qū)域復制捎迫,現(xiàn)有對象必須手工通過單獨的命令復制過去
- 支持跨賬戶CCR
- 刪除操作(包括文件刪除和版本刪除)都不會被同步到目標區(qū)域
存儲類分析
- 借助存儲類分析窄绒,您可以分析存儲訪問模式并將相應數(shù)據(jù)傳輸給正確的存儲類彰导。這一新的 S3 功能可自動識別不頻繁訪問模式,從而幫助您將存儲轉(zhuǎn)換為 S3 標準 – IA山析。
- 您可以配置存儲類分析策略來監(jiān)視整個存儲桶笋轨、前綴或?qū)ο髽撕灐?/li>
- 最后在控制臺上可視化爵政,也可以導出至S3以便用Amazon QuickSight 商業(yè)智能分析工具茂卦。
對象鎖定
- 可以在客戶定義的保留期內(nèi)阻止刪除對象版本组哩,讓您能夠通過實施保留策略來進一步保護數(shù)據(jù)或滿足監(jiān)管要求伶贰。
- 在對象級別或存儲桶級別配置 S3 對象鎖定黍衙,防止在預定義的保留到期日期或依法保留日期之前刪除對象版本琅翻。無論對象在哪個存儲類中方椎,S3 對象鎖定保護都將保留,并且會在存儲類之間的整個 S3 生命周期轉(zhuǎn)換期間保留琳疏。
S3 清單
- 為S3同步列表提供的預定替代方案
- 通過S3清單空盼,提供每日揽趾,每周的對象元數(shù)據(jù)進行輸入篱瞎,以加快業(yè)務工作流和大數(shù)據(jù)作業(yè)的查詢智袭。
檢測數(shù)據(jù)損壞
- 是利用Content MD5 以及 CRC來檢測數(shù)據(jù)損壞
- 在空閑時對數(shù)據(jù)執(zhí)行檢測吼野,并使用冗余數(shù)據(jù)修復任何損壞
記錄日志
- 跟蹤對S3存儲桶的訪問日志瞳步,默認關(guān)閉
- 日志記錄采用盡力而為方式記錄单起,會稍有延遲
- 日志包含 請求者賬戶和IP嘀倒、存儲桶名稱、請求時間灌危、請求操作和錯誤代碼
事件通知
- 在S3反應操作或上載等事件時勇蝙,啟用通知執(zhí)行工作流味混,發(fā)送警報或執(zhí)行其他操作來響應該事件
- 通知消息結(jié)合SNS翁锡、SQS盗誊、Lambda函數(shù)進行響應觸發(fā)
跨源資源共享 CORS
- 現(xiàn)代瀏覽器默認使用了同源策略阻止JavaScript或HTML5加載其他站點的內(nèi)容以確保不會有惡意內(nèi)容被加載
- S3可以配置明確啟用跨源請求,實現(xiàn)外部網(wǎng)頁荒适、樣式表刀诬、H5等程序安全的引用S3的資源
S3實踐和場景
S3使用實踐
- 選擇離用戶較近的區(qū)域陕壹,距離對性能影響非常大
- 與計算資源和其他AWS資源位于同一位置會影響性能
- 使用全球唯一的字符串(3-63字符)來命名對象糠馆,是存儲桶提供一致的性能
S3應用場景
- 本地或云數(shù)據(jù)的備份和歸檔
- 媒體和軟件存儲和分發(fā)
- 大數(shù)據(jù)分析
- 靜態(tài)網(wǎng)站托管
- 云原生移動互聯(lián)網(wǎng)應用程序托管
- 作為批量數(shù)據(jù)的Blob存儲又碌,同時在另一數(shù)據(jù)庫中保留數(shù)據(jù)索引實現(xiàn)快速搜索和復雜查詢
- 靜態(tài)網(wǎng)站托管
S3請求處理性能優(yōu)化
- 當S3存儲桶中的對象超過1000個時毕匀,存儲桶會進行分區(qū)
- 如果順序命名這些對象皂岔,可能導致每次對多個鄰近對象的讀取都在一個分區(qū)里而影響性能
- 通過在對象名前綴添加hash值得方式躁垛,使得對象隨機的分布在不同分區(qū)里缤苫,則可以提升處理性能
- 以前存儲桶常規(guī)可以支持 每秒 100個以上的PUT/LIST/DELETE 以及 300 個以上的GET墅拭,
-
2018年后谍婉,提升到3500個PUT 和 5500個GET,一般情況下不再需要對處理性能進行優(yōu)化
image.png -
為了更有效的檢索穗熬,還建議保留二級索引并存儲在數(shù)據(jù)庫中唤蔗,如DynamoDB
image.png
S3 安全性
訪問控制
- Identity and Access Management (IAM) 策略
- IAM 讓擁有多名員工的組織能夠使用一個 AWS 賬戶創(chuàng)建和管理多個用戶箱季。使用 IAM 策略棍掐,公司可向 IAM 用戶授予對 Amazon S3 存儲桶或?qū)ο蟮木毧刂茩?quán)作煌,同時保留對用戶執(zhí)行的所有操作的完全控制粟誓。
- 存儲桶策略
- 用存儲桶策略鹰服,客戶可以定義廣泛適用于其 Amazon S3 資源的所有請求的規(guī)則获诈,例如為 Amazon S3 資源的子集授予寫入權(quán)限舔涎⊥鱿樱客戶還可以基于請求的某種特征(例如 HTTP 引用站點和 IP 地址)來限制訪問挟冠。
- 可以利用存儲桶策略配合IAM策略,以及查詢字符串認證來實現(xiàn)細粒度訪問控制 (推薦)
- 訪問控制列表 (ACL)
- 使通過 ACL肋僧,客戶可為特定用戶授予對單個存儲桶或數(shù)據(jù)對象的特定權(quán)限嫌吠,例如讀取辫诅、寫入炕矮、完全控制肤视。
- 這是一種粗粒度的訪問控制钢颂。
- 查詢字符串身份驗證
- 借助查詢字符串身份驗證殊鞭,客戶可以為 Amazon S3 對象創(chuàng)建一個僅在有限時間內(nèi)有效的 URL操灿。
S3的數(shù)據(jù)加密
- 數(shù)據(jù)加密是可選項
- 默認情況下趾盐,S3是私有數(shù)據(jù),需要AWS憑證才能訪問
- 但是可以通過預簽名URL分享對象久窟,通過HTTP和HTTPS訪問
- S3提供日志功能審核所有對象的訪問
- S3支持為每個存儲桶、前綴和對象設置訪問控制列表和策略
- 最佳實踐是對所有敏感數(shù)據(jù)加密
- 傳輸中的數(shù)據(jù)使用SSL API丹锹,確保所有數(shù)據(jù)都采用HTTPS傳輸
- 服務器端加密:
- 數(shù)據(jù)在S3中存儲是被加密匾灶,采用SSE的不同組合解決方案
- 如果是授權(quán)的訪問阶女,訪問加密數(shù)據(jù)和非加密數(shù)據(jù)的過程實際上是沒有區(qū)別的
- AWS加密密鑰可以通過輪換密鑰來進一步加密
- SSE-S3
- 使用256位AES-256加密標準進行加密张肾,并且主密鑰會定期輪換
- 提供了一種集成式解決方案,Amazon 通過其使用多個安全層處理密鑰管理和密鑰保護問題吞瞪。如果您希望 Amazon 管理您的密鑰,您應該選擇 SSE-S3驾孔。
- SSE-C
- 客戶來提供和管理加密密鑰芍秆,S3負責加密和解密
- 讓您能利用 Amazon S3 對對象執(zhí)行加密和解密操作,同時保持對加密對象所用密鑰的控制權(quán)翠勉。借助 SSE-C妖啥,您無需實施或使用客戶端庫來對 Amazon S3 中儲存的對象執(zhí)行加密和解密,但是需要對您發(fā)送到 Amazon S3 中執(zhí)行對象加密和解密操作的密鑰進行管理荆虱。如果您希望保留自己的加密密鑰而不想實施或使用客戶端加密庫時,請使用 SSE-C朽们。
- SSE-KMS
- 使用AWS提供的密鑰管理系統(tǒng)怀读,有更多的密鑰管理能力
- 可讓您使用 AWS Key Management Service (AWS KMS) 來管理您的加密密鑰。使用 AWS KMS 管理您的密鑰有幾項額外的好處骑脱。利用 AWS KMS菜枷,會設置幾個單獨的主密鑰使用權(quán)限,從而提供額外的控制層并防止 Amazon S3 中存儲的對象遭到未授權(quán)訪問叁丧。AWS KMS 提供審計跟蹤啤誊,因此您能看到誰使用了您的密鑰在何時訪問了哪些對象,還能查看用戶在沒有解密數(shù)據(jù)的權(quán)限下所作的訪問數(shù)據(jù)失敗嘗試次數(shù)拥娄。同時蚊锹,AWS KMS 還提供額外的安全控制,從而支持客戶努力符合 PCI-DSS稚瘾、HIPAA/HITECH 和 FedRAMP 行業(yè)要求牡昆。
- 客戶端加密
- 使用 Amazon S3 加密客戶端之類的加密客戶端庫,
- 您可以保持對密鑰的控制并使用您選擇的加密庫完成對象客戶端側(cè)的加密和解密孟抗。一些客戶傾向于對加密和解密對象擁有端到端的控制權(quán)迁杨;這樣一來,只有經(jīng)過加密的對象才會通過互聯(lián)網(wǎng)傳輸?shù)?Amazon S3凄硼。如果您想掌握對加密密鑰的控制權(quán)铅协,應該使用客戶端庫,這樣便可實施或使用客戶端加密庫摊沉,同時在將對象傳輸?shù)?Amazon S3 進行儲存之前需要對其進行加密狐史。
- 數(shù)據(jù)在存入S3前已經(jīng)被客戶應用程序加密,除了用戶自己進行完全管理外,也可以選擇使用AWS KMS進行密鑰管理
- 是嵌入AWS開發(fā)工具包中的一組開源API取代開源的加密工具骏全,客戶端將從KMI中提供一個密鑰苍柏,作為S3調(diào)用的一部分用于加密或解密
- 通過AWS EMR 數(shù)據(jù)寫入 S3時,可以使用S3DistCp請求服務器端加密姜贡,也可以在寫入前進行客戶端加密试吁,需要將S3DistCP復制到EMR集群里
數(shù)據(jù)訪問審計
- 可以選擇為存儲桶配置創(chuàng)建訪問日志記錄
- 也可以利用CloudTrail監(jiān)控訪問日志。
Amazon Macie
- Amazon Macie 是一種支持 AI 技術(shù)的安全服務楼咳,可以幫助您通過自動發(fā)現(xiàn)熄捍、分類和保護存儲在 Amazon S3 中的敏感數(shù)據(jù)來防止數(shù)據(jù)丟失。
- Amazon Macie 使用機器學習來識別敏感數(shù)據(jù)(例如母怜,個人身份信息 [PII] 或知識產(chǎn)權(quán))余耽,分配業(yè)務價值,提供此數(shù)據(jù)的存儲位置信息及其在組織中的使用方式信息
- Amazon Macie 為您提供一種自動化和低接觸的方式來發(fā)現(xiàn)和分類業(yè)務數(shù)據(jù)苹熏。Amazon Macie 識別客戶在其 S3 存儲桶中的對象碟贾,并將對象內(nèi)容流式傳輸?shù)絻?nèi)存中進行分析。當需要對復雜文件格式進行更深入的分析時轨域,Amazon Macie 將下載對象的完整副本袱耽,并在短時間內(nèi)保存,直到完成對象的全面分析疙挺。
- Amazon Macie 可持續(xù)監(jiān)控數(shù)據(jù)訪問活動異常扛邑,并在檢測到未經(jīng)授權(quán)的訪問或意外數(shù)據(jù)泄漏風險時發(fā)出警報。通過模板化的 Lambda 函數(shù)進行控制铐然,可在發(fā)現(xiàn)可疑行為或?qū)嶓w或第三方應用程序進行未經(jīng)授權(quán)的數(shù)據(jù)訪問時撤銷訪問或觸發(fā)密碼重置策略蔬崩。發(fā)出警報時,您可以使用 Amazon Macie 進行事件響應搀暑,并使用 Amazon CloudWatch Events 迅速采取行動沥阳,保護您的數(shù)據(jù)。
AWS S3 Glacier
概述
- 成本極低的歸檔服務
- 不支持實時讀取自点,通常需要3-5個小時完成檢索桐罕,但可以使用加急檢索(1-5分鐘)
- 支持傳統(tǒng)磁帶的TAR歸檔和ZIP文件歸檔
- 每個AWS賬號支持1000個存檔庫,每個存檔庫可以無限量支持存檔文件桂敛,每個存檔文件1KB-40TB功炮,每個文件需要額外32K+8K用于索引和元數(shù)據(jù)。
- 達到11個9的數(shù)據(jù)持久性
- Glacier數(shù)據(jù)是默認加密
- 按照存儲容量和檢索容量收費
- 最少存儲90天术唬,否則需要收取提前刪除費
屬性
Archives 檔案
- 每個檔案最大支持40TB數(shù)據(jù)
- 每個檔案有唯一檔案ID薪伏,但不支持用戶友好的存檔名稱
- 歸檔創(chuàng)建完成后,無法被修改
Vaults保管庫
- 存放歸檔的容器粗仓,每個賬戶最多擁有1000個Vault
- 基于Vault可以實現(xiàn)訪問策略控制嫁怀,支持IAM策略
Vaults Locks 保管庫鎖
- 強制執(zhí)行各個Vaults的合規(guī)性策略设捐,包括一次寫入多次讀取控件
- 一旦鎖定,策略將不可改變
數(shù)據(jù)檢索
- 每月可以免費檢索10GB的歸檔數(shù)據(jù)
- 需要使用Amazon S3 API 或 S3 控制臺來對Glacier 進行檢索和操作
- 標準檢索 3-5個小時
- 批量檢索 5-12小時
- 加急檢索 1-5分鐘塘淑,通過預置容量保證每5分鐘執(zhí)行3次加急檢索
- 建議使用策略來限制檢索數(shù)據(jù)大小以確保經(jīng)濟性
- 讀取Glacier 數(shù)據(jù)會在S3-IA中創(chuàng)建一個臨時副本
- 檢索部分存檔時萝招,只要提取的范圍和整個文檔的哈希樹對齊就能驗證文檔的完整性
- 只可以維護一份Glacier的數(shù)據(jù)索引來列出所有存檔清單,一天更新一次
數(shù)據(jù)傳輸和訪問
- 所有到Glacier的數(shù)據(jù)傳輸都是SSL加密的存捺,不管是對內(nèi)還是對外
- 通過文件庫訪問策略在資源級別設計權(quán)限
- 使用IAM在用戶權(quán)限級別設計權(quán)限
- 僅允許自身的AWS賬戶及授權(quán)的IAM用戶可以對Glacier 進行訪問槐沼,但可以供IAM Role授予跨賬戶只讀權(quán)限
Glacier Select
- Amazon S3 Glacier Select 是一項功能,可讓您對存儲在 Amazon S3 Glacier 中的數(shù)據(jù)運行查詢召噩,而不需要將整個對象恢復到 Amazon S3 等較熱的層母赵。
- 借助 Amazon S3 Glacier Select,您現(xiàn)在可以使用 SQL 子集直接對 Amazon S3 Glacier 中的數(shù)據(jù)進行篩選和基本查詢具滴。
- 您提供 SQL 查詢和 Amazon S3 Glacier 對象列表,Amazon S3 Glacier Select 將就地運行查詢师倔,并將輸出結(jié)果寫入您在 Amazon S3 中指定的存儲桶
AWS上存儲的文件生命周期策略
image.png
Elastic Block Store (EBS)
概述
- EBS僅在單個可用區(qū)有效
- 每個EBS塊會在可用區(qū)內(nèi)自動復制构韵,以提供高持久和高可用。
- EBS卷可以掛載到EC2趋艘,一次只能將EBS連接到一個EC2
- 要共享磁盤卷疲恢,需要使用EFS
EBS類型
- 磁性卷(Megnetic Volume)
- 最低的性能和最經(jīng)濟的存儲
- EBS磁盤大小從1GB - 1TB 不等,不管實際存儲大小瓷胧,均按預配置存儲收費
- 平均支持100 IOPS显拳,但最大可突破到數(shù)百IOPS,吞吐量 40-90MB
- 適用于 不常訪問數(shù)據(jù)的工作負載搓萧,連續(xù)讀取需要低成本存儲的情況
- 通用SSD (gp2)
- 經(jīng)濟高效的存儲杂数,適合各種工作負載
- 容量范圍從1GB到16TB
- 每GB提供3個IOPS基準性能,上限為10000IOPS瘸洛,吞吐量160MB
- 1TB以下可以支持突破3000IOPS揍移,如當有500G硬盤標準IO為1500IOPS,在不使用磁盤時做IO信用積累反肋,用于在大量IO是采用爆裂行為至3000IOPS
- 無論實際使用多少容量那伐,都按照預配置容量收費
- 支持掛載多個卷條帶化實現(xiàn)更高性能
- 適用于:系統(tǒng)啟動卷,中小型數(shù)據(jù)庫石蔗,開發(fā)和測試環(huán)境
- 預置IOPS SSD卷 (lo1)
- 適合于對存儲性能罕邀、隨機IO一致性非常敏感的應用,即IO密集型工作負載养距,如大型數(shù)據(jù)庫
- 容量范圍從4GB 到 16TB
- IOPS上限為容量的30倍或32000IOPS, 吞吐量 320MB
- 可以通過RAID0進行卷分割
- 支持掛載多個卷條帶化實現(xiàn)高性能诉探,最大75000IOPS
- 用戶需要對預置的磁盤大小和IOPS進行付費
- 吞吐量優(yōu)化HDD (st1)
- 適用于頻繁訪問、吞吐量密集型的工作負載的高性能低成本HDD
- 容量范圍 500GB - 16GB
- 最大IOPS 500铃在, 最大吞吐量 500MB/s
- 冷硬盤 (sc1)
- 容量范圍 500GB - 16GB
- 較少訪問的工作負載阵具,IOPS 250 碍遍, 最大吞吐量250MB
- EBS優(yōu)化實例
- 使用任何標準EBS之外的數(shù)據(jù)卷掛載,都建議使用基于EBS優(yōu)化的實例阳液。
-
EBS優(yōu)化實例需要為每小時租用支付額外一小筆費用
image.png
保護數(shù)據(jù)
- 數(shù)據(jù)快照
- 無論任何類型的卷怕敬,都可以采用EBS快照進行備份,并存儲在S3中
- 快照是增量備份, 但每個快照文件利用快照鏈接是獨立的可恢復的
- 快照本身免費帘皿,僅需為快照數(shù)據(jù)存儲付費
- 快照完成后可繼續(xù)操作數(shù)據(jù)庫东跪,但快照文件在傳輸完成之前將無法進行下一次快照
- 快照存儲雖然采用和S3相同技術(shù),但是并不能像S3一樣訪問和管理鹰溜,必須采用專門的快照管理功能
- 數(shù)據(jù)恢復
- 快照恢復只能在當前區(qū)域操作虽填,如果要跨區(qū)域恢復快照,需要先跨區(qū)域拷貝快照
- 快照恢復會首先創(chuàng)建卷曹动,然后在逐塊恢復數(shù)據(jù)斋日,優(yōu)先訪問的塊會被優(yōu)先恢復
- 數(shù)據(jù)第一次從快照恢復的時候,其讀取速率會較慢
- 數(shù)據(jù)快照可以用來作為當前EBS卷的擴容操作墓陈,即先做快照恶守,再往新大小的卷上恢復快照
- 當數(shù)據(jù)卷從當前實例中被分離后,即可掛載到新的實例贡必,快照恢復卷本身就是個分離卷
- 加密選項
- ESS掛載前需要被指定加密選項
- EBS卷加密通常使用KMS來管理密鑰
- 數(shù)據(jù)通常會在未訪問時被自動加密兔港,所以讀取非加密數(shù)據(jù)和加密數(shù)據(jù)的各方面性能是一致的
- 從加密卷獲取的快照會被自動加密,加密快照文件本身也會被加密存儲
- 不能對已存在的卷進行加密仔拟,需要對其快照進行加密恢復成一個新的卷衫樊, 也可以將一個未加密快照拷貝成一個加密快照
- EBS根卷默認不能加密,需要使用第三方軟件加密
- 除根卷之外的其他卷是可以加密的
EBS Volume 屬性
- EBS Root Volume必須在關(guān)機狀態(tài)下進行掛載和卸載利花,但是Addtional Volume可以進行在線掛載刪除
- EBS數(shù)據(jù)是是持久性的科侈,但是默認刪除EC2會自動刪除EBS的數(shù)據(jù),可手工選擇保留
- EC2關(guān)機后 EBS數(shù)據(jù)存儲會持續(xù)計費
EBS 安全性
- EBS 卷的訪問權(quán)限僅限于創(chuàng)建它的AWS賬戶以及授權(quán)的IAM賬戶
- EBS快照可以有限制的分享給其他賬戶晋被,但需要謹慎
- EBS卷建立時是未格式化設備兑徘,所有數(shù)據(jù)都被擦除
- EBS卷可以支持用戶定制化的擦除數(shù)據(jù)
- 建議對EBS數(shù)據(jù)用AES-256進行加密及其快照
提升EBS性能
- 確保選擇了可以支持EBS優(yōu)化的實例
- C3,R3,M3會產(chǎn)生額外成本
- M4,C4,C5和D2是免費支持的
- 關(guān)閉EBS的RAID0提高吞吐量
- 盡可能減少或者進行有計劃的Snapshot,特別對于HDD
實例存儲
概述
- 只有部分EC2實例支持實例存儲
- 掛載在EC2下面的臨時塊級存儲
- 主要用于臨時存儲頻繁修改的信息: 緩沖區(qū)羡洛、緩存挂脑、臨時數(shù)據(jù)和其他臨時內(nèi)容
- EC2可掛載的存儲大小取決于實例類型,最大可掛載24個2TB的實例存儲欲侮,也有HDD和SSD可選崭闲,這都是與實例本身綁定的,無需另行付費
- 實例終止或停止威蕉,底層磁盤失效都會導致實例存儲數(shù)據(jù)丟失
- 實例存儲允許重啟刁俭,但不允許停止
- 支持用戶自定義配置RAID0/1/5等
-
雖然可以通過RAID或HDFS等方式支持冗余,但是對于持久性數(shù)據(jù)仍然建議使用更持久的解決方案如S3或EBS
image.png
EFS (Elastic File System)
概述
- 支持GB-PB的自動擴展的數(shù)據(jù)容量
- 提供延遲低每秒多GB并行的性能韧涨,并且支持預置吞吐量
- 實現(xiàn)實例間的數(shù)據(jù)共享
- 支持Network File System vesion 4 (NFSv4) 協(xié)議
- EFS自動分配全局唯一ID牍戚,所以命名無需唯一
- 使用掛載方式+文件系統(tǒng)的DNS連接到EC2
- EC2和EFS必須在同一個安全組里面才能掛載
- 只為使用的EFS份額付費
- 可以同時間支持成千上萬的NFS連接
- 支持一個到上千個EC2掛載同一個EFS
- EFS的數(shù)據(jù)會保存在一個區(qū)域內(nèi)的多個可用區(qū)
- EFS除了能夠掛載到EC2侮繁,還支持掛載到本地的服務器(ClassicLink)
- 數(shù)據(jù)從本地移動到EFS
- 可以使用Direct Connect
- 使用DataSync 使用專用協(xié)議來加速和保護通過 Internet 或 AWS Direct Connect 傳輸?shù)臄?shù)據(jù),速度比開源工具快 10 倍如孝。使用 DataSync宪哩,您可以執(zhí)行一次性數(shù)據(jù)遷移,傳輸本地數(shù)據(jù)以進行及時的云端分析第晰,并自動復制到 AWS 以進行數(shù)據(jù)保護和恢復
- 區(qū)域級服務锁孟,在不同可用區(qū)之間進行冗余復制(可手工選擇)
- 可以利用AWS Backup來安排自動增量式備份
- 讀寫一致性(Read After Write Consistency)
- 支持使用IAM來控制和管理文件系統(tǒng)
- 支持使用KMS進行靜態(tài)數(shù)據(jù)加密
考AWS SAA的知識點 花兩天看這個就夠了
柳隨風 AWS SAA 簡書專題