AWSS3技術點分析

2021-08-04 09:41:00 字數 2764 閱讀 5619

awss3技術點分析

一、s3的特點:

l  面向internet的物件儲存

物件通俗來講就是乙個完整檔案,沒有進行追加寫入的、可斷電儲存在物理介質(硬碟或其他磁碟)中的檔案。

l  乙個物件的大小可以高達5tb

l  每個物件儲存在儲存桶中,通過開發人員分配的唯一金鑰進行檢索

l  彈性儲存,無限儲存空間、無限物件

l  通過在同一區域不同可用區間進行複製,可以達到99.999999999%的永續性

l  提供版本管理和生命週期管理

l  可提供基於靜態頁面的**託管服務

二、依託s3進行的儲存方式:

依託s3進行的儲存方式:標準儲存、低訪問儲存、低冗餘儲存、glacier(冰川)。

所有上傳到s3上的儲存檔案都是以標準儲存的方式存放,必須通過策略才能轉換成後兩者,但轉換成後兩種方式的儲存檔案可以讓外部進行直接訪問。

低訪問儲存適合的是低訪問量的檔案進行存放,它的可靠性也是99.999999999%,檔案儲存費用只有標準儲存的四分一,但每次的訪問費用要比標準儲存的方式要高;

低冗餘儲存適合於存放不太重要的資料,可靠性只有99.99%,檔案儲存費用介於低訪問儲存和標準儲存之間,每次的訪問費用與標準儲存的一致,但此方式在aws北京暫時沒有提供;

glacier(冰川)它是一種用於存檔的物件儲存服務,可模擬於傳統環境中的磁帶,因此所有存放到glacier的資料,都需要進行幾小時的解凍後才能進行呼叫;

s3上提供檔案生命週期的管理方式,來對存放與s3的檔案進行基於時間的管理,可以將檔案從標準儲存轉換到另外幾種格式,或者直接刪除。在呼叫生命週期管理的時候注意轉換成低訪問或者低冗餘的檔案必須超過30天或以上,而glacier的則是60天。

三、s3的分布式:

s3的命名是唯一的,其邏輯儲存介質是桶,而桶的位置在新建時已經固定了桶中的所有資料儲存在那個區域當中,預設在不同區域的桶之間是不會進行資料同步的。

s3的分布式應用有兩方面,分別是分布式儲存和分布式訪問。

分布式儲存指在乙個區域中的檔案進行分布式儲存到乙個地區裡若干各資料機房的介質儲存中;

分布式訪問是指s3可以有多個接入點進行訪問,每個點的頻寬雖有上限,但多線路疊加的頻寬理論上沒上限。

注意:s3的分布式儲存只是在區域中進行,而它分布式訪問就需要依託aws的route53進行,因為aws在全球有50多個網路的邊緣接入點,所有訪問s3(北京地區只提供南北兩個不同的邊緣接入點)通過internet先訪問到aws的邊緣接點上,然後通過aws全球的區域網來連線上s3上,從而降低全球性訪問的低延時問題(s3北京除外)。

四、s3與ec2群及本地資料的連線

4.1、s3與ec2群的連線

s3與ec2群可以通過internet和lan的方式來進行連線,兩者的區別在於internet需要收費,lan免費。預設ec2中的vpc與s3是沒有建立lan連線的,需要搭建endpoint來作為s3的閘道器連線vpc建立lan通訊。

注意:endpoint只支援連線同區域的桶,也就是說非同區域的桶連線還是會通過aws全球區域網進行訪問,費用上來說會比internet要低些;

4.2、s3與ec2群的搭配使用

有兩種方式可以讓s3成為ec2群的擴充套件儲存:storagegateway(儲存閘道器)、第三方軟體(s3fs-fuse)直接掛載。

storagegateway(儲存閘道器)是有aws官方提供的一種服務,它的工作原理是將儲存閘道器安裝在其中一台ec2中並橋接到ec2群和s3之間,將s3的儲存空間虛擬成iscsi裝置,再讓需要的ec2進行儲存擴充套件性連線(aws北京沒有提供)。

s3fs-fuse是第三方軟體,可以將s3直接以磁碟的形式掛載到ec2上,可以支援多台裝置同時掛載乙個桶,此方法需要有足夠許可權的key支援掛載,同時只能將整個桶進行掛載,不能是單獨的資料夾。

注意:以上兩種方法,從邏輯上來講s3成為了ec2 的一部分,但s3物件儲存的本質沒有改變,所有需要追加寫入或更改已存在s3的檔案,都是暫時寫入到快取中,等確定的檔案完整性後在非同步到s3上。

4.3、s3與本地資料中心的連通

通過安裝storagegateway(儲存閘道器)到本地虛擬裝置上,然後橋接到本地集群跟s3上進行連線,從邏輯上來講與ec2群連線s3的方式沒什麼區別,但前提需要確保本地資料中心與s3連通的穩定性,因為儲存閘道器雖然非同步讀寫s3,但本質上的物件讀寫是不支援斷點續傳的。

五、s3的許可權策略

s3支援兩個服務提供的策略,iam和s3,s3桶預設拒絕所有訪問,兩個服務策略都可以對s3服務的訪問許可權進行管控,但iam只授權給aws使用者或角色對s3進行訪問,而s3的策略則可針對所有資源的訪問管控,包括:訪問源位址、訪問域、跨aws使用者的訪問等等;當兩者策略衝突時,以s3策略優先。

六、s3的資料加密

s3支援多種的資料加密方法,其中官方支援的有三種:使用具有amazon s3 託管加密金鑰的伺服器端加密(sse-s3)、使用具有aws kms 託管金鑰的伺服器端加密(sse-kms)、通過使用客戶提供的加密金鑰的伺服器端加密(sse-c)。這些方式都需要通過api或sdk呼叫,詳細方法請檢視s3開發手冊。

給AWS S3新增事件

有時候當我們的系統完成了計算得到了新的資料時,把新的資料儲存在s3上,這時候我們需要進行下一步的處理。有幾種方式來處理 1 特定時間去觸發,比如你知道每天早上8點左右資料就能處理完,所以你可以將下乙個處理程式定時每天9點開始跑。2 你下乙個特定程式,每天8點的時候去check資料是否complete...

向AWS S3 上傳檔案

目的是為了要上傳大一些的檔案,如果中間網路出現問題,後面可以有斷點續傳類似的功能。控制台 aws s3api list multipart uploads bucket bucket name aws s3api abort multipart upload bucket bucket name k...

Django上傳檔案到AWS S3

s3的介紹不贅述了。對於python,s3提供了乙個sdk,可以直接在terminal中安裝 pip install boto3s3 boto3.resource s3 aws access key id aws secret access key region name 這裡有個還沒弄清楚的問題,...