AWS 存儲概念 + 操做 (主要爲S3)

  1. S3出現的時間比較早,能夠追溯到2003年。
  2. S3不一樣於企業網裏面的存儲方案,塊存儲或者文件存儲,S3屬於對象存儲 Object。
  3. S3的總存儲空間是無限大的
  4. S3都是存儲在bucket裏面。Bucket造成了S3的最高級別域名,而後bucket的名字也是global的獨有的(其實就是個DNS域名)。
  5. S3的文件/Bucket雖然是全球惟一的,可是在建立的時候得選定一個region,一旦選定了就不能更改。並且不須要選擇AZ,AWS會本身負責Avaiablity,Disaster Recovery的設計。
    如上面所說,這個bucket size是無限大的。若是須要跨region複製S3數據,得使用cross region replica
  6. S3的單個Object的大小範圍 [0, 5TB]
  7. S3的object是由 文件數據自己 以及 metadata組成。 AWS 把數據自己當作stream of bytes
    而metadata 分爲system metadata 以及user metadata。 前者是爲系統所用,好比說大小,MD5散列值,以及http content type。User metadata 是optional的。
  8. 每個bucket裏面,標記一個object的方式是經過key,固然粗看上去,這個key更像是個文件名。不一樣的bucket裏面,能夠有相同的key(文件名)。一個S3 object 是經過S3 bucket,S3 key,以及可選的version-ID 來標識de
  9. S3的availability是99.99%
  10. S3的durability 是99.999999999%(11個9) 這個能夠認爲是數據的完整性
  11. Data Consistency 數據的一致性在大型數據中內心面一直是個問題。你在某一塊存儲上更新了數據,而另一塊存儲還沒來得及更新。在同步的空檔期若是從後者下載了數據,那顯然數據不是最更新的了。AWS採起兩種策略,read-after-write consistency以及eventual consistency。
  12. S3有幾種不一樣的等級:standard,standard IA,one-zone IA,Glacier
  13. S3啓用了版本控制,當每一個object 有incremental 更新的時候,這個版本號就開始有用了
    Versioning is turned on at the bucket level. Once enabled, versioning cannot be removed from a bucket; it can only be suspended.
  14. S3能夠經過ACL,bucket policy,IAM進行訪問控制。
  15. 當你成功上傳文件到S3的時候,會獲得一個HTTP code 200

S3的類型,我直接貼圖了
AWS 存儲概念 + 操做 (主要爲S3)
如今能夠看到,書上寫的RRS,reduce redundancy storage已經沒有了。取而代之更多細分。那基本上class 取決於avilablility, 多少個AZ部署,取出時間有多久。html

S3的收費標準
具體能夠參考這個連接:https://aws.amazon.com/cn/s3/pricing/
總結起來有以下幾個特色:python

  1. 按照存儲的數據多少收費,存的越多,收費越便宜。以50TB,450TB,500TB爲分界線
  2. S3是經過http請求操做的,全部的get,post,put,list都要收費,delete不收費
  3. 全部進出S3的internet會被收費,只有三種狀況例外:傳入數據(AWS獲取數據,笑而不語),同一個region的EC2和S3互相傳輸數據,傳到cloudfront
  4. 管理和複製也會被收費,包括了S3清單,S3分析和S3對象標記功能
  5. Transfer Acceleration使用了AWS的direct connect,也是會被收費的。

這裏我抄一句小茶的話:S3是對象存儲、EBS是塊存儲。EC2能夠和S3鏈接,方法是使用s3fs的方式掛載,或者用AWS CLI來對S3進行操做。web

實驗環節:
首先進入S3界面,注意右上角沒有region,取而代之是global,咱們能夠管理全球全部的S3 buckets。因此反覆強調S3只有region的概念,沒有AZ。
AWS 存儲概念 + 操做 (主要爲S3)api

建立完bucket以後就能夠上傳數據了。
除了讓你選擇文件以外,還會讓你選擇storage class
AWS 存儲概念 + 操做 (主要爲S3)緩存

上傳完以後就能夠看到裏面有大量的屬性能夠更改。大部分特性要作什麼實際上是一目瞭然的。app

AWS 存儲概念 + 操做 (主要爲S3)

AWS 存儲概念 + 操做 (主要爲S3)
AWS 存儲概念 + 操做 (主要爲S3)

總的來講在真是的運維環境裏,這種上傳,而且屬性的操做確定是你們開會研究好統一的標準,經過api一塊兒實現的。靠人手工這樣操做……畫面太美,不敢想象。因此學完整個AWS的課程以後,寫一堆rest api的python代碼也是必須的。運維

這裏有一個注意點,雖然咱們在作實驗的時候,把bucket make public了,可是我過了兩天回來登陸的時候有一堆的垃圾日誌文件。明顯就是被人DDoS了。雖然不能上傳,但萬一你開啓了忘記關掉,而後又是全部人均可以上傳的。異步

此處也注意一個他們的保護機制,若是在下面頁面的地方勾選了block,那你全部的bucket和objects都是沒法在公網上被訪問的。或者說,這個設置會覆蓋你bucket和object的block public access的操做。
AWS 存儲概念 + 操做 (主要爲S3)
S3的版本控制ide

  1. 版本控制會建立多個不一樣的文件版本,並給一個版本ID;
  2. 刪除被版本控制控制的文件並不會刪掉文件,只會添加刪除標記,須要顯示版本顯示;
  3. 積累的文件版本也是要收費的,全部版本容量的總和;
  4. 版本控制不能關閉只能暫停,暫停後在上傳相同文件會覆蓋ID爲NULL的文件;
  5. 版本控制針對的是整個bucket,而不是單個文件

AWS 存儲概念 + 操做 (主要爲S3)

S3的cross-region replicationpost

  1. cross-replication的前提條件是必須得開啓versionning
  2. 刪除文件,文件的某一個版本或者刪除刪除標記(Delete Marker)是不會被同步的(目標存儲桶的對象是不會被刪除的)
    AWS 存儲概念 + 操做 (主要爲S3)

S3的lifecycle
這個功能是不須要開啓versioning的,能夠解釋的地方並很少。主要就是爲了成本考慮。
AWS 存儲概念 + 操做 (主要爲S3)

S3 Transfer Acceleration
用戶能夠經過使用AWS的CloudFront的Edge location來上傳下載數據。簡單的來說,就是你和你要操做的S3的節點更近了,而後S3再經過本身內部的傳輸和各自的region 溝通。

總體而言,對香港這種網速很好的區域,這個功能彷佛用處不大。。。
AWS 存儲概念 + 操做 (主要爲S3)

S3 static website hosting
簡單的來說,就是你把一個靜態的html頁面上傳到你的bucket,而後static website hosting會生成一個網頁連接,就能夠訪問了。暫時沒想到這個玩意的use case。。。

注意下S3的object 連接和 website 連接二者的區別
https://tonytokyobucket.s3-ap-northeast-1.amazonaws.com/static+webhosting.html
http://tonytokyobucket.s3-website-ap-northeast-1.amazonaws.com/

Storage Gateway
這個功能簡單的來說就是講現有的on-prem的數據遷移到雲上的一個服務。推薦讀一讀FAQ的第一部分,通常問題:https://aws.amazon.com/cn/storagegateway/faqs/

三個驅動緣由值得一記:

  1. 使用storage gateway 是爲了讓數據儘可能平滑的遷移到雲上
  2. 減小本地存儲,少給EMC,Netapp付錢
  3. 下降數據與AWS服務的延時

須要注意的是,storage不只能夠在AWS的console上配置,也可使用on-prem或者VM ESxi版本的。
Storage Gateway一共分爲三種
File Gateway: 基於NFS,SMB的文件傳輸
Volume Gateway: 塊存儲,使用iSCSI。這種存儲也分兩種類型
a. stored volumes: 會將數據保存在本地,可是會異步的將數據備份到S3上去
b. cached volume: 數據保存到S3上,可是會將常常訪問的數據放到緩存上。
Tape Gateway:沒啥好說的,所有搬到Glacier上。

基於上面的描述,下面這個部署模型就清晰不少了。
AWS 存儲概念 + 操做 (主要爲S3)

注意,須要部署兩套storaged gateway,一套在客戶的數據中心,另一套就在AWS裏面。

EFS(Elastic File System)
我直接貼小茶的一個S3,EBS,EFS的比較。
價格是S3 < EBS < EFS

EFS貴,性價比不高。EBS最高容量只有16TB。須要注意的是,當建立完EFS以後,須要將這個文件系統mount到一個EC2實例上。一個比較有趣的實施,是建立多個EC2,而後將同一個EFS掛載到不一樣的EC2上。這樣就能實現多個EC2 共享一個文件夾。(這個是和EBS最根本的區別,EBS其實能理解爲EC2 的硬盤)。實驗在我看完VPC以後再作。

相關文章
相關標籤/搜索